Files
sm-user-plugin/admin_permissions.go
Jakub Zych 6f1cb1a774 feat: link and unlink an administrator's frontend account on the Administrators screen
- golem15.users.manage_backend_links (no default role), en and pl labels
- record actions on summercms.cabana.users: link_frontend_account asks for
  the frontend user's email (exact, case-insensitive, active users only),
  records linked_by and fires the link events; unlink_frontend_account
  (danger) removes the link
- a taken or unknown account answers 422 on the prompt
2026-10-23 12:14:21 +02:00

58 lines
1.9 KiB
Go

package user
import (
"git.golem15.com/golem15/sm-user-plugin/classes"
"git.golem15.com/golem15/summercms/modules/pact"
)
const userPermissionTab = "golem15.user::lang.plugin.tab"
// Permissions is the plugin's Winter registerPermissions() catalog plus two
// codes of its own. The four PHP codes default to the developer role;
// impersonate_user is registered so imported backend roles that name it stay
// valid, although no screen uses it. The fifth code
// (classes.PermissionManagePrivilegedGroups) has no default role: only a
// superuser, or a role that was granted it explicitly, may change the email
// or password of a privileged-group member or delete one. The sixth
// (classes.PermissionManageBackendLinks) has no default role either: it
// links and unlinks another administrator's frontend account on the
// Administrators screen.
func (*Plugin) Permissions() []pact.Permission {
return []pact.Permission{
{
Code: "golem15.users.access_users",
Tab: userPermissionTab,
Label: "golem15.user::lang.plugin.access_users",
Roles: []string{"developer"},
},
{
Code: "golem15.users.access_groups",
Tab: userPermissionTab,
Label: "golem15.user::lang.plugin.access_groups",
Roles: []string{"developer"},
},
{
Code: "golem15.users.access_settings",
Tab: userPermissionTab,
Label: "golem15.user::lang.plugin.access_settings",
Roles: []string{"developer"},
},
{
Code: "golem15.users.impersonate_user",
Tab: userPermissionTab,
Label: "golem15.user::lang.plugin.impersonate_user",
Roles: []string{"developer"},
},
{
Code: "golem15.users.manage_privileged_groups",
Tab: userPermissionTab,
Label: "golem15.user::lang.plugin.manage_privileged_groups",
},
{
Code: classes.PermissionManageBackendLinks,
Tab: userPermissionTab,
Label: "golem15.user::lang.plugin.manage_backend_links",
},
}
}