shah-newaz/permissible-ng
Composer 安装命令:
composer require shah-newaz/permissible-ng
包简介
Role Permission system for Laravel 11+
README 文档
README
A flexible and powerful Laravel package for managing roles and permissions with hierarchical support.
Features
- Role-based access control (RBAC)
- Hierarchical roles with weight-based inheritance
- Permission management
- Route middleware for roles and permissions
- Caching support for optimal performance
- Soft delete support
Installation
composer require shah-newaz/permissible-ng
php artisan vendor:publish --provider="Shahnewaz\PermissibleNg\Providers\PermissibleServiceProvider"
Run the migrations:
php artisan migrate
Usage
Setup User Model
Add the Permissible trait to your User model:
use Shahnewaz\PermissibleNg\Traits\Permissible; class User extends Authenticatable { use Permissible; // ... rest of your User model }
Note: This can be done using the permissible:setup command automatically.
Managing Roles and Permissions
// Create a role $role = Role::create([ 'name' => 'Admin', 'code' => 'admin', 'weight' => 1 ]); // Create a permission $permission = Permission::createPermission('users.create'); // Assign permission to role $role->permissions()->attach($permission); // Assign role to user $user->roles()->attach($role);
Checking Permissions
// Check single permission $user->hasPermission('users.create'); // Check multiple permissions (requires all) $user->hasPermissions(['users.create', 'users.delete']); // Check permission type $user->hasPermissionType('users');
Route Protection
Use the elegant route middleware syntax:
// Protect routes with roles Route::get('/admin/dashboard', [DashboardController::class, 'index']) ->roles(['admin', 'super-admin']); // Protect routes with permissions Route::get('/users', [UserController::class, 'index']) ->permissions(['users.view']); // Combine both Route::get('/users/create', [UserController::class, 'create']) ->roles(['admin']) ->permissions(['users.create']);
Route Group Protection
Route::group(['middleware' => ['roles:su,admin']], function () { Route::get('/admin/dashboard', [DashboardController::class, 'index']); });
Permission Wildcards
Use wildcards for broader permission control:
// Grant all user permissions Permission::createPermission('users.*'); // Check if user has any user permission $user->hasPermissionType('users');
Configuration
The package configuration can be modified in config/permissible.php:
return [ 'enable_routes' => true, 'enable_user_management_routes' => true, 'first_last_name_migration' => true, 'default_fallback_route' => 'backend.dashboard', ];
License
The MIT License (MIT). Please see License File for more information.
shah-newaz/permissible-ng 适用场景与选型建议
shah-newaz/permissible-ng 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 179 次下载、GitHub Stars 达 0, 最近一次更新时间为 2020 年 10 月 11 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「admin」 「backend」 「acl」 「laravel」 「permission」 「role」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 shah-newaz/permissible-ng 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 shah-newaz/permissible-ng 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 shah-newaz/permissible-ng 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Laravel Multiauth package
2lenet/EasyAdminPlusBundle
This bundle offers a simple backend explanation form field (inputType).
Preview of settings in footer of tt_content element in page module.
Analysis module for finding problematical shop data.
This package provides a flexible way to add Role-based Permissions to Laravel 6.x
统计信息
- 总下载量: 179
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 7
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2020-10-11