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

@@ -2,6 +2,7 @@ package controllers
import (
"git.golem15.com/golem15/summercms/modules/backpack"
"git.golem15.com/golem15/summercms/modules/cabana"
"git.golem15.com/golem15/summercms/modules/pact"
)
@@ -29,4 +30,9 @@ func init() {
var _ pact.HasAdminBulkActions = usersAdminController{}
var _ pact.HasAdminRecordActions = usersAdminController{}
var _ pact.AdminPartialData = usersAdminController{}
var _ pact.FormVirtualFields = usersAdminController{}
var _ pact.FormBeforeCreate = usersAdminController{}
var _ pact.FormAfterCreate = usersAdminController{}
var _ cabana.FieldRelationProvider = usersAdminController{}
var _ cabana.PermissionEditorProvider = usersAdminController{}
}