summaryrefslogtreecommitdiffstats
path: root/models/user.go
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2021-11-17 17:58:31 +0800
committerGitHub <noreply@github.com>2021-11-17 17:58:31 +0800
commit95d3266bee797cbeb7228d361fe32531737906d2 (patch)
tree68d90e7ef3e890c1ac311cf79f08cbe12a0dafca /models/user.go
parentadda27668b9764f97822e56e0591a6eb22165a83 (diff)
downloadgitea-95d3266bee797cbeb7228d361fe32531737906d2.tar.gz
gitea-95d3266bee797cbeb7228d361fe32531737906d2.zip
Move user follow and openid into models/user/ (#17613)
* Move UserRedirect into models/user/ * Fix lint & test * Fix lint * Fix lint * remove nolint comment * Fix lint * Move user follow and openid into models/user * Ignore the lint * Ignore the lint * Fix test * ignore stutters lint on UserOpenID
Diffstat (limited to 'models/user.go')
-rw-r--r--models/user.go37
1 files changed, 32 insertions, 5 deletions
diff --git a/models/user.go b/models/user.go
index 8146c184e7..e3cf94efe0 100644
--- a/models/user.go
+++ b/models/user.go
@@ -25,6 +25,7 @@ import (
"code.gitea.io/gitea/models/login"
"code.gitea.io/gitea/models/unit"
user_model "code.gitea.io/gitea/models/user"
+ "code.gitea.io/gitea/modules/auth/openid"
"code.gitea.io/gitea/modules/base"
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/log"
@@ -359,7 +360,7 @@ func (u *User) GetFollowers(listOptions db.ListOptions) ([]*User, error) {
// IsFollowing returns true if user is following followID.
func (u *User) IsFollowing(followID int64) bool {
- return IsFollowing(u.ID, followID)
+ return user_model.IsFollowing(u.ID, followID)
}
// GetFollowing returns range of user's following.
@@ -469,7 +470,7 @@ func (u *User) isVisibleToUser(e db.Engine, viewer *User) bool {
}
// If they follow - they see each over
- follower := IsFollowing(u.ID, viewer.ID)
+ follower := user_model.IsFollowing(u.ID, viewer.ID)
if follower {
return true
}
@@ -1212,12 +1213,12 @@ func deleteUser(e db.Engine, u *User) error {
&Access{UserID: u.ID},
&Watch{UserID: u.ID},
&Star{UID: u.ID},
- &Follow{UserID: u.ID},
- &Follow{FollowID: u.ID},
+ &user_model.Follow{UserID: u.ID},
+ &user_model.Follow{FollowID: u.ID},
&Action{UserID: u.ID},
&IssueUser{UID: u.ID},
&user_model.EmailAddress{UID: u.ID},
- &UserOpenID{UID: u.ID},
+ &user_model.UserOpenID{UID: u.ID},
&Reaction{UserID: u.ID},
&TeamUser{UID: u.ID},
&Collaboration{UserID: u.ID},
@@ -1798,3 +1799,29 @@ func IterateUser(f func(user *User) error) error {
}
}
}
+
+// GetUserByOpenID returns the user object by given OpenID if exists.
+func GetUserByOpenID(uri string) (*User, error) {
+ if len(uri) == 0 {
+ return nil, ErrUserNotExist{0, uri, 0}
+ }
+
+ uri, err := openid.Normalize(uri)
+ if err != nil {
+ return nil, err
+ }
+
+ log.Trace("Normalized OpenID URI: " + uri)
+
+ // Otherwise, check in openid table
+ oid := &user_model.UserOpenID{}
+ has, err := db.GetEngine(db.DefaultContext).Where("uri=?", uri).Get(oid)
+ if err != nil {
+ return nil, err
+ }
+ if has {
+ return GetUserByID(oid.UID)
+ }
+
+ return nil, ErrUserNotExist{0, uri, 0}
+}