crebs86 / acl-laravel
一个简单且完整的具有ACL功能的Laravel控制面板 >= 5.5
0.9
2018-07-07 11:06 UTC
Requires
- php: >=7.0.0
- illuminate/cache: ~5.5
- illuminate/console: ~5.5
- illuminate/support: ~5.5
This package is auto-updated.
Last update: 2024-09-14 22:56:30 UTC
README
在全新的Laravel ">=5.5.*" 安装上。
composer require crebs86/acl-laravel:0.9
现在运行以下代码
步骤 1) 发布视图和迁移
php artisan vendor:publish --tag=first --force
步骤 2) 迁移数据库并播种
composer dumpautoload
php artisan migrate
php artisan db:seed
步骤 3) 发布类
php artisan vendor:publish --tag=second --force
现在在 app/Http/Kernel.php 上注册中间件
protected $routeMiddleware = [
//... laravel codes
'access' => \Crebs86\Acl\Middleware\Access::class,
'active' => \Crebs86\Acl\Middleware\Activated::class,
];
为了保护你的控制器,在
你可以在控制器构造函数中调用中间件方法。
class MyExemploController extends Controller{
public function __construct()
{
$this->middleware('auth'); //if auth is necessary
$this->middleware('access'); //if email verification is necessary
$this->middleware('active'); //if active account is necessary
}
}
保护方法
方法 Acl::can(array|string, boolean);
第一个参数:数组或字符串,无默认值;设置所需权限。
第二个参数:布尔值;默认true。如果需要保护的方法需要超级管理员用户。
use Crebs86\Acl\Facades\Acl;
class MyExempleController extends Controller{
public function myMethod()
{
Acl::can('permission_name', false);
//continue...
}
public function methodRequireSuperAdminUser()
{
Acl::can('permission_name', true); //for require only super-admin users can access the method define second parameter like true
//continue...
}
public function multiPermission()
{
Acl::can(['permission_name', 'other_permission'], false); //for multi permissions set permissions like a array
//continue...
}
}
同样,你可以使用辅助函数
class MyExempleController extends Controller{
public function myMethod()
{
have('permission_name', false);
//continue...
}
public function methodRequireSuperAdminUser()
{
if(can('permission_name', true)):
//continue...
else:
abort(403,'Access Denied');
endif
}
public function multiPermission()
{
have(['permission_name', 'other_permission'], false);
//continue...
}
}
在Blade文件中
@if(can(['permission_name', 'other_permission'], false))
<p>You can view this</p>
@else:
<p>You don't have permission</p>
@endif
安装后
https:///login
电子邮件:super-admin@your.app
密码:crebsacl
你应该更改电子邮件地址和密码。
谢谢!
谢谢!