- controller golem15.user.organisations behind golem15.users.access_users - list and form (name, slug preset from the name, description, avatar) - members relation manager: link sets and unlink clears users.organisation_id - deleting an organisation releases its members first - Organisation gains Fillable, Rules, MorphName, AttachRelations, BeforeValidate and the Members relation; models.Slugify - navigation side item organisations - TestAdminOrganisations, TestAdminOrganisationMembers, TestSlugify
61 lines
2.8 KiB
Go
61 lines
2.8 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)},
|
|
organisationsAdminController{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{}
|
|
|
|
var _ pact.AdminController = organisationsAdminController{}
|
|
var _ pact.AdminPermissioned = organisationsAdminController{}
|
|
var _ pact.AdminRecordSource = organisationsAdminController{}
|
|
var _ pact.FormBeforeCreate = organisationsAdminController{}
|
|
var _ pact.FormBeforeUpdate = organisationsAdminController{}
|
|
var _ pact.FormBeforeDelete = organisationsAdminController{}
|
|
var _ pact.RelationExtendManageQuery = organisationsAdminController{}
|
|
var _ cabana.AdminRelationContractProvider = organisationsAdminController{}
|
|
}
|