refactor: spell the five permission codes out in the catalog

The catalog reads like the Winter registerPermissions() list, and a
test pins the codes and their default roles.
This commit is contained in:
Jakub Zych
2026-10-05 13:03:36 +02:00
parent f3f33b809a
commit ebaf3a0817
2 changed files with 29 additions and 10 deletions

View File

@@ -7,6 +7,7 @@ import (
"strings"
"testing"
"git.golem15.com/golem15/sm-user-plugin/classes"
"git.golem15.com/golem15/sm-user-plugin/models"
"git.golem15.com/golem15/summercms/modules/compass"
)
@@ -20,6 +21,27 @@ const (
// permission gating, the list schema, row states, search, the three filters
// and an update.
func TestAdminUsersTracer(t *testing.T) {
// The permission catalog: the four Winter codes default to the developer
// role, the privileged-groups code to no role at all.
var codes []string
for _, permission := range (&Plugin{}).Permissions() {
role := "-"
if len(permission.Roles) == 1 {
role = permission.Roles[0]
}
codes = append(codes, permission.Code+"@"+role)
if permission.Tab != "golem15.user::lang.plugin.tab" || !strings.HasPrefix(permission.Label, "golem15.user::lang.plugin.") {
t.Fatalf("permission %+v", permission)
}
}
if want := []string{
"golem15.users.access_users@developer", "golem15.users.access_groups@developer",
"golem15.users.access_settings@developer", "golem15.users.impersonate_user@developer",
classes.PermissionManagePrivilegedGroups + "@-",
}; !reflect.DeepEqual(codes, want) || classes.PermissionManagePrivilegedGroups != permManagePrivileged {
t.Fatalf("permissions = %v", codes)
}
env := newAdminEnv(t)
token := env.admin(t, permAccessUsers)
stranger := env.admin(t)