Skip to content

Commit 555d8b1

Browse files
lunny0xBAADF00D
authored andcommitted
fixed bug #151 caused Find should be Get (#153)
1 parent 900f233 commit 555d8b1

File tree

4 files changed

+29
-21
lines changed

4 files changed

+29
-21
lines changed

models/error.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,9 @@ func (err ErrUserAlreadyExist) Error() string {
5555
}
5656

5757
type ErrUserNotExist struct {
58-
UID int64
59-
Name string
58+
UID int64
59+
Name string
60+
KeyID int64
6061
}
6162

6263
func IsErrUserNotExist(err error) bool {
@@ -65,7 +66,7 @@ func IsErrUserNotExist(err error) bool {
6566
}
6667

6768
func (err ErrUserNotExist) Error() string {
68-
return fmt.Sprintf("user does not exist [uid: %d, name: %s]", err.UID, err.Name)
69+
return fmt.Sprintf("user does not exist [uid: %d, name: %s, keyid: %d]", err.UID, err.Name, err.KeyID)
6970
}
7071

7172
type ErrEmailAlreadyUsed struct {

models/login_source.go

+7-7
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ func LoginViaLDAP(user *User, login, passowrd string, source *LoginSource, autoR
296296
username, fn, sn, mail, isAdmin, succeed := source.Cfg.(*LDAPConfig).SearchEntry(login, passowrd, source.Type == LoginDLDAP)
297297
if !succeed {
298298
// User not in LDAP, do nothing
299-
return nil, ErrUserNotExist{0, login}
299+
return nil, ErrUserNotExist{0, login, 0}
300300
}
301301

302302
if !autoRegister {
@@ -404,9 +404,9 @@ func LoginViaSMTP(user *User, login, password string, sourceID int64, cfg *SMTPC
404404
if len(cfg.AllowedDomains) > 0 {
405405
idx := strings.Index(login, "@")
406406
if idx == -1 {
407-
return nil, ErrUserNotExist{0, login}
407+
return nil, ErrUserNotExist{0, login, 0}
408408
} else if !com.IsSliceContainsStr(strings.Split(cfg.AllowedDomains, ","), login[idx+1:]) {
409-
return nil, ErrUserNotExist{0, login}
409+
return nil, ErrUserNotExist{0, login, 0}
410410
}
411411
}
412412

@@ -425,7 +425,7 @@ func LoginViaSMTP(user *User, login, password string, sourceID int64, cfg *SMTPC
425425
tperr, ok := err.(*textproto.Error)
426426
if (ok && tperr.Code == 535) ||
427427
strings.Contains(err.Error(), "Username and Password not accepted") {
428-
return nil, ErrUserNotExist{0, login}
428+
return nil, ErrUserNotExist{0, login, 0}
429429
}
430430
return nil, err
431431
}
@@ -465,7 +465,7 @@ func LoginViaSMTP(user *User, login, password string, sourceID int64, cfg *SMTPC
465465
func LoginViaPAM(user *User, login, password string, sourceID int64, cfg *PAMConfig, autoRegister bool) (*User, error) {
466466
if err := pam.PAMAuth(cfg.ServiceName, login, password); err != nil {
467467
if strings.Contains(err.Error(), "Authentication failure") {
468-
return nil, ErrUserNotExist{0, login}
468+
return nil, ErrUserNotExist{0, login, 0}
469469
}
470470
return nil, err
471471
}
@@ -525,7 +525,7 @@ func UserSignIn(username, passowrd string) (*User, error) {
525525
return user, nil
526526
}
527527

528-
return nil, ErrUserNotExist{user.ID, user.Name}
528+
return nil, ErrUserNotExist{user.ID, user.Name, 0}
529529

530530
default:
531531
var source LoginSource
@@ -554,5 +554,5 @@ func UserSignIn(username, passowrd string) (*User, error) {
554554
log.Warn("Failed to login '%s' via '%s': %v", username, source.Name, err)
555555
}
556556

557-
return nil, ErrUserNotExist{user.ID, user.Name}
557+
return nil, ErrUserNotExist{user.ID, user.Name, 0}
558558
}

models/user.go

+17-10
Original file line numberDiff line numberDiff line change
@@ -890,12 +890,19 @@ func UserPath(userName string) string {
890890
return filepath.Join(setting.RepoRootPath, strings.ToLower(userName))
891891
}
892892

893+
// GetUserByKeyID get user information by user's public key id
893894
func GetUserByKeyID(keyID int64) (*User, error) {
894-
user := new(User)
895-
return user, x.
896-
Join("INNER", "public_key", "`public_key`.owner_id = `user`.id").
895+
var user User
896+
has, err := x.Join("INNER", "public_key", "`public_key`.owner_id = `user`.id").
897897
Where("`public_key`.id=?", keyID).
898-
Find(user)
898+
Get(user)
899+
if err != nil {
900+
return nil, err
901+
}
902+
if !has {
903+
return nil, ErrUserNotExist{0, "", keyID}
904+
}
905+
return &user, nil
899906
}
900907

901908
func getUserByID(e Engine, id int64) (*User, error) {
@@ -904,7 +911,7 @@ func getUserByID(e Engine, id int64) (*User, error) {
904911
if err != nil {
905912
return nil, err
906913
} else if !has {
907-
return nil, ErrUserNotExist{id, ""}
914+
return nil, ErrUserNotExist{id, "", 0}
908915
}
909916
return u, nil
910917
}
@@ -920,22 +927,22 @@ func GetAssigneeByID(repo *Repository, userID int64) (*User, error) {
920927
if err != nil {
921928
return nil, err
922929
} else if !has {
923-
return nil, ErrUserNotExist{userID, ""}
930+
return nil, ErrUserNotExist{userID, "", 0}
924931
}
925932
return GetUserByID(userID)
926933
}
927934

928935
// GetUserByName returns user by given name.
929936
func GetUserByName(name string) (*User, error) {
930937
if len(name) == 0 {
931-
return nil, ErrUserNotExist{0, name}
938+
return nil, ErrUserNotExist{0, name, 0}
932939
}
933940
u := &User{LowerName: strings.ToLower(name)}
934941
has, err := x.Get(u)
935942
if err != nil {
936943
return nil, err
937944
} else if !has {
938-
return nil, ErrUserNotExist{0, name}
945+
return nil, ErrUserNotExist{0, name, 0}
939946
}
940947
return u, nil
941948
}
@@ -1021,7 +1028,7 @@ func ValidateCommitsWithEmails(oldCommits *list.List) *list.List {
10211028
// GetUserByEmail returns the user object by given e-mail if exists.
10221029
func GetUserByEmail(email string) (*User, error) {
10231030
if len(email) == 0 {
1024-
return nil, ErrUserNotExist{0, "email"}
1031+
return nil, ErrUserNotExist{0, email, 0}
10251032
}
10261033

10271034
email = strings.ToLower(email)
@@ -1045,7 +1052,7 @@ func GetUserByEmail(email string) (*User, error) {
10451052
return GetUserByID(emailAddress.UID)
10461053
}
10471054

1048-
return nil, ErrUserNotExist{0, email}
1055+
return nil, ErrUserNotExist{0, email, 0}
10491056
}
10501057

10511058
type SearchUserOptions struct {

models/user_mail.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ func MakeEmailPrimary(email *EmailAddress) error {
172172
if err != nil {
173173
return err
174174
} else if !has {
175-
return ErrUserNotExist{email.UID, ""}
175+
return ErrUserNotExist{email.UID, "", 0}
176176
}
177177

178178
// Make sure the former primary email doesn't disappear.

0 commit comments

Comments
 (0)