1. Go to this page and download the library: Download mimaxuz/role-manager 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/ */
mimaxuz / role-manager example snippets
namespace App\Models;
use Illuminate\Foundation\Auth\User as Authenticatable;
use MIMAXUZ\LRoles\Traits\HasPermissions;
class User extends Authenticatable
{
use HasPermissions;
// ...
}
// config/role-manager.php
return [
// User model class
'user_model' => App\Models\User::class,
// Field to lookup users in CLI commands
'user_lookup_field' => 'email',
// Default roles to seed
'default_roles' => [
[
'name' => 'Administrator',
'slug' => 'admin',
'permissions' => ['*'], // All permissions
],
[
'name' => 'User',
'slug' => 'user',
'permissions' => [],
],
],
// Default permissions to seed
'default_permissions' => [
['name' => 'View Users', 'slug' => 'view-users'],
['name' => 'Create Users', 'slug' => 'create-users'],
['name' => 'Edit Users', 'slug' => 'edit-users'],
['name' => 'Delete Users', 'slug' => 'delete-users'],
],
// Roles that have all permissions automatically
'super_admin_roles' => ['admin'],
];
use MIMAXUZ\LRoles\Models\XRoles;
use MIMAXUZ\LRoles\Models\XPermissions;
// Create a role
$role = XRoles::create([
'name' => 'Editor',
'slug' => 'editor'
]);
// Create a permission
$permission = XPermissions::create([
'name' => 'Edit Posts',
'slug' => 'edit-posts'
]);
// Attach permission to role
$role->permissions()->attach($permission->id);
// Or attach multiple permissions
$role->permissions()->attach([1, 2, 3]);
// Sync permissions (replace existing)
$role->permissions()->sync([1, 2, 3]);
// Assign a role
$user->roles()->attach($roleId);
// Assign multiple roles
$user->roles()->attach([1, 2]);
// Remove a role
$user->roles()->detach($roleId);
// Sync roles (replace existing)
$user->roles()->sync([1, 2]);
// Check if user has a role
if ($user->hasRole('admin')) {
// User is admin
}
// Check multiple roles (OR logic)
if ($user->hasRole('admin', 'editor')) {
// User is admin OR editor
}
// Check if user has permission
if ($user->hasPermissionTo($permission)) {
// User has the permission
}
// Using Laravel's can() method
if ($user->can('edit-posts')) {
// User can edit posts
}
// Single role
Route::group(['middleware' => 'role:admin'], function () {
Route::get('/admin/dashboard', [AdminController::class, 'dashboard']);
});
// Role with permission check
Route::group(['middleware' => 'role:admin,delete-users'], function () {
Route::delete('/users/{id}', [UserController::class, 'destroy']);
});