feat: register the Users admin screen with the privileged-member guard

- permissions (the four Winter codes and manage_privileged_groups),
  the user navigation item and the embedded admin YAML
- Users controller: list with deactivated users, row states, the
  groups, created date and activated filters, and the form's name,
  surname and email
- a member of a group in golem15.user.privileged_groups (default
  admin) keeps their email, password and row unless the administrator
  holds golem15.users.manage_privileged_groups; the refusal is a 403
  that saves nothing
This commit is contained in:
Jakub Zych
2026-10-05 13:01:18 +02:00
parent e22f7660f3
commit b410a7fea9
17 changed files with 739 additions and 2 deletions

28
models/user/columns.yaml Normal file
View File

@@ -0,0 +1,28 @@
columns:
id:
label: golem15.user::lang.user.id
invisible: true
name:
label: golem15.user::lang.user.name
searchable: true
surname:
label: golem15.user::lang.user.surname
searchable: true
invisible: true
email:
label: golem15.user::lang.user.email
searchable: true
created_at:
label: golem15.user::lang.user.created_at
type: datetime
last_seen:
label: golem15.user::lang.user.last_seen
type: datetime
created_ip_address:
label: golem15.user::lang.user.created_ip_address
searchable: true
invisible: true
last_ip_address:
label: golem15.user::lang.user.last_ip_address
searchable: true
invisible: true

16
models/user/fields.yaml Normal file
View File

@@ -0,0 +1,16 @@
fields:
name:
label: golem15.user::lang.user.name
type: text
span: left
tab: golem15.user::lang.user.account
surname:
label: golem15.user::lang.user.surname
type: text
span: right
tab: golem15.user::lang.user.account
email:
label: golem15.user::lang.user.email
type: text
span: full
tab: golem15.user::lang.user.account