aboutsummaryrefslogtreecommitdiff
path: root/internal/db/user.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/db/user.go')
-rw-r--r--internal/db/user.go36
1 files changed, 28 insertions, 8 deletions
diff --git a/internal/db/user.go b/internal/db/user.go
index c3c3f31e..0c793170 100644
--- a/internal/db/user.go
+++ b/internal/db/user.go
@@ -31,6 +31,7 @@ import (
"gogs.io/gogs/internal/avatar"
"gogs.io/gogs/internal/conf"
"gogs.io/gogs/internal/db/errors"
+ "gogs.io/gogs/internal/errutil"
"gogs.io/gogs/internal/tool"
)
@@ -606,8 +607,8 @@ func parseUserFromCode(code string) (user *User) {
if b, err := hex.DecodeString(hexStr); err == nil {
if user, err = GetUserByName(string(b)); user != nil {
return user
- } else if !errors.IsUserNotExist(err) {
- log.Error("GetUserByName: %v", err)
+ } else if !IsErrUserNotExist(err) {
+ log.Error("Failed to get user by name %q: %v", string(b), err)
}
}
@@ -890,13 +891,32 @@ func GetUserByKeyID(keyID int64) (*User, error) {
return user, nil
}
+var _ errutil.NotFound = (*ErrUserNotExist)(nil)
+
+type ErrUserNotExist struct {
+ args map[string]interface{}
+}
+
+func IsErrUserNotExist(err error) bool {
+ _, ok := err.(ErrUserNotExist)
+ return ok
+}
+
+func (err ErrUserNotExist) Error() string {
+ return fmt.Sprintf("user does not exist: %v", err.args)
+}
+
+func (ErrUserNotExist) NotFound() bool {
+ return true
+}
+
func getUserByID(e Engine, id int64) (*User, error) {
u := new(User)
has, err := e.ID(id).Get(u)
if err != nil {
return nil, err
} else if !has {
- return nil, errors.UserNotExist{UserID: id}
+ return nil, ErrUserNotExist{args: map[string]interface{}{"userID": id}}
}
return u, nil
}
@@ -912,7 +932,7 @@ func GetAssigneeByID(repo *Repository, userID int64) (*User, error) {
if err != nil {
return nil, err
} else if !has {
- return nil, errors.UserNotExist{UserID: userID}
+ return nil, ErrUserNotExist{args: map[string]interface{}{"userID": userID}}
}
return GetUserByID(userID)
}
@@ -920,14 +940,14 @@ func GetAssigneeByID(repo *Repository, userID int64) (*User, error) {
// GetUserByName returns a user by given name.
func GetUserByName(name string) (*User, error) {
if len(name) == 0 {
- return nil, errors.UserNotExist{Name: name}
+ return nil, ErrUserNotExist{args: map[string]interface{}{"name": name}}
}
u := &User{LowerName: strings.ToLower(name)}
has, err := x.Get(u)
if err != nil {
return nil, err
} else if !has {
- return nil, errors.UserNotExist{Name: name}
+ return nil, ErrUserNotExist{args: map[string]interface{}{"name": name}}
}
return u, nil
}
@@ -999,7 +1019,7 @@ func ValidateCommitsWithEmails(oldCommits []*git.Commit) []*UserCommit {
// GetUserByEmail returns the user object by given e-mail if exists.
func GetUserByEmail(email string) (*User, error) {
if len(email) == 0 {
- return nil, errors.UserNotExist{Name: "email"}
+ return nil, ErrUserNotExist{args: map[string]interface{}{"email": email}}
}
email = strings.ToLower(email)
@@ -1023,7 +1043,7 @@ func GetUserByEmail(email string) (*User, error) {
return GetUserByID(emailAddress.UID)
}
- return nil, errors.UserNotExist{Name: email}
+ return nil, ErrUserNotExist{args: map[string]interface{}{"email": email}}
}
type SearchUserOptions struct {