am2studio / laravel-acl
acl
1.0.0
2016-01-26 13:00 UTC
Requires
- php: >=5.4.0
This package is not auto-updated.
Last update: 2024-09-14 18:58:35 UTC
README
安装
通过 Composer
$ composer require am2studio/laravel-acl
服务提供者
在 config/app.php
在 'providers'
下添加
AM2Studio\LaravelAcl\LaravelAclServiceProvider::class
配置和迁移
php artisan vendor:publish --provider="AM2Studio\LaravelACL\LaravelACLServiceProvider" --tag=config php artisan vendor:publish --provider="AM2Studio\LaravelACL\LaravelACLServiceProvider" --tag=migrations
特质
在用户模型中添加以下内容
... use AM2Studio\LaravelAcl\Traits\LaravelACLTrait; class User extends Model { use LaravelACLTrait, ... ; }
使用方法
创建角色
use AM2Studio\LaravelACL\Models\Role; $userRole = Role::create([ 'name' => 'User', 'slug' => 'user', 'description => '', ]);
附加和解除角色
$user = User::find(1); $user->attachRole($userRole); $user->detachRole($userRole); $user->detachAllRoles();
检查角色
$user->is('user'); // Checkes if user has user role $user->is('admin|user'); // Checks if user has user OR admin role $user->is('admin|user', true); // Checks if user has user AND admin role
创建权限
use AM2Studio\LaravelACL\Models\Permssion; $p = Role::create([ 'name' => 'Event edit', 'slug' => 'event.edit', 'description => '', ]);
附加和解除权限
$user = User::find(1); $user->attachPermission($p); $user->detachPermission($p); $user->detachAllPermissions(); $role = Role::find(1); $role->attachPermission($p); $role->detachPermission($p); $role->detachAllPermissions();
检查角色
$user->can('event.edit'); // Checkes if user has permission $user->can('event.edit|event.create'); // Checks if user has event.edit OR event.create permission $user->can('event.edit|event.create', true); // Checks if user has event.edit AND event.create permission
模型权限
$p2 = Role::create([ 'name' => 'Event edit', 'slug' => 'event.edit', 'description => '', 'model' => 'event', ]); $p3 = Role::create([ 'name' => 'Event edit', 'slug' => 'event.edit', 'description => '', 'model' => 'event', 'resource_id' => 1, ]); $event = Event::find(1); $user->attachPermisson($p2); $user->attachPermisson($p3); $user->allowed('event.edit', $event); // Checks if user has rights to Event model $user->allowed('event.edit', $event, $event->id); // Checks if user has rights to Event model with selected id
Blade 扩展
@role('admin') @endrole @permission('edit.event') @endpermission @allowed('edit.event', $event) @endallowed @role('admin|user', 'all') @endrole
变更日志
请参阅 CHANGELOG 了解最近更改的详细信息。
贡献
请参阅 CONTRIBUTING 和 CONDUCT 了解详情。
鸣谢
许可
MIT 许可证 (MIT)。请参阅 许可文件 了解更多信息。