1. Go to this page and download the library: Download vmorozov/yii2-entrust 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/ */
vmorozov / yii2-entrust example snippets
use vmorozov\entrust\traits\EntrustUserTrait;
class User extends ActiveRecord implements IdentityInterface
{
use EntrustUserTrait; // insert this line
....
}
// create role
$adminRole = new Role();
$adminRole->attributes = [
'name' => 'admin', // short name for use in code
'display_name' => 'Admin', // More beautiful name to display it to users if it is needed
'description' => 'Administrator (has all permissions)', // Description of role
];
$adminRole->save();
// create permission
$create_post_permission = new Permission();
$create_post_permission->attributes = [
'name' => 'create_post', // short name for use in code
'display_name' => 'Create Post', // More beautiful name to display it to users if it is needed
'description' => 'Permission to create new post', // Description of permission
];
$create_post_permission->save();
// add permission to role with permission name string
$adminRole->attachPermission('create_post');
// add permission to role with permission object
$adminRole->attachPermission($create_post_permission);
// remove permission from role with permission name string
$adminRole->detachPermission('create_post');
// remove permission from role with permission object
$adminRole->detachPermission($create_post_permission);
$user->assignRole($adminRole); // $adminRole must be a Role object
// add permission to user with permission name string
$user->attachPermission('create_post');
// add permission to user with permission object
$user->attachPermission($create_post_permission);
// remove permission from user with permission name string
$user->detachPermission('create_post');
// remove permission from user with permission object
$user->detachPermission($create_post_permission);
$user->hasPermission('create-post');
// returns true if user has permission with given name
$user->hasRole('admin');
// returns true if user has role with given name
// get permissions relation of user. You can manipulate with it as you want.
$user->permissions()
// get all permissions of user
$user->permissions()->all()
// configure getting permissions with sql query methods
$user->permissions()->where(['like', 'name', 'test%'])->all()