usecase
import "github.com/prescriptoo/prescriptoo-api/services/authorization/internal/usecase"Package usecase evaluates permissions and manages scoped authorization grants.
Index
- type Service
- func New(repo ports.Repository, members p.MembershipReader) *Service
- func (s *Service) AssignRole(ctx context.Context, input p.AssignRoleInput) (*p.MemberAuthorization, error)
- func (s *Service) CreateRole(ctx context.Context, input p.CreateRoleInput) (*p.Role, error)
- func (s *Service) DeleteRole(ctx context.Context, input p.DeleteRoleInput) error
- func (s *Service) GetMemberAuthorization(ctx context.Context, q p.MemberQuery) (*p.MemberAuthorization, error)
- func (s *Service) GetRole(ctx context.Context, q p.RoleQuery) (*p.Role, error)
- func (s *Service) HasAdminPermission(ctx context.Context, input p.HasAdminPermissionInput) (bool, error)
- func (s *Service) HasOrganizationPermission(ctx context.Context, input p.HasOrganizationPermissionInput) (bool, error)
- func (s *Service) HasOrganizationPermissionInTransaction(ctx context.Context, tx pgx.Tx, in p.HasOrganizationPermissionInput, m p.Membership) (bool, error)
- func (s *Service) ListPermissions(ctx context.Context, q p.Query) ([]p.Permission, error)
- func (s *Service) ListRoles(ctx context.Context, q p.Query) ([]p.Role, error)
- func (s *Service) RemoveMemberPermission(ctx context.Context, input p.RemoveMemberPermissionInput) (*p.MemberAuthorization, error)
- func (s *Service) RevokeRole(ctx context.Context, input p.RevokeRoleInput) (*p.MemberAuthorization, error)
- func (s *Service) SetMemberPermission(ctx context.Context, input p.SetMemberPermissionInput) (*p.MemberAuthorization, error)
- func (s *Service) SetRolePermissions(ctx context.Context, input p.SetRolePermissionsInput) (*p.Role, error)
- func (s *Service) UpdateRole(ctx context.Context, input p.UpdateRoleInput) (*p.Role, error)
type Service
Service evaluates scoped permissions and executes authorized grant-management operations.
type Service struct {
EnforceSubscriptions bool
Subscriptions sub.SubscriptionService
// contains filtered or unexported fields
}2
3
4
5
func New
func New(repo ports.Repository, members p.MembershipReader) *ServiceNew constructs the service with its required persistence and membership capabilities.
func (*Service) AssignRole
func (s *Service) AssignRole(ctx context.Context, input p.AssignRoleInput) (*p.MemberAuthorization, error)AssignRole assigns a scoped role at the expected member version.
func (*Service) CreateRole
func (s *Service) CreateRole(ctx context.Context, input p.CreateRoleInput) (*p.Role, error)CreateRole creates a scoped role without exceeding delegation authority.
func (*Service) DeleteRole
func (s *Service) DeleteRole(ctx context.Context, input p.DeleteRoleInput) errorDeleteRole revokes role assignments and deletes the role in one transaction.
func (*Service) GetMemberAuthorization
func (s *Service) GetMemberAuthorization(ctx context.Context, q p.MemberQuery) (*p.MemberAuthorization, error)GetMemberAuthorization returns the member's role, override and effective permission state.
func (*Service) GetRole
func (s *Service) GetRole(ctx context.Context, q p.RoleQuery) (*p.Role, error)GetRole reads one role without crossing scope boundaries.
func (*Service) HasAdminPermission
func (s *Service) HasAdminPermission(ctx context.Context, input p.HasAdminPermissionInput) (bool, error)HasAdminPermission evaluates a permission for a current platform-admin member.
func (*Service) HasOrganizationPermission
func (s *Service) HasOrganizationPermission(ctx context.Context, input p.HasOrganizationPermissionInput) (bool, error)HasOrganizationPermission evaluates a permission for a current organization member.
func (*Service) HasOrganizationPermissionInTransaction
func (s *Service) HasOrganizationPermissionInTransaction(ctx context.Context, tx pgx.Tx, in p.HasOrganizationPermissionInput, m p.Membership) (bool, error)HasOrganizationPermissionInTransaction evaluates current grants using the locked, owner-provided relationship.
func (*Service) ListPermissions
func (s *Service) ListPermissions(ctx context.Context, q p.Query) ([]p.Permission, error)ListPermissions lists the supported catalog after checking read authority.
func (*Service) ListRoles
func (s *Service) ListRoles(ctx context.Context, q p.Query) ([]p.Role, error)ListRoles lists the scope owner and custom roles after checking read authority.
func (*Service) RemoveMemberPermission
func (s *Service) RemoveMemberPermission(ctx context.Context, input p.RemoveMemberPermissionInput) (*p.MemberAuthorization, error)RemoveMemberPermission restores inheritance at the expected member version.
func (*Service) RevokeRole
func (s *Service) RevokeRole(ctx context.Context, input p.RevokeRoleInput) (*p.MemberAuthorization, error)RevokeRole revokes a scoped role at the expected member version.
func (*Service) SetMemberPermission
func (s *Service) SetMemberPermission(ctx context.Context, input p.SetMemberPermissionInput) (*p.MemberAuthorization, error)SetMemberPermission sets a scoped override at the expected member version.
func (*Service) SetRolePermissions
func (s *Service) SetRolePermissions(ctx context.Context, input p.SetRolePermissionsInput) (*p.Role, error)SetRolePermissions replaces the role bundle after validating delegation authority.
func (*Service) UpdateRole
func (s *Service) UpdateRole(ctx context.Context, input p.UpdateRoleInput) (*p.Role, error)UpdateRole replaces scoped role metadata at the expected version.
Generated by gomarkdoc