fix(auth): allow admins to change any username including their own
ci / contract / contract (сгенерированный код совпадает с openapi.yaml) (push) Successful in 1m6s
ci / ts / ts (packages + web) (push) Successful in 2m59s
ci / api / api (push) Successful in 49s
ci / db / db (push) Successful in 1m17s
ci / mobile / mobile (Metro-бандл Android) (push) Successful in 1m25s
ci / contract / contract (сгенерированный код совпадает с openapi.yaml) (push) Successful in 1m6s
ci / ts / ts (packages + web) (push) Successful in 2m59s
ci / api / api (push) Successful in 49s
ci / db / db (push) Successful in 1m17s
ci / mobile / mobile (Metro-бандл Android) (push) Successful in 1m25s
This commit is contained in:
1 parent
b0cbd0f149
commit
c34272d508
16 files changed
+431
-266
No files matched your search
@@ -293,7 +293,18 @@ func (s *MemStore) LockActiveAdmins(ctx context.Context) (int, error) { return s
|
||||
|
||||
// UpdateUser реализует auth.Store.
|
||||
func (s *MemStore) UpdateUser(ctx context.Context, id uuid.UUID, upd auth.UserUpdate) (auth.User, error) {
|
||||
if upd.Username != nil {
|
||||
unlock := s.lock()
|
||||
taken := s.usernameTaken(*upd.Username, id)
|
||||
unlock()
|
||||
if taken {
|
||||
return auth.User{}, auth.ErrUsernameTaken
|
||||
}
|
||||
}
|
||||
err := s.update(id, func(u *auth.User) {
|
||||
if upd.Username != nil {
|
||||
u.Username = *upd.Username
|
||||
}
|
||||
if upd.DisplayName != nil {
|
||||
u.DisplayName = *upd.DisplayName
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user