njbm/role-permission
最新稳定版本:v1.0
Composer 安装命令:
composer require njbm/role-permission
包简介
A simple, robust role-permission package for Laravel (one role per user).
README 文档
README
A simple, robust, and easy-to-manage Laravel role-permission system (one role per user) — no external dependencies like Spatie.
Built and maintained by Jaber Masud
📦 Installation
Option 1: Install from GitHub (Packagist style)
composer require njbm/role-permission
Update
composer update njbm/role-permission
Specific Virsion
composer require njbm/role-permission:^1.0.1
Remove package
composer remove njbm/role-permission
⚙️ Configuration
Step 1: Add service provider and alias (optional for Laravel < 5.5)
// config/app.php 'providers' => [ RolePermission\RolePermissionServiceProvider::class, ], 'aliases' => [ 'AccessControl' => RolePermission\Facades\AccessControl::class, ],
Step 2: Publish the config file
php artisan vendor:publish --provider="RolePermission\RolePermissionServiceProvider" --tag=config
🛠 Database Setup
Step 1: Migrate Tables
php artisan migrate
Step 2: Seed Default Roles and Permissions
php artisan db:seed --class="RolePermission\Seeders\RolePermissionSeeder"
🔐 Seeder uses config('role-permission.default_roles') to assign permissions to each role.
🧠 Model Setup
Add trait to your Admin or User model (must have role_id column):
use RolePermission\Traits\HasPermissions; class Admin extends Authenticatable { use HasPermissions; }
✅ Usage
Use the AccessControl facade anywhere to check permissions or roles:
use AccessControl; if (AccessControl::can('edit address')) { // Authorized } if (AccessControl::role('admin')) { // Admin only }
🛡 Middleware setup
Add middleware to app/Http/Kernel.php:
'check.permission' => \RolePermission\Middleware\CheckPermission::class,
Use middleware on routes:
'check.permission' => \RolePermission\Middleware\CheckPermission::class,
🧩 Blade directive (optional)
Register in AppServiceProvider:
Blade::if('canDo', function ($permission) { return \AccessControl::can($permission); });
Use in Blade templates:
@canDo('delete address') <button>Delete</button> @endcanDo
⚙ Example config/role-permission.php
return [ 'default_roles' => [ 'admin' => [ 'edit address', 'delete address', 'view dashboard', ], 'editor' => [ 'edit address', ], ], ];
📜 Summary
Install package via composer
Publish config and migrate database tables
Seed default roles and permissions
Add trait to your User/Admin model
Use AccessControl facade for permission checks
Protect routes with middleware
Use optional Blade directive for cleaner views
📄 License
MIT License — created by Jaber Masud
jaber.netlify.app
统计信息
- 总下载量: 1
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-07-24