Skip to content

usecase ​

go
import "github.com/prescriptoo/prescriptoo-api/services/authorization/internal/usecase"

Package usecase evaluates permissions and manages scoped authorization grants.

Index ​

type Service ​

Service evaluates scoped permissions and executes authorized grant-management operations.

go
type Service struct {
    EnforceSubscriptions bool
    Subscriptions        sub.SubscriptionService
    // contains filtered or unexported fields
}

func New ​

go
func New(repo ports.Repository, members p.MembershipReader) *Service

New constructs the service with its required persistence and membership capabilities.

func (*Service) AssignRole ​

go
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 ​

go
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 ​

go
func (s *Service) DeleteRole(ctx context.Context, input p.DeleteRoleInput) error

DeleteRole revokes role assignments and deletes the role in one transaction.

func (*Service) GetMemberAuthorization ​

go
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 ​

go
func (s *Service) GetRole(ctx context.Context, q p.RoleQuery) (*p.Role, error)

GetRole reads one role without crossing scope boundaries.

func (*Service) HasAdminPermission ​

go
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 ​

go
func (s *Service) HasOrganizationPermission(ctx context.Context, input p.HasOrganizationPermissionInput) (bool, error)

HasOrganizationPermission evaluates a permission for a current organization member.

func (*Service) HasOrganizationPermissionInTransaction ​

go
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 ​

go
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 ​

go
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 ​

go
func (s *Service) RemoveMemberPermission(ctx context.Context, input p.RemoveMemberPermissionInput) (*p.MemberAuthorization, error)

RemoveMemberPermission restores inheritance at the expected member version.

func (*Service) RevokeRole ​

go
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 ​

go
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 ​

go
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 ​

go
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

Documentation follows the source. Planned contracts are marked explicitly.