PHP code example of mathsgod / light-rbac
1. Go to this page and download the library: Download mathsgod/light-rbac 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/ */
mathsgod / light-rbac example snippets
$rbac = new \Light\Rbac\Rbac();
$role = $rbac->addRole('admin');
$role->addPermission('post:read');
$role->addPermission('post:write');
$user = $rbac->addUser('John Doe', ['admin']);
if ($user->can('post:read')) {
echo 'John Doe can read posts.';
}
$role = $rbac->addRole('admin');
$role->addPermission('post:read');
$role->addPermission('post:write');
$role->addPermission('*');
$role->can('post:read'); // true
$role->can('anything'); // true
$role->addPermission('post:*');
$role->can('post:read'); // true
$role->can('post:delete'); // true
$role->can('user:read'); // false
$rbac->addRole('admin');
$rbac->addRole('editor');
$rbac->getRole('admin'); // returns Role object
$rbac->getRoles(); // returns all Role objects
$rbac->hasRole('admin'); // true
$rbac->removeRole('admin');
$admin = $rbac->addRole('admin');
$admin->addChild('editor');
$rbac->getRole('editor')->addPermission('post:read');
$admin->can('post:read'); // true — inherited from child
$admin->addChild('editor');
$rbac->getRole('editor')->addChild('viewer');
$rbac->getRole('viewer')->addPermission('post:read');
$admin->can('post:read'); // true
$admin->addChild('editor');
$rbac->getRole('editor')->addChild('admin'); // throws Exception
$user = $rbac->addUser('John Doe', ['admin', 'editor']);
$rbac->getUser('John Doe'); // returns User object
$rbac->getUsers(); // returns all User objects
$rbac->hasUser('John Doe'); // true
$rbac->removeUser('John Doe');
$user->can('post:read'); // checks via assigned roles
$user->addPermission('report:view');
$user->can('report:view'); // true
$user->hasRole('admin'); // true if directly assigned
$user->is('admin'); // true if directly assigned OR inherited via hierarchy
$admin = $rbac->addRole('admin');
$admin->addChild('editor');
$user = $rbac->addUser('John Doe', ['admin']);
$user->is('editor'); // true — inherited via hierarchy
$user->addRole('admin')->addRole('editor');
$user->removeRole('editor');
$rbac->setPermissionSeparator('/');
$role->addPermission('post/*');
$role->can('post/read'); // true