mirror of
https://github.com/andwati/zitadel.git
synced 2026-10-27 09:42:16 +00:00
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]>
33 lines
1.1 KiB
Go
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)
|
|
}
|