PHP code example of mimaxuz / role-manager

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']);
});
bash
php artisan migrate
bash
php artisan vendor:publish --tag=role-manager-config