Files
sm-user-plugin/controllers/admin_registry.go
Jakub Zych a3992879db feat: User Groups admin screen with the users count and privileged codes protected
- controller golem15.user.usergroups behind golem15.users.access_groups
- list with users_count from the list's own query; form with the checkbox
  permission editor stored in user_groups.permissions
- creating a group with a privileged code, changing a code to or from one and
  deleting a privileged group need golem15.users.manage_privileged_groups
- a group delete removes its users_groups rows in the same transaction
- UserGroup gains Fillable, Rules and the read-only UsersCount; PermissionSet.Text
- TestAdminGroups and the D-06 matrix in TestAdminPrivilegedGroups
2026-10-05 13:52:26 +02:00

51 lines
2.2 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},
usergroupsAdminController{app: appAccess(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{}
var _ pact.AdminController = usergroupsAdminController{}
var _ pact.AdminPermissioned = usergroupsAdminController{}
var _ pact.AdminRecordSource = usergroupsAdminController{}
var _ pact.ListExtendQuery = usergroupsAdminController{}
var _ pact.FormBeforeCreate = usergroupsAdminController{}
var _ pact.FormBeforeUpdate = usergroupsAdminController{}
var _ pact.FormBeforeDelete = usergroupsAdminController{}
var _ pact.FormAfterDelete = usergroupsAdminController{}
var _ cabana.PermissionEditorProvider = usergroupsAdminController{}
}