func (a *ldapAuther) syncUserInfo(user *m.User, ldapUser *ldapUserInfo) error { var name = fmt.Sprintf("%s %s", ldapUser.FirstName, ldapUser.LastName) if user.Email == ldapUser.Email && user.Name == name { return nil } log.Info("Ldap: Syncing user info %s", ldapUser.Username) updateCmd := m.UpdateUserCommand{} updateCmd.UserId = user.Id updateCmd.Login = user.Login updateCmd.Email = ldapUser.Email updateCmd.Name = fmt.Sprintf("%s %s", ldapUser.FirstName, ldapUser.LastName) return bus.Dispatch(&updateCmd) }
// POST /api/user func UpdateSignedInUser(c *middleware.Context, cmd m.UpdateUserCommand) Response { if setting.AuthProxyEnabled { if setting.AuthProxyHeaderProperty == "email" && cmd.Email != c.Email { return ApiError(400, "Not allowed to change email when auth proxy is using email property", nil) } if setting.AuthProxyHeaderProperty == "username" && cmd.Login != c.Login { return ApiError(400, "Not allowed to change username when auth proxy is using username property", nil) } } cmd.UserId = c.UserId return handleUpdateUser(cmd) }
func handleUpdateUser(cmd m.UpdateUserCommand) Response { if len(cmd.Login) == 0 { cmd.Login = cmd.Email if len(cmd.Login) == 0 { return ApiError(400, "Validation error, need specify either username or email", nil) } } if err := bus.Dispatch(&cmd); err != nil { return ApiError(500, "failed to update user", err) } return ApiSuccess("User updated") }
// POST /api/users/:id func UpdateUser(c *middleware.Context, cmd m.UpdateUserCommand) Response { cmd.UserId = c.ParamsInt64(":id") return handleUpdateUser(cmd) }
// POST /api/user func UpdateSignedInUser(c *middleware.Context, cmd m.UpdateUserCommand) Response { cmd.UserId = c.UserId return handleUpdateUser(cmd) }