Skip to content

Commit 4b2c8ca

Browse files
ethantkoeniglafriks
authored andcommitted
Use session when creating user (#2638)
1 parent b3cfa5a commit 4b2c8ca

File tree

1 file changed

+20
-16
lines changed

1 file changed

+20
-16
lines changed

models/user.go

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -591,19 +591,23 @@ func (u *User) IsMailable() bool {
591591
return u.IsActive
592592
}
593593

594-
// IsUserExist checks if given user name exist,
595-
// the user name should be noncased unique.
596-
// If uid is presented, then check will rule out that one,
597-
// it is used when update a user name in settings page.
598-
func IsUserExist(uid int64, name string) (bool, error) {
594+
func isUserExist(e Engine, uid int64, name string) (bool, error) {
599595
if len(name) == 0 {
600596
return false, nil
601597
}
602-
return x.
598+
return e.
603599
Where("id!=?", uid).
604600
Get(&User{LowerName: strings.ToLower(name)})
605601
}
606602

603+
// IsUserExist checks if given user name exist,
604+
// the user name should be noncased unique.
605+
// If uid is presented, then check will rule out that one,
606+
// it is used when update a user name in settings page.
607+
func IsUserExist(uid int64, name string) (bool, error) {
608+
return isUserExist(x, uid, name)
609+
}
610+
607611
// GetUserSalt returns a random user salt token.
608612
func GetUserSalt() (string, error) {
609613
return base.GetRandomString(10)
@@ -659,24 +663,30 @@ func CreateUser(u *User) (err error) {
659663
return err
660664
}
661665

662-
isExist, err := IsUserExist(0, u.Name)
666+
sess := x.NewSession()
667+
defer sess.Close()
668+
if err = sess.Begin(); err != nil {
669+
return err
670+
}
671+
672+
isExist, err := isUserExist(sess, 0, u.Name)
663673
if err != nil {
664674
return err
665675
} else if isExist {
666676
return ErrUserAlreadyExist{u.Name}
667677
}
668678

669679
u.Email = strings.ToLower(u.Email)
670-
has, err := x.
680+
isExist, err = sess.
671681
Where("email=?", u.Email).
672682
Get(new(User))
673683
if err != nil {
674684
return err
675-
} else if has {
685+
} else if isExist {
676686
return ErrEmailAlreadyUsed{u.Email}
677687
}
678688

679-
isExist, err = IsEmailUsed(u.Email)
689+
isExist, err = isEmailUsed(sess, u.Email)
680690
if err != nil {
681691
return err
682692
} else if isExist {
@@ -698,12 +708,6 @@ func CreateUser(u *User) (err error) {
698708
u.AllowCreateOrganization = setting.Service.DefaultAllowCreateOrganization
699709
u.MaxRepoCreation = -1
700710

701-
sess := x.NewSession()
702-
defer sess.Close()
703-
if err = sess.Begin(); err != nil {
704-
return err
705-
}
706-
707711
if _, err = sess.Insert(u); err != nil {
708712
return err
709713
} else if err = os.MkdirAll(UserPath(u.Name), os.ModePerm); err != nil {

0 commit comments

Comments
 (0)