https://github.com/drago-ex/authorization
:lock: Simple dynamic access control list management. (@nette)
https://github.com/drago-ex/authorization
acl nette
Last synced: about 2 months ago
JSON representation
:lock: Simple dynamic access control list management. (@nette)
- Host: GitHub
- URL: https://github.com/drago-ex/authorization
- Owner: drago-ex
- License: mit
- Created: 2020-03-31T06:14:20.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-01-24T06:05:21.000Z (over 2 years ago)
- Last Synced: 2024-04-25T02:39:23.446Z (about 2 years ago)
- Topics: acl, nette
- Language: PHP
- Homepage:
- Size: 676 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: license.md
Awesome Lists containing this project
README
## 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.
[](https://raw.githubusercontent.com/drago-ex/authorization/master/license)
[](https://badge.fury.io/ph/drago-ex%2Fauthorization)
[](https://github.com/drago-ex/authorization/actions/workflows/tests.yml)
[](https://github.com/drago-ex/authorization/actions/workflows/coding-style.yml)
[](https://www.codefactor.io/repository/github/drago-ex/authorization)
[](https://coveralls.io/github/drago-ex/authorization?branch=master)
## Requirements
- PHP >= 8.3
- Nette Framework
- Composer
- Bootstrap
## Installation
```
composer require drago-ex/authorization
```
## Extension Registration
To use Drago Authorization in your Nette application, register the extension in your `config.neon` file:
```neon
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.
```php
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.
```php
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:
```php
// 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:
```php
// 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:
```latte
{control permissionsControl}
{control rolesControl}
{control resourcesControl}
{control privilegesControl}
{control accessControl}
```