@@ -25,6 +25,7 @@ import (
2525 "code.gitea.io/gitea/models/login"
2626 "code.gitea.io/gitea/models/unit"
2727 user_model "code.gitea.io/gitea/models/user"
28+ "code.gitea.io/gitea/modules/auth/openid"
2829 "code.gitea.io/gitea/modules/base"
2930 "code.gitea.io/gitea/modules/git"
3031 "code.gitea.io/gitea/modules/log"
@@ -359,7 +360,7 @@ func (u *User) GetFollowers(listOptions db.ListOptions) ([]*User, error) {
359360
360361// IsFollowing returns true if user is following followID.
361362func (u * User ) IsFollowing (followID int64 ) bool {
362- return IsFollowing (u .ID , followID )
363+ return user_model . IsFollowing (u .ID , followID )
363364}
364365
365366// GetFollowing returns range of user's following.
@@ -469,7 +470,7 @@ func (u *User) isVisibleToUser(e db.Engine, viewer *User) bool {
469470 }
470471
471472 // If they follow - they see each over
472- follower := IsFollowing (u .ID , viewer .ID )
473+ follower := user_model . IsFollowing (u .ID , viewer .ID )
473474 if follower {
474475 return true
475476 }
@@ -1212,12 +1213,12 @@ func deleteUser(e db.Engine, u *User) error {
12121213 & Access {UserID : u .ID },
12131214 & Watch {UserID : u .ID },
12141215 & 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 },
12171218 & Action {UserID : u .ID },
12181219 & IssueUser {UID : u .ID },
12191220 & user_model.EmailAddress {UID : u .ID },
1220- & UserOpenID {UID : u .ID },
1221+ & user_model. UserOpenID {UID : u .ID },
12211222 & Reaction {UserID : u .ID },
12221223 & TeamUser {UID : u .ID },
12231224 & Collaboration {UserID : u .ID },
@@ -1798,3 +1799,29 @@ func IterateUser(f func(user *User) error) error {
17981799 }
17991800 }
18001801}
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