|
|
@@ -16,7 +16,7 @@ import (
|
|
|
)
|
|
|
|
|
|
func init() {
|
|
|
- bus.AddHandler("sql", CreateUser)
|
|
|
+ //bus.AddHandler("sql", CreateUser)
|
|
|
bus.AddHandler("sql", GetUserById)
|
|
|
bus.AddHandler("sql", UpdateUser)
|
|
|
bus.AddHandler("sql", ChangeUserPassword)
|
|
|
@@ -31,7 +31,7 @@ func init() {
|
|
|
bus.AddHandler("sql", DeleteUser)
|
|
|
bus.AddHandler("sql", UpdateUserPermissions)
|
|
|
bus.AddHandler("sql", SetUserHelpFlag)
|
|
|
- bus.AddHandlerCtx("sql", CreateUserCtx)
|
|
|
+ bus.AddHandlerCtx("sql", CreateUser)
|
|
|
}
|
|
|
|
|
|
func getOrgIdForNewUser(cmd *m.CreateUserCommand, sess *DBSession) (int64, error) {
|
|
|
@@ -81,90 +81,80 @@ func getOrgIdForNewUser(cmd *m.CreateUserCommand, sess *DBSession) (int64, error
|
|
|
return org.Id, nil
|
|
|
}
|
|
|
|
|
|
-func internalCreateUser(sess *DBSession, cmd *m.CreateUserCommand) error {
|
|
|
- orgId, err := getOrgIdForNewUser(cmd, sess)
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
+func CreateUser(ctx context.Context, cmd *m.CreateUserCommand) error {
|
|
|
+ return inTransactionWithRetryCtx(ctx, func(sess *DBSession) error {
|
|
|
+ orgId, err := getOrgIdForNewUser(cmd, sess)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
|
|
|
- if cmd.Email == "" {
|
|
|
- cmd.Email = cmd.Login
|
|
|
- }
|
|
|
+ if cmd.Email == "" {
|
|
|
+ cmd.Email = cmd.Login
|
|
|
+ }
|
|
|
|
|
|
- // create user
|
|
|
- user := m.User{
|
|
|
- Email: cmd.Email,
|
|
|
- Name: cmd.Name,
|
|
|
- Login: cmd.Login,
|
|
|
- Company: cmd.Company,
|
|
|
- IsAdmin: cmd.IsAdmin,
|
|
|
- OrgId: orgId,
|
|
|
- EmailVerified: cmd.EmailVerified,
|
|
|
- Created: time.Now(),
|
|
|
- Updated: time.Now(),
|
|
|
- LastSeenAt: time.Now().AddDate(-10, 0, 0),
|
|
|
- }
|
|
|
+ // create user
|
|
|
+ user := m.User{
|
|
|
+ Email: cmd.Email,
|
|
|
+ Name: cmd.Name,
|
|
|
+ Login: cmd.Login,
|
|
|
+ Company: cmd.Company,
|
|
|
+ IsAdmin: cmd.IsAdmin,
|
|
|
+ OrgId: orgId,
|
|
|
+ EmailVerified: cmd.EmailVerified,
|
|
|
+ Created: time.Now(),
|
|
|
+ Updated: time.Now(),
|
|
|
+ LastSeenAt: time.Now().AddDate(-10, 0, 0),
|
|
|
+ }
|
|
|
|
|
|
- if len(cmd.Password) > 0 {
|
|
|
- user.Salt = util.GetRandomString(10)
|
|
|
- user.Rands = util.GetRandomString(10)
|
|
|
- user.Password = util.EncodePassword(cmd.Password, user.Salt)
|
|
|
- }
|
|
|
+ if len(cmd.Password) > 0 {
|
|
|
+ user.Salt = util.GetRandomString(10)
|
|
|
+ user.Rands = util.GetRandomString(10)
|
|
|
+ user.Password = util.EncodePassword(cmd.Password, user.Salt)
|
|
|
+ }
|
|
|
|
|
|
- sess.UseBool("is_admin")
|
|
|
+ sess.UseBool("is_admin")
|
|
|
|
|
|
- if _, err := sess.Insert(&user); err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
+ if _, err := sess.Insert(&user); err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
|
|
|
- sess.publishAfterCommit(&events.UserCreated{
|
|
|
- Timestamp: user.Created,
|
|
|
- Id: user.Id,
|
|
|
- Name: user.Name,
|
|
|
- Login: user.Login,
|
|
|
- Email: user.Email,
|
|
|
- })
|
|
|
+ sess.publishAfterCommit(&events.UserCreated{
|
|
|
+ Timestamp: user.Created,
|
|
|
+ Id: user.Id,
|
|
|
+ Name: user.Name,
|
|
|
+ Login: user.Login,
|
|
|
+ Email: user.Email,
|
|
|
+ })
|
|
|
|
|
|
- cmd.Result = user
|
|
|
+ cmd.Result = user
|
|
|
|
|
|
- // create org user link
|
|
|
- if !cmd.SkipOrgSetup {
|
|
|
- orgUser := m.OrgUser{
|
|
|
- OrgId: orgId,
|
|
|
- UserId: user.Id,
|
|
|
- Role: m.ROLE_ADMIN,
|
|
|
- Created: time.Now(),
|
|
|
- Updated: time.Now(),
|
|
|
- }
|
|
|
+ // create org user link
|
|
|
+ if !cmd.SkipOrgSetup {
|
|
|
+ orgUser := m.OrgUser{
|
|
|
+ OrgId: orgId,
|
|
|
+ UserId: user.Id,
|
|
|
+ Role: m.ROLE_ADMIN,
|
|
|
+ Created: time.Now(),
|
|
|
+ Updated: time.Now(),
|
|
|
+ }
|
|
|
|
|
|
- if setting.AutoAssignOrg && !user.IsAdmin {
|
|
|
- if len(cmd.DefaultOrgRole) > 0 {
|
|
|
- orgUser.Role = m.RoleType(cmd.DefaultOrgRole)
|
|
|
- } else {
|
|
|
- orgUser.Role = m.RoleType(setting.AutoAssignOrgRole)
|
|
|
+ if setting.AutoAssignOrg && !user.IsAdmin {
|
|
|
+ if len(cmd.DefaultOrgRole) > 0 {
|
|
|
+ orgUser.Role = m.RoleType(cmd.DefaultOrgRole)
|
|
|
+ } else {
|
|
|
+ orgUser.Role = m.RoleType(setting.AutoAssignOrgRole)
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- if _, err = sess.Insert(&orgUser); err != nil {
|
|
|
- return err
|
|
|
+ if _, err = sess.Insert(&orgUser); err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- return nil
|
|
|
-}
|
|
|
-
|
|
|
-func CreateUserCtx(ctx context.Context, cmd *m.CreateUserCommand) error {
|
|
|
- return inTransactionWithRetryCtx(ctx, func(sess *DBSession) error {
|
|
|
- return internalCreateUser(sess, cmd)
|
|
|
+ return nil
|
|
|
}, 0)
|
|
|
}
|
|
|
|
|
|
-func CreateUser(cmd *m.CreateUserCommand) error {
|
|
|
- return inTransaction(func(sess *DBSession) error {
|
|
|
- return internalCreateUser(sess, cmd)
|
|
|
- })
|
|
|
-}
|
|
|
-
|
|
|
func GetUserById(query *m.GetUserByIdQuery) error {
|
|
|
user := new(m.User)
|
|
|
has, err := x.Id(query.Id).Get(user)
|