diff options
Diffstat (limited to 'models/userlist.go')
-rw-r--r-- | models/userlist.go | 65 |
1 files changed, 4 insertions, 61 deletions
diff --git a/models/userlist.go b/models/userlist.go index ae39de3da4..102c587dfe 100644 --- a/models/userlist.go +++ b/models/userlist.go @@ -8,30 +8,17 @@ import ( "fmt" "code.gitea.io/gitea/models/db" - "code.gitea.io/gitea/models/login" user_model "code.gitea.io/gitea/models/user" "code.gitea.io/gitea/modules/log" ) -// UserList is a list of user. -// This type provide valuable methods to retrieve information for a group of users efficiently. -type UserList []*user_model.User - -func (users UserList) getUserIDs() []int64 { - userIDs := make([]int64, len(users)) - for _, user := range users { - userIDs = append(userIDs, user.ID) // Considering that user id are unique in the list - } - return userIDs -} - // IsUserOrgOwner returns true if user is in the owner team of given organization. -func (users UserList) IsUserOrgOwner(orgID int64) map[int64]bool { +func IsUserOrgOwner(users user_model.UserList, orgID int64) map[int64]bool { results := make(map[int64]bool, len(users)) for _, user := range users { results[user.ID] = false // Set default to false } - ownerMaps, err := users.loadOrganizationOwners(db.GetEngine(db.DefaultContext), orgID) + ownerMaps, err := loadOrganizationOwners(db.GetEngine(db.DefaultContext), users, orgID) if err == nil { for _, owner := range ownerMaps { results[owner.UID] = true @@ -40,7 +27,7 @@ func (users UserList) IsUserOrgOwner(orgID int64) map[int64]bool { return results } -func (users UserList) loadOrganizationOwners(e db.Engine, orgID int64) (map[int64]*TeamUser, error) { +func loadOrganizationOwners(e db.Engine, users user_model.UserList, orgID int64) (map[int64]*TeamUser, error) { if len(users) == 0 { return nil, nil } @@ -53,7 +40,7 @@ func (users UserList) loadOrganizationOwners(e db.Engine, orgID int64) (map[int6 return nil, err } - userIDs := users.getUserIDs() + userIDs := users.GetUserIDs() ownerMaps := make(map[int64]*TeamUser) err = e.In("uid", userIDs). And("org_id=?", orgID). @@ -64,47 +51,3 @@ func (users UserList) loadOrganizationOwners(e db.Engine, orgID int64) (map[int6 } return ownerMaps, nil } - -// GetTwoFaStatus return state of 2FA enrollement -func (users UserList) GetTwoFaStatus() map[int64]bool { - results := make(map[int64]bool, len(users)) - for _, user := range users { - results[user.ID] = false // Set default to false - } - tokenMaps, err := users.loadTwoFactorStatus(db.GetEngine(db.DefaultContext)) - if err == nil { - for _, token := range tokenMaps { - results[token.UID] = true - } - } - - return results -} - -func (users UserList) loadTwoFactorStatus(e db.Engine) (map[int64]*login.TwoFactor, error) { - if len(users) == 0 { - return nil, nil - } - - userIDs := users.getUserIDs() - tokenMaps := make(map[int64]*login.TwoFactor, len(userIDs)) - err := e. - In("uid", userIDs). - Find(&tokenMaps) - if err != nil { - return nil, fmt.Errorf("find two factor: %v", err) - } - return tokenMaps, nil -} - -// GetUsersByIDs returns all resolved users from a list of Ids. -func GetUsersByIDs(ids []int64) (UserList, error) { - ous := make([]*user_model.User, 0, len(ids)) - if len(ids) == 0 { - return ous, nil - } - err := db.GetEngine(db.DefaultContext).In("id", ids). - Asc("name"). - Find(&ous) - return ous, err -} |