@@ -26,6 +26,7 @@ import (
26
26
"code.gitea.io/gitea/models/login"
27
27
"code.gitea.io/gitea/models/unit"
28
28
user_model "code.gitea.io/gitea/models/user"
29
+ "code.gitea.io/gitea/modules/auth/openid"
29
30
"code.gitea.io/gitea/modules/base"
30
31
"code.gitea.io/gitea/modules/git"
31
32
"code.gitea.io/gitea/modules/log"
@@ -359,7 +360,7 @@ func (u *User) GetFollowers(listOptions db.ListOptions) ([]*User, error) {
359
360
360
361
// IsFollowing returns true if user is following followID.
361
362
func (u * User ) IsFollowing (followID int64 ) bool {
362
- return IsFollowing (u .ID , followID )
363
+ return user_model . IsFollowing (u .ID , followID )
363
364
}
364
365
365
366
// GetFollowing returns range of user's following.
@@ -469,7 +470,7 @@ func (u *User) isVisibleToUser(e db.Engine, viewer *User) bool {
469
470
}
470
471
471
472
// If they follow - they see each over
472
- follower := IsFollowing (u .ID , viewer .ID )
473
+ follower := user_model . IsFollowing (u .ID , viewer .ID )
473
474
if follower {
474
475
return true
475
476
}
@@ -1212,12 +1213,12 @@ func deleteUser(e db.Engine, u *User) error {
1212
1213
& Access {UserID : u .ID },
1213
1214
& Watch {UserID : u .ID },
1214
1215
& Star {UID : u .ID },
1215
- & Follow {UserID : u .ID },
1216
- & Follow {FollowID : u .ID },
1216
+ & user_model. Follow {UserID : u .ID },
1217
+ & user_model. Follow {FollowID : u .ID },
1217
1218
& Action {UserID : u .ID },
1218
1219
& IssueUser {UID : u .ID },
1219
1220
& user_model.EmailAddress {UID : u .ID },
1220
- & UserOpenID {UID : u .ID },
1221
+ & user_model. UserOpenID {UID : u .ID },
1221
1222
& Reaction {UserID : u .ID },
1222
1223
& TeamUser {UID : u .ID },
1223
1224
& Collaboration {UserID : u .ID },
@@ -1798,3 +1799,29 @@ func IterateUser(f func(user *User) error) error {
1798
1799
}
1799
1800
}
1800
1801
}
1802
+
1803
+ // GetUserByOpenID returns the user object by given OpenID if exists.
1804
+ func GetUserByOpenID (uri string ) (* User , error ) {
1805
+ if len (uri ) == 0 {
1806
+ return nil , ErrUserNotExist {0 , uri , 0 }
1807
+ }
1808
+
1809
+ uri , err := openid .Normalize (uri )
1810
+ if err != nil {
1811
+ return nil , err
1812
+ }
1813
+
1814
+ log .Trace ("Normalized OpenID URI: " + uri )
1815
+
1816
+ // Otherwise, check in openid table
1817
+ oid := & user_model.UserOpenID {}
1818
+ has , err := db .GetEngine (db .DefaultContext ).Where ("uri=?" , uri ).Get (oid )
1819
+ if err != nil {
1820
+ return nil , err
1821
+ }
1822
+ if has {
1823
+ return GetUserByID (oid .UID )
1824
+ }
1825
+
1826
+ return nil , ErrUserNotExist {0 , uri , 0 }
1827
+ }
0 commit comments