refactor(user): export IsErrUserStatusError for use across packages

Make isErrUserStatusError public and replace all verbose
!IsErrAccountDisabled(err) && !IsErrAccountLocked(err) checks
with the shorter IsErrUserStatusError(err) call.
This commit is contained in:
kolaente 2026-03-23 12:46:51 +01:00 committed by kolaente
parent cd6148511a
commit 8409bdb120
12 changed files with 27 additions and 27 deletions

View File

@ -118,7 +118,7 @@ func getUserFromArg(s *xorm.Session, arg string) *user.User {
}
u, err := user.GetUserWithEmail(s, &filter)
if err != nil && !user.IsErrAccountDisabled(err) && !user.IsErrAccountLocked(err) {
if err != nil && !user.IsErrUserStatusError(err) {
log.Fatalf("Could not get user: %s", err)
}
return u
@ -143,7 +143,7 @@ var userListCmd = &cobra.Command{
if userFlagEmail != "" {
u, err := user.GetUserWithEmail(s, &user.User{Email: userFlagEmail})
if err != nil && !user.IsErrAccountDisabled(err) && !user.IsErrAccountLocked(err) {
if err != nil && !user.IsErrUserStatusError(err) {
if user.IsErrUserDoesNotExist(err) {
log.Fatalf("No user found with email %s", userFlagEmail)
}

View File

@ -142,7 +142,7 @@ func (lu *ProjectUser) Delete(s *xorm.Session, _ web.Auth) (err error) {
// Check if the user exists
u, err := user.GetUserByUsername(s, lu.Username)
if err != nil && !user.IsErrAccountDisabled(err) && !user.IsErrAccountLocked(err) {
if err != nil && !user.IsErrUserStatusError(err) {
return
}
lu.UserID = u.ID
@ -249,7 +249,7 @@ func (lu *ProjectUser) Update(s *xorm.Session, _ web.Auth) (err error) {
// Check if the user exists
u, err := user.GetUserByUsername(s, lu.Username)
if err != nil && !user.IsErrAccountDisabled(err) && !user.IsErrAccountLocked(err) {
if err != nil && !user.IsErrUserStatusError(err) {
return err
}
lu.UserID = u.ID

View File

@ -110,7 +110,7 @@ func (tm *TeamMember) Delete(s *xorm.Session, a web.Auth) (err error) {
// Find the numeric user id
user, err := user2.GetUserByUsername(s, tm.Username)
if err != nil && !user2.IsErrAccountDisabled(err) && !user2.IsErrAccountLocked(err) {
if err != nil && !user2.IsErrUserStatusError(err) {
return
}
tm.UserID = user.ID
@ -149,7 +149,7 @@ func (tm *TeamMember) MembershipExists(s *xorm.Session) (exists bool, err error)
func (tm *TeamMember) Update(s *xorm.Session, _ web.Auth) (err error) {
// Find the numeric user id
user, err := user2.GetUserByUsername(s, tm.Username)
if err != nil && !user2.IsErrAccountDisabled(err) && !user2.IsErrAccountLocked(err) {
if err != nil && !user2.IsErrUserStatusError(err) {
return
}
tm.UserID = user.ID

View File

@ -30,7 +30,7 @@ func (tm *TeamMember) CanCreate(s *xorm.Session, a web.Auth) (bool, error) {
// CanDelete checks if the user can delete a new team member
func (tm *TeamMember) CanDelete(s *xorm.Session, a web.Auth) (bool, error) {
u, err := user.GetUserByUsername(s, tm.Username)
if err != nil && !user.IsErrAccountDisabled(err) && !user.IsErrAccountLocked(err) {
if err != nil && !user.IsErrUserStatusError(err) {
return false, err
}
if u.ID == a.GetID() {

View File

@ -264,7 +264,7 @@ func getOrCreateLdapUser(s *xorm.Session, entry *ldap.Entry) (u *user.User, err
Issuer: user.IssuerLDAP,
Subject: username,
})
if err != nil && !user.IsErrUserDoesNotExist(err) && !user.IsErrAccountDisabled(err) && !user.IsErrAccountLocked(err) {
if err != nil && !user.IsErrUserDoesNotExist(err) && !user.IsErrUserStatusError(err) {
return nil, err
}

View File

@ -283,10 +283,10 @@ func getOrCreateUser(s *xorm.Session, cl *claims, provider *Provider, idToken *o
Issuer: idToken.Issuer,
Subject: idToken.Subject,
})
if err != nil && !user.IsErrUserDoesNotExist(err) && !user.IsErrAccountDisabled(err) && !user.IsErrAccountLocked(err) {
if err != nil && !user.IsErrUserDoesNotExist(err) && !user.IsErrUserStatusError(err) {
return nil, err
}
alreadyCreatedFromIssuer = err == nil || user.IsErrAccountDisabled(err) || user.IsErrAccountLocked(err)
alreadyCreatedFromIssuer = err == nil || user.IsErrUserStatusError(err)
if !alreadyCreatedFromIssuer && (provider.EmailFallback || provider.UsernameFallback) {
@ -309,10 +309,10 @@ func getOrCreateUser(s *xorm.Session, cl *claims, provider *Provider, idToken *o
// Check if the user exists for the given fallback matching options
u, err = user.GetUserWithEmail(s, searchUser)
if err != nil && !user.IsErrUserDoesNotExist(err) && !user.IsErrAccountDisabled(err) && !user.IsErrAccountLocked(err) {
if err != nil && !user.IsErrUserDoesNotExist(err) && !user.IsErrUserStatusError(err) {
return nil, err
}
fallbackMatchFound = err == nil || user.IsErrAccountDisabled(err) || user.IsErrAccountLocked(err)
fallbackMatchFound = err == nil || user.IsErrUserStatusError(err)
}
if !alreadyCreatedFromIssuer && !fallbackMatchFound {

View File

@ -55,12 +55,12 @@ func GetAvatar(c *echo.Context) error {
// Get the user
u, err := user.GetUserWithEmail(s, &user.User{Username: username})
if err != nil && !user.IsErrUserDoesNotExist(err) && !user.IsErrAccountDisabled(err) && !user.IsErrAccountLocked(err) {
if err != nil && !user.IsErrUserDoesNotExist(err) && !user.IsErrUserStatusError(err) {
log.Errorf("Error getting user for avatar: %v", err)
return err
}
found := err == nil || user.IsErrAccountDisabled(err) || user.IsErrAccountLocked(err)
found := err == nil || user.IsErrUserStatusError(err)
avatarProvider := avatar.GetProvider(u)

View File

@ -239,7 +239,7 @@ func RefreshToken(c *echo.Context) (err error) {
}
u, err := user2.GetUserWithEmail(s, &user2.User{ID: session.UserID})
if user2.IsErrAccountDisabled(err) || user2.IsErrAccountLocked(err) {
if user2.IsErrUserStatusError(err) {
if _, delErr := s.Where("id = ?", session.ID).Delete(&models.Session{}); delErr != nil {
_ = s.Rollback()
return delErr

View File

@ -92,7 +92,7 @@ func checkAPITokenAndPutItInContext(tokenHeaderValue string, c *echo.Context) er
}
u, err := user.GetUserByID(s, token.OwnerID)
if user.IsErrAccountDisabled(err) || user.IsErrAccountLocked(err) {
if user.IsErrUserStatusError(err) {
log.Debugf("[auth] Tried authenticating with token %d but the owner's account is disabled or locked", token.ID)
return echo.NewHTTPError(http.StatusUnauthorized, "Unauthorized")
}

View File

@ -41,7 +41,7 @@ func BasicAuth(c *echo.Context, username, password string) (bool, error) {
if user.IsErrUserDoesNotExist(err) {
return false, nil
}
if user.IsErrAccountDisabled(err) || user.IsErrAccountLocked(err) {
if user.IsErrUserStatusError(err) {
return false, nil
}
if u == nil {

View File

@ -39,8 +39,8 @@ import (
"xorm.io/xorm"
)
// isErrUserStatusError returns true if the error is an ErrAccountDisabled or ErrAccountLocked.
func isErrUserStatusError(err error) bool {
// IsErrUserStatusError returns true if the error is an ErrAccountDisabled or ErrAccountLocked.
func IsErrUserStatusError(err error) bool {
return IsErrAccountDisabled(err) || IsErrAccountLocked(err)
}
@ -134,7 +134,7 @@ func (u *User) RouteForMail() (string, error) {
s := db.NewSession()
defer s.Close()
user, err := getUser(s, &User{ID: u.ID}, true)
if err != nil && !isErrUserStatusError(err) {
if err != nil && !IsErrUserStatusError(err) {
return "", err
}
return user.Email, nil
@ -157,7 +157,7 @@ func (u *User) ShouldNotify(sessions ...*xorm.Session) (bool, error) {
defer s.Close()
}
_, err := getUser(s, &User{ID: u.ID}, true)
if isErrUserStatusError(err) {
if IsErrUserStatusError(err) {
return false, nil
}
if err != nil {
@ -538,7 +538,7 @@ func UpdateUser(s *xorm.Session, user *User, forceOverride bool) (updatedUser *U
// Check if it exists
theUser, err := GetUserWithEmail(s, &User{ID: user.ID})
if err != nil && !isErrUserStatusError(err) {
if err != nil && !IsErrUserStatusError(err) {
return &User{}, err
}
@ -548,7 +548,7 @@ func UpdateUser(s *xorm.Session, user *User, forceOverride bool) (updatedUser *U
} else {
// Check if the new username already exists
uu, err := GetUserByUsername(s, user.Username)
if err != nil && !IsErrUserDoesNotExist(err) && !isErrUserStatusError(err) {
if err != nil && !IsErrUserDoesNotExist(err) && !IsErrUserStatusError(err) {
return nil, err
}
if uu.ID != 0 && uu.ID != user.ID {
@ -570,7 +570,7 @@ func UpdateUser(s *xorm.Session, user *User, forceOverride bool) (updatedUser *U
Issuer: user.Issuer,
Subject: user.Subject,
}, true)
if err != nil && !IsErrUserDoesNotExist(err) && !isErrUserStatusError(err) {
if err != nil && !IsErrUserDoesNotExist(err) && !IsErrUserStatusError(err) {
return nil, err
}
if uu.ID != 0 && uu.ID != user.ID {
@ -636,7 +636,7 @@ func UpdateUser(s *xorm.Session, user *User, forceOverride bool) (updatedUser *U
// Get the newly updated user
updatedUser, err = GetUserByID(s, user.ID)
if err != nil && !isErrUserStatusError(err) {
if err != nil && !IsErrUserStatusError(err) {
return &User{}, err
}
@ -659,7 +659,7 @@ func UpdateUserPassword(s *xorm.Session, user *User, newPassword string) (err er
// Get all user details
theUser, err := GetUserByID(s, user.ID)
if err != nil && !isErrUserStatusError(err) {
if err != nil && !IsErrUserStatusError(err) {
return err
}

View File

@ -84,7 +84,7 @@ func CreateUser(s *xorm.Session, user *User) (newUser *User, err error) {
// Get the full new User
newUserOut, err := GetUserByID(s, user.ID)
if err != nil && !isErrUserStatusError(err) {
if err != nil && !IsErrUserStatusError(err) {
return nil, err
}