1. Go to this page and download the library: Download larapacks/authorization library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
larapacks / authorization example snippets
namespace App\Models;
use Larapacks\Authorization\Traits\Authorizable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Authorizable;
// ...
}
use Larapacks\Authorization\Authorization;
/**
* Register any application services.
*
* @return void
*/
public function register()
{
Authorization::ignoreMigrations();
}
use App\Models\User;
use App\Models\Role;
use App\Models\Permission;
use Larapacks\Authorization\Authorization;
/**
* Register any authentication / authorization services.
*
* @return void
*/
public function boot()
{
$this->registerPolicies();
Authorization::useUserModel(User::class);
Authorization::useRoleModel(Role::class);
Authorization::usePermissionModel(Permission::class);
}
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Larapacks\Authorization\Traits\ManagesPermissions;
class Role extends Model
{
use ManagesPermissions;
}
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Larapacks\Authorization\Traits\HasUsers;
use Larapacks\Authorization\Traits\HasRoles;
use Larapacks\Authorization\Traits\ClearsCachedPermissions;
class Permission extends Model
{
use HasUsers, HasRoles, ClearsCachedPermissions;
}
if ($user->can('users.create')) {
// This user can create other users.
}
public function create()
{
$this->authorize('users.create');
User::create(['...']);
}
if (Gate::allows('users.create')) {
//
}
// Using the permissions name.
if ($user->hasPermission('users.create')) {
//
}
// Using the permissions model.
if ($user->hasPermission($createUsers)) {
//
}
if (auth()->user()->hasPermissions(['users.create', 'users.edit'])) {
// This user has both creation and edit rights.
} else {
// It looks like the user doesn't have one of the specified permissions.
}
if (auth()->user()->hasAnyPermissions(['users.create', 'users.edit', 'users.destroy'])) {
// This user either has create, edit or destroy permissions.
} else {
// It looks like the user doesn't have any of the specified permissions.
}
if (auth()->user()->hasRole('administrator')) {
// This user is an administrator.
} else {
// It looks like the user isn't an administrator.
}
if (auth()->user()->hasRoles(['administrator', 'member'])) {
// This user is an administrator and a member.
} else {
// It looks like the user isn't an administrator or member.
}
if (auth()->user()->hasAnyRoles(['administrator', 'member', 'guest'])) {
// This user is either an administrator, member or guest.
} else {
// It looks like the user doesn't have any of these roles.
}
use Larapacks\Authorization\Authorization;
/**
* Register any authentication / authorization services.
*
* @return void
*/
public function boot()
{
$this->registerPolicies();
Authorization::disablePermissionCache();
}
use Larapacks\Authorization\Authorization;
/**
* Register any authentication / authorization services.
*
* @return void
*/
public function boot()
{
$this->registerPolicies();
Authorization::cacheKey('my-key');
}
use Larapacks\Authorization\Authorization;
/**
* Register any authentication / authorization services.
*
* @return void
*/
public function boot()
{
$this->registerPolicies();
Authorization::cacheExpiresIn(now()->addWeek());
}
use Larapacks\Authorization\Authorization;
/**
* Register any authentication / authorization services.
*
* @return void
*/
public function boot()
{
$this->registerPolicies();
Authorization::disableGateRegistration();
}
/**
* The application's route middleware.
*
* These middleware may be assigned to groups or used individually.
*
* @var array
*/
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
// The role middleware:
'role' => \Larapacks\Authorization\Middleware\RoleMiddleware::class,
// The permission middleware:
'permission' => \Larapacks\Authorization\Middleware\PermissionMiddleware::class,
];
Route::get('users', [
'uses' => 'UsersController@index',
'middleware' => 'permission:users.index',
]);
// Multiple permissions:
Route::get('users', [
'uses' => 'UsersController@index',
// Users must have index **and** create rights to access this route.
'middleware' => 'permission:users.index,users.create',
]);
Route::get('users', [
'uses' => 'UsersController@index',
'middleware' => 'role:administrator',
]);
// Multiple roles:
Route::get('users', [
'uses' => 'UsersController@index',
// Users must be an administrator **and** a member to access this route.
'middleware' => 'role:administrator,member',
]);
use Larapacks\Authorization\PermissionRegistrar;
protected function setUp() : void
{
parent::setUp();
app(PermissionResistrar::class)->register();
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.