AuthorizationManagerInterface
in
Contract for managing member activity authorizations.
Defines the service layer for authorization workflows including requests, approvals, denials, revocations, and retractions. All methods return ServiceResult objects and require external transaction management.
Tags
Table of Contents
Methods
- approve() : ServiceResult
- Process approval of an authorization request.
- deny() : ServiceResult
- Process denial of an authorization request.
- request() : ServiceResult
- Initiate a new authorization request.
- retract() : ServiceResult
- Retract (cancel) a pending authorization request.
- revoke() : ServiceResult
- Revoke an active authorization.
Methods
approve()
Process approval of an authorization request.
public
approve(int $authorizationApprovalId, int $approverId[, int|null $nextApproverId = null ]) : ServiceResult
Validates approver authority, records approval, and activates authorization when all required approvals are collected. Requires external transaction.
Parameters
- $authorizationApprovalId : int
-
ID of approval record to process
- $approverId : int
-
ID of member providing approval
- $nextApproverId : int|null = null
-
Optional next approver for multi-level workflow
Return values
ServiceResult —Success with authorization data or error details
deny()
Process denial of an authorization request.
public
deny(int $authorizationApprovalId, int $approverId, string $denyReason) : ServiceResult
Records denial reasoning, updates status, and maintains audit trail. Requires external transaction.
Parameters
- $authorizationApprovalId : int
-
ID of approval record to deny
- $approverId : int
-
ID of member providing denial
- $denyReason : string
-
Detailed reason for denial
Return values
ServiceResult —Success with denial confirmation or error details
request()
Initiate a new authorization request.
public
request(int $requesterId, int $activityId, int $approverId, bool $isRenewal) : ServiceResult
Validates member eligibility, assigns approver, creates authorization in pending status. Requires external transaction.
Parameters
- $requesterId : int
-
ID of member requesting authorization
- $activityId : int
-
ID of activity for authorization
- $approverId : int
-
ID of assigned approver
- $isRenewal : bool
-
Whether this is a renewal request
Return values
ServiceResult —Success with request data or error details
retract()
Retract (cancel) a pending authorization request.
public
retract(int $authorizationId, int $requesterId) : ServiceResult
Allows requester to cancel their own pending request before approval/denial. Requires external transaction.
Parameters
- $authorizationId : int
-
ID of authorization to retract
- $requesterId : int
-
ID of member retracting (must be owner)
Return values
ServiceResult —Success with retraction confirmation or error details
revoke()
Revoke an active authorization.
public
revoke(int $authorizationId, int $revokerId, string $revokedReason) : ServiceResult
Administratively revokes authorization with reasoning. Handles role removal and cascade effects. Requires external transaction.
Parameters
- $authorizationId : int
-
ID of authorization to revoke
- $revokerId : int
-
ID of administrator performing revocation
- $revokedReason : string
-
Detailed reason for revocation
Return values
ServiceResult —Success with revocation confirmation or error details