Files
sm-user-plugin/controllers/admin_registry.go
Jakub Zych 9611708792 feat: manage a user's groups from the user form, privileged groups locked
- groups relation field on the user form, the only writer of users_groups
- UsersGroup pivot model
- AdminRelationLocks: adding or removing a group whose code is in
  golem15.user.privileged_groups needs golem15.users.manage_privileged_groups,
  on create and on update; refused saves answer 403 and write nothing
- TestAdminUserGroupsField and TestAdminPrivilegedGroups
2026-10-05 13:44:15 +02:00

40 lines
1.6 KiB
Go

package controllers
import (
"git.golem15.com/golem15/summercms/modules/backpack"
"git.golem15.com/golem15/summercms/modules/cabana"
"git.golem15.com/golem15/summercms/modules/pact"
)
// AdminControllers is the plugin's admin controller list. app returns the
// booted application; it is asked on every call, so a controller never keeps
// a database handle, a config or a mailer of its own.
func AdminControllers(app func() *backpack.App) []pact.AdminController {
return []pact.AdminController{
usersAdminController{app: app},
}
}
func init() {
var _ pact.AdminController = usersAdminController{}
var _ pact.AdminPermissioned = usersAdminController{}
var _ pact.AdminRecordSource = usersAdminController{}
var _ pact.ListExtendQuery = usersAdminController{}
var _ pact.FormExtendQuery = usersAdminController{}
var _ pact.ListRowStates = usersAdminController{}
var _ pact.FormRules = usersAdminController{}
var _ pact.FilterOptions = usersAdminController{}
var _ pact.FormBeforeUpdate = usersAdminController{}
var _ pact.FormBeforeDelete = usersAdminController{}
var _ pact.FormAfterDelete = usersAdminController{}
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.RelationLockProvider = usersAdminController{}
var _ cabana.PermissionEditorProvider = usersAdminController{}
}