PHP code example of mingzaily / lumen-permission

1. Go to this page and download the library: Download mingzaily/lumen-permission 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/ */

    

mingzaily / lumen-permission example snippets


$app->routeMiddleware([
    'auth'       => App\Http\Middleware\Authenticate::class,
    'permission' => Mingzaily\Permission\Middlewares\PermissionMiddleware::class,
    'permission_route' => Mingzaily\Permission\Middlewares\PermissionRouteMiddleware::class,
    'role'       => Mingzaily\Permission\Middlewares\RoleMiddleware::class,
]);

// register permission config file
$app->configure('permission');
// register frame's cacheManager
$app->alias('cache', \Illuminate\Cache\CacheManager::class);  // if you don't have this already
// register lumen-permission ServiceProvider
$app->register(Mingzaily\Permission\PermissionServiceProvider::class);
// register AuthServiceProvider
$app->register(App\Providers\AuthServiceProvider::class);

$user = Auth::user();
// assign role, also can be written as role id
$user->assignRole('test');
// if deploy multiple roles
$user->assignRole('test1','test2');
// remove role
$user->removeRole('test');
// sync role => Remove all current roles and set the given ones.
$user->syncRole('test2');

$role = $user->getFirstRole();

$role = $user->roles;
// or
$role = $user->getAllRoles();

$user->hasRole('test');
$user->hasAnyRole('test','test2');// Return true as long as one exists
$user->hasAllRoles('test','test2');// All roles exist before returning true

$role->givePermissionTo('view.user');
// or be written as permission id
$role->givePermissionTo(1);
// revoke
$role->revokePermissionTo('view.user');
// sync => remove all current permissions and set the given ones.
$role->syncPermissionTo(1,2,3)

$role->getAllPermissions();
// also support tree
$role->getTreePermissions();

$role->hasPermissionTo('view.user'); // $role->checkPermissionTo('view.user')
$role->hasAnyPermission('view.user','edit.user');
$role->hasAllPermissions('view.user','edit.user')

$user->load('roles.permissions');



namespace App\Providers;

use Illuminate\Support\Facades\Gate;
use Illuminate\Support\ServiceProvider;

class AuthServiceProvider extends ServiceProvider
{
    ......

    public function register()
    {
        // super-admin no need to verify permissions
        Gate::before(function ($user, string $ability) {
            return $user->hasRole('super-admin') ? true : null;
        });
    }

    ......
}
shell script
cp vendor/mingzaily/lumen-permission/config/permission.php config/permission.php
cp vendor/mingzaily/lumen-permission/database/migrations/create_permission_tables.php.stub database/migrations/2020_0 1_01_000000_create_permission_tables.php
shell script
cp vendor/laravel/lumen-framework/config/auth.php config/auth.php
bash
php artisan migrate

Route::group(['middleware' => 'permission_route'], function () {
    //
});

Route::group(['middleware' => ['permission:view.user']], function () {
    //
});

Route::group(['middleware' => ['role:test']], function () {
    //
});