Files
zitadel/backend/v3/domain/administrator_role.go
T
7b9d2b7d17 feat: add administrator role permission table (#11817)
This update introduces a new table for managing administrator role
permissions, along with the necessary repository and projection logic to
handle adding and removing permissions. It also includes tests to ensure
the correct functionality of the permission management system.

closes https://github.com/zitadel/zitadel/issues/10219

---------

Co-authored-by: Marco Ardizzone <[email protected]>
2026-04-14 06:01:52 +00:00

33 lines
1.1 KiB
Go

package domain
import (
"context"
"github.com/zitadel/zitadel/backend/v3/storage/database"
)
type administratorRoleColumns interface {
PrimaryKeyColumns() []database.Column
InstanceIDColumn() database.Column
RoleNameColumn() database.Column
PermissionColumn() database.Column
}
type administratorRoleConditions interface {
PrimaryKeyCondition(instanceID, roleName, permission string) database.Condition
InstanceIDCondition(instanceID string) database.Condition
RoleNameCondition(op database.TextOperation, name string) database.Condition
PermissionCondition(op database.TextOperation, permission string) database.Condition
}
//go:generate mockgen -typed -package domainmock -destination ./mock/administrator_role.mock.go . AdministratorRoleRepository
type AdministratorRoleRepository interface {
Repository
administratorRoleColumns
administratorRoleConditions
AddPermissions(ctx context.Context, client database.QueryExecutor, instanceID, role string, permissions ...string) (int64, error)
RemovePermissions(ctx context.Context, client database.QueryExecutor, instanceID, role string, permissionsToRemove ...string) (int64, error)
}