feat: create users with a password and an invitation in the admin

- password with confirmation on create, optional reset on update that
  ends the user's sessions; the hash is never returned
- send_invite sends one invitation with an activation link after the
  create commits
- organisation picker, avatar upload shared with the user API and the
  frontend permission editor on the user form
- an email held by a deactivated user answers 422 instead of failing
  on the unique constraint
- the privileged-member guard now also refuses a submitted password
This commit is contained in:
Jakub Zych
2026-10-05 13:21:51 +02:00
parent cdea47a178
commit f7ca3c4f59
12 changed files with 1080 additions and 16 deletions

View File

@@ -10,6 +10,7 @@ plugin:
manage_privileged_groups: Manage privileged group membership
users:
menu_label: Users
new_user: New User
list_title: Manage Users
list_empty: No users match this view. Clear the filters, or add one with New User.
state_deactivated: Deactivated
@@ -64,5 +65,16 @@ user:
created_ip_address: Created IP Address
last_ip_address: Last IP Address
status_activated: Activated
send_invite: Send invitation by email
send_invite_comment: Sends a welcome message containing login and password information.
password: Password
password_comment: On a new user, enter the sign-in password. On an existing user, leave empty to keep the current password.
confirm_password: Password Confirmation
confirm_password_comment: Enter the password again to confirm it.
avatar: Avatar
permissions_tab: Permissions
group:
label: Group
organisation:
label: Organisation
empty_organisation: — No organisation —

View File

@@ -10,6 +10,7 @@ plugin:
manage_privileged_groups: Zarządzaj członkostwem w grupach uprzywilejowanych
users:
menu_label: Użytkownicy
new_user: Nowy użytkownik
list_title: Zarządzaj użytkownikami
list_empty: Brak użytkowników w tym widoku. Wyczyść filtry lub dodaj użytkownika przyciskiem Nowy użytkownik.
state_deactivated: Dezaktywowany
@@ -64,5 +65,16 @@ user:
created_ip_address: Stworzono z IP
last_ip_address: Ostatnie IP
status_activated: Aktywowany
send_invite: Wyślij zaproszenie pocztą e-mail
send_invite_comment: Wysyła wiadomość powitalną zawierającą dane logowania i hasło.
password: Hasło
password_comment: Dla nowego użytkownika wpisz hasło do logowania. Dla istniejącego pozostaw puste, aby nie zmieniać hasła.
confirm_password: Potwierdzenie hasła
confirm_password_comment: Wprowadź ponownie hasło, aby je potwierdzić.
avatar: Avatar
permissions_tab: Uprawnienia
group:
label: Grupa
organisation:
label: Organizacja
empty_organisation: — Brak organizacji —