@@ -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.
608612func 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