PHP code example of jackchow / rbac

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

    

jackchow / rbac example snippets



namespace app\admin\model;

use Jackchow\Rbac\RbacRole;

class Roles extends RbacRole
{

}



namespace app\admin\model;

use Jackchow\Rbac\RbacPermission;

class Permissions extends RbacPermission
{
}



namespace app\admin\model;

use think\Model;
use Jackchow\Rbac\Traits\RbacUser;

class Admins extends Model
{
    use RbacUser;

    protected $hidden=['password','created_at','updated_at'];

}

$owner = new Roles();
$owner->name         = 'owner';
$owner->description  = '网站所有者'; // 可选
$owner->created_at   = date('Y-m-d H:i:s');
$owner->updated_at   = date('Y-m-d H:i:s');
$owner->save();

$administrator = new Roles();
$administrator->name        = 'administrator';
$administrator->description = '管理员'; // 可选
$administrator->created_at  = date('Y-m-d H:i:s');
$administrator->updated_at  = date('Y-m-d H:i:s');
$administrator->save();

$hurray = Admins::where('name', 'hurray')->find();

// 为用户分配角色

$hurray->attachRole($administrator->id);

//等效于 $admin->roles()->attach($administrator->id);

$administrator = Roles::where('name', 'administrator')->find();

$owner = Roles::where('name', 'owner')->find();

$createPost = new Permissions();
$createPost->name         = 'post/create';
// 允许administrator...
$createPost->description  = '创建一篇文章'; // 可选
$createPost->created_at   = date('Y-m-d H:i:s');
$createPost->updated_at   = date('Y-m-d H:i:s');
$createPost->save();

$editPost = new Permissions();
$editPost->name         = 'post/edit';
// 允许owner...
$editPost->description  = '编辑一篇文章'; // optional
$editPost->created_at   = date('Y-m-d H:i:s');
$editPost->updated_at   = date('Y-m-d H:i:s');
$editPost->save();

$administrator->attachPermission($createPost->id);
//等效于  $admin->perms()->sync(array($createPost->id));

$owner->attachPermissions(array($createPost->id, $editPost->id));
//等效于  $owner->perms()->sync(array($createPost->id, $editPost->id));

$hurray = Admins::where('name', 'hurray')->find();
$hurray->can('post/edit');   // false
$hurray->can('post/create'); // true
bash
php think rbac:migrate
bash
php think migrate:run
php think seed:run
bash
composer dump-autoload