ActivitiesPlugin
extends BasePlugin
in package
implements
KMPPluginInterface, KMPApiPluginInterface
ActivitiesPlugin - Member Authorization and Participation Management System
Core plugin managing member authorization workflows for activity-based participation. Provides authorization lifecycle management, multi-level approval workflows, and temporal access control integrated with KMP's RBAC system.
See comprehensive documentation: 5.6.1-activities-plugin-architecture.md
Tags
Table of Contents
Interfaces
- KMPPluginInterface
- Plugin architecture contract for KMP plugins.
- KMPApiPluginInterface
- Contract for plugins that publish API routes.
Properties
- $_migrationOrder : int
- Plugin Migration Order
Methods
- __construct() : mixed
- Plugin Constructor with Configuration Support
- bootstrap() : void
- Bootstrap Plugin Configuration and Service Registration
- console() : CommandCollection
- Register Plugin Console Commands
- getMigrationOrder() : int
- Get Migration Order for Plugin Initialization
- middleware() : MiddlewareQueue
- Configure Plugin Middleware
- registerApiRoutes() : void
- Register API routes for the Activities plugin.
- routes() : void
- Configure Plugin Routing
- services() : void
- Register Plugin Services with Dependency Injection Container
Properties
$_migrationOrder
Plugin Migration Order
protected
int
$_migrationOrder
= 0
Configurable migration order (default: 0) for controlling initialization sequence relative to other plugins. Set to 1 for base system behavior.
Plugin initialization order
Methods
__construct()
Plugin Constructor with Configuration Support
public
__construct([array<string|int, mixed> $config = [] ]) : mixed
Initializes the plugin with configuration options, particularly the migration order which can be overridden through plugin configuration.
Configuration Options:
- migrationOrder: Override default migration order (default: 0)
Parameters
- $config : array<string|int, mixed> = []
-
Plugin configuration options
bootstrap()
Bootstrap Plugin Configuration and Service Registration
public
bootstrap(PluginApplicationInterface $app) : void
Initializes the plugin by registering services, event handlers, navigation, view cells, and configuration management. Manages configuration versioning with automatic updates and backward compatibility.
Configuration Version Management:
- Tracks current version to detect migration requirements
- Initializes default settings on first run
- Cleans up deprecated settings
- Ensures consistent configuration across deployments
See documentation: 5.6.1-activities-plugin-architecture.md
Parameters
- $app : PluginApplicationInterface
-
The host application
console()
Register Plugin Console Commands
public
console(CommandCollection $commands) : CommandCollection
Extension point for CLI commands. Reserved for future administrative and maintenance commands supporting cleanup, status updates, reporting, and data migrations.
Planned Commands:
- bin/cake activities cleanup_expired
- bin/cake activities status_report
- bin/cake activities migrate_data
Parameters
- $commands : CommandCollection
-
The command collection to update
Return values
CommandCollection —Updated command collection
getMigrationOrder()
Get Migration Order for Plugin Initialization
public
getMigrationOrder() : int
Returns the migration order determining when this plugin initializes relative to other plugins.
Return values
int —Migration order value
middleware()
Configure Plugin Middleware
public
middleware(MiddlewareQueue $middlewareQueue) : MiddlewareQueue
Extension point for plugin-specific middleware. Currently no custom middleware is required. Potential applications include authorization checks, audit logging, rate limiting, and additional validation layers.
Parameters
- $middlewareQueue : MiddlewareQueue
-
The middleware queue to update
Return values
MiddlewareQueue —Updated middleware queue
registerApiRoutes()
Register API routes for the Activities plugin.
public
registerApiRoutes(RouteBuilder $builder) : void
Parameters
- $builder : RouteBuilder
-
API v1 route builder
routes()
Configure Plugin Routing
public
routes(RouteBuilder $routes) : void
Establishes URL routing for the Activities plugin under the /activities path.
Uses CakePHP's fallback routing for standard controller/action patterns.
Route Examples:
- GET /activities → ActivitiesController::index()
- GET /activities/authorizations → AuthorizationsController::index()
- POST /activities/authorizations/request → AuthorizationsController::request()
- GET /activities/activity-groups → ActivityGroupsController::index()
Parameters
- $routes : RouteBuilder
-
The route builder for configuration
services()
Register Plugin Services with Dependency Injection Container
public
services(ContainerInterface $container) : void
Registers AuthorizationManagerInterface with its default implementation. The service handles authorization lifecycle and business logic for all authorization workflows.
Service Details:
- Interface: Activities\Services\AuthorizationManagerInterface
- Implementation: Activities\Services\DefaultAuthorizationManager
- Dependency: App\Services\ActiveWindowManager\ActiveWindowManagerInterface
- Provides: Authorization request, approval, denial, and revocation workflows
See documentation: 5.6.1-activities-plugin-architecture.md
Parameters
- $container : ContainerInterface
-
The DI container to configure