Skip to content

🔒 A simple dynamic access control list (ACL) management system for Nette Framework, with support for roles, permissions, and resources.

License

Notifications You must be signed in to change notification settings

drago-ex/authorization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Drago Authorization

Drago Authorization is a simple and dynamic access control list (ACL) management system built on top of the Nette Framework. It provides an easy-to-use solution for managing roles, resources, and permissions, with built-in support for PHP 8.3 or higher.

License: MIT PHP version Tests Coding Style CodeFactor Coverage Status

Technology

  • PHP 8.3 or higher
  • Bootstrap
  • composer

Installation

composer require drago-ex/authorization

Extension Registration

To use Drago Authorization in your Nette application, register the extension in your config.neon file:

extensions:
	- Drago\Authorization\DI\AuthorizationExtension

Usage

Use Trait in Base Presenter for Access Control

You can use the Authorization trait in your base presenter to manage access control and redirect users to the login page if needed.

use Drago\Authorization\Authorization

// Redirect to a specific login presenter or module
private string $loginLink = ':Module:Presenter:';

UUse Trait in Presenter for Access Control Settings

In each presenter, use the AuthorizationControl trait to manage authorization control.

use Drago\Authorization\Control\AuthorizationControl

Component Creation and Configuration

Here’s how to create and configure the main components for managing roles, permissions, and resources:

// Minimum configuration to create components.

protected function createComponentPermissionsControl(): PermissionsControl
{
	return $this->permissionsControl;
}

protected function createComponentRolesControl(): RolesControl
{
	return $this->rolesControl;
}

protected function createComponentResourcesControl(): ResourcesControl
{
	return $this->resourcesControl;
}

protected function createComponentPrivilegesControl(): PrivilegesControl
{
	return $this->privilegesControl;
}

protected function createComponentAccessControl(): AccessControl
{
	return $this->accessControl;
}

You can also configure custom templates for the components:

// Set custom templates for controls
$control->templateControl = __DIR__ . '/path/to/file.latte';
$control->templateGrid = __DIR__ . '/path/to/file.latte';

// Insert a translator for multi-language support
$control->translator = $this->getTranslator();

Use Components in Latte

Once the components are configured, you can render them in your Latte templates:

{control permissionsControl}
{control rolesControl}
{control resourcesControl}
{control privilegesControl}
{control accessControl}

About

🔒 A simple dynamic access control list (ACL) management system for Nette Framework, with support for roles, permissions, and resources.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published