archeenic / laram-permission-registry
Laravel module for managing user permissions registry
Installs: 12
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Language:Blade
Requires
- php: ^8.2
- illuminate/database: ^11.0|^12.0
- illuminate/support: ^11.0|^12.0
Requires (Dev)
- pestphp/pest: ^3.7
README
Модуль для централизованного управления доступами пользователей к различным сервисам и ресурсам. Обеспечивает гибкий механизм определения прав доступа через систему доступов, полей, групп и должностей.
Установка
Вы можете установить пакет через Composer:
composer require archee-nic/permission-registry
После установки опубликуйте миграции и запустите их:
php artisan vendor:publish --tag=permission-registry-migrations php artisan migrate
При желании вы можете опубликовать конфигурационный файл:
php artisan vendor:publish --tag=permission-registry-config
Вы также можете опубликовать представления для их настройки:
php artisan vendor:publish --tag=permission-registry-views
Использование
Проверка доступа
use ArcheeNic\PermissionRegistry\Facades\PermissionRegistry; // Проверка прав доступа if (PermissionRegistry::hasPermission($userId, 'service_name', 'permission_name')) { // Пользователь имеет доступ } // Валидация значения поля доступа if (PermissionRegistry::validateField($userId, 'service_name', 'permission_name', 'field_name', 'value')) { // Значение поля валидно }
Управление доступами
// Получение всех доступов пользователя $permissions = PermissionRegistry::getUserPermissions($userId); // Выдача доступа PermissionRegistry::grantPermission( $userId, 'service_name', 'permission_name', ['field_id' => 'value'], // значения полей ['reason' => 'Requested by admin'], // метаданные '2023-12-31 23:59:59' // срок действия ); // Отзыв доступа PermissionRegistry::revokePermission($userId, 'service_name', 'permission_name'); // Синхронизация доступов на основе должностей и групп пользователя PermissionRegistry::syncUserPermissions($userId);
Middleware
Пакет регистрирует middleware permission
, который можно использовать для защиты маршрутов:
Route::middleware(['permission:service_name,permission_name'])->group(function () { // Маршруты, защищенные проверкой прав });
Особенности
- Централизованное управление правами доступа
- Поддержка должностей с наследованием прав
- Группировка прав для удобного управления
- Поля доступа с валидацией значений
- События жизненного цикла для интеграции с другими системами
- Удобный пользовательский интерфейс на Livewire
Лицензия
Этот пакет распространяется под лицензией MIT.