On a fresh laravel ">=5.5.*" installation.
composer require crebs86/acl-laravel:0.9
Step 1) Publish views and migrations
php artisan vendor:publish --tag=first --force
Step 2) Migrate databases and seed
composer dumpautoload
php artisan migrate
php artisan db:seed
Step 3) Publish Classes
php artisan vendor:publish --tag=second --force
protected $routeMiddleware = [
//... laravel codes
'access' => \Crebs86\Acl\Middleware\Access::class,
'active' => \Crebs86\Acl\Middleware\Activated::class,
];
You may call the middleware method from the controller's constructor.
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
}
}
Method Acl::can(array|string, boolean);
First parameter: array or string, noo default value; set permissions needed.
Second parameter: boolean; default true. If the method protected require a super administrator user.
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...
}
}
@if(can(['permission_name', 'other_permission'], false))
<p>You can view this</p>
@else:
<p>You don't have permission</p>
@endif
http://localhost/login
E-mail: super-admin@your.app
Password: crebsacl
You should change the email address and pass.
Tanks!
Tanks!