ACL Manager Plugin
ACL Manager is a plugin that provides access control list (ACL) management functionality for the Festi Framework. It allows you to manage permissions across sections and user types through a visual interface.
Installation
Add Submodule
Add the plugin as a git submodule:
git submodule add git@gitlab.varteq.com:FestiCore/php_festi_plugin_acl.git ./src/dashboard/plugins/ACLManage
Database Installation
After adding the plugin, install the database schema:
Option A: Using Workbench (Automatic)
The plugin will be automatically installed when you run the system installation or update:
Workbench::install();
Option B: Manual SQL Execution
Run the appropriate SQL dump for your database type from the install/ directory:
# For MySQL
mysql -u username -p database_name < install/install.mysql.sql
# For PostgreSQL
psql -U username -d database_name -f install/install.pgsql.sql
Usage
Accessing the Plugin
Get an instance of the plugin through the Core:
$aclPlugin = Core::getInstance()->getPluginInstance('ACLManage');
// or
$aclPlugin = Core::getInstance()->getPluginInstance(ACLManagePlugin::class);
Using Plugin Facades
The plugin provides facades for accessing its functionality:
$plugin = Core::getInstance()->getPluginInstance('ACLManage');
// Get sections facade
$sectionsFacade = $plugin->getSectionsFacade();
$sections = $sectionsFacade->getList();
// Get permissions facade
$permissionsFacade = $plugin->getSectionsPermissionsFacade();
$permissions = $permissionsFacade->getList($userTypeIds);
// Get user types facade
$userTypesFacade = $plugin->getUsersTypesFacade();
$userTypes = $userTypesFacade->getList($workspaceId);
Plugin Routes
The plugin exposes the following routes (when using Jimbo system plugin):
GET /manage/acl/- Main ACL management interfacePOST /manage/acl/apply/- Apply permission changes (JSON)GET /manage/acl/users-types/- User types management interface
From Another Plugin
Access the plugin from within another plugin:
class MyPlugin extends DisplayPlugin
{
public function someMethod()
{
$aclPlugin = $this->plugin->aclmanage;
$sections = $aclPlugin->getSectionsFacade()->getList();
}
}
Plugin Features
Sections Management
Manage access control sections that define permission boundaries in your application.
User Types
Define and manage different user types (roles) that can be assigned permissions.
Permissions Matrix
Visual interface for managing permissions across sections and user types, allowing you to: - View all sections and user types in a matrix - Grant or revoke permissions (read, write, exec) - Batch update permissions