laravel Bouncer 講解

1.開發(fā)必讀

  bouncer 目錄下:\vendor\silber\bouncer\src 的bouncer為主文件
  bouncer 數(shù)據(jù)庫模型:\vendor\silber\bouncer\src\Database 里面已經(jīng)把四個表的模型整理完畢

2.基本配置

  自己的數(shù)據(jù)庫模型User需配置
  use Silber\Bouncer\Database\HasRolesAndAbilities 門面
  并在class下面 寫入 use HasRolesAndAbilities;

例如:

<?php

namespace App;

use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Passwords\CanResetPassword;
use Silber\Bouncer\Database\HasRolesAndAbilities;
use Illuminate\Foundation\Auth\Access\Authorizable;
use Illuminate\Contracts\Auth\Authenticatable as         AuthenticatableContract;
use Illuminate\Contracts\Auth\Access\Authorizable as     AuthorizableContract;
use Illuminate\Contracts\Auth\CanResetPassword as     CanResetPasswordContract;

class User extends Model implements AuthenticatableContract,
                                AuthorizableContract,
                                CanResetPasswordContract
{
use Authenticatable, Authorizable, CanResetPassword,HasRolesAndAbilities;

/**
 * The database table used by the model.
 *
 * @var string
 */
protected $table = 'users';

/**
 * The attributes that are mass assignable.
 *
 * @var array
 */
protected $fillable = ['name', 'email', 'password'];

/**
 * The attributes excluded from the model's JSON form.
 *
 * @var array
 */
protected $hidden = ['password', 'remember_token'];

public static function userinfo()
{
   return self::find(1);
}
}

3.控制器分配權限

  1.分配角色

   例如分配用戶id=1為editor的角色

   $users = User::find(1);

   $info = $users->assign('editor');

   var_dump($info);


  2.分配能力(允許User id為1的用戶修改$post(文章id=1的模型));

    $users = User::find(1);

    $post = artical::find(1);

    $info = Bouncer::allow($users)->to('edit', $post);

    var_dump($info);

  3.檢查權限

    $users = User::find(1);

    $post = artical::find(1);

    $info = $users->can('edit', $post);
    
    $info為bool值

另一種分配權限

  1.分配角色(分配user id為2的用戶為admin)

    $users = User::find(2);

    $info = $users->assign('admin');

    var_dump($info);

  2.為角色分配權限(設置角色admin擁有edit的權限)

    $post = artical::find(2);

    $info = Bouncer::allow('admin')->to('delete', $post);

    var_dump($info);

  3.檢查權限(通過判斷user id為2的用戶(角色為admin)是否擁有此權限)

    $users = User::find(2);

    $post = artical::find(1);

    $info = $users->can('delete', $post);

    $info為bool值,true為擁有,flase為禁止!
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,628評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,156評論 25 708
  • 最初對耐克的籃球鞋了解是我初二那年,十四歲的我僅僅知道我崇拜的球星的專注球鞋標志是一個劍鞘,它讓我如此癡迷。可是由...
    Kanip閱讀 774評論 8 7
  • 天地萬物皆有靈 緣即生分 愛即生恨 所陷者無不被情鎖束縛 至人兩茫茫 也無悔. 一束強光照進破舊的...
    杭一弋閱讀 407評論 0 0
  • 你不曾看到 我背影中的孤寂 我亦記不起 你轉(zhuǎn)身后的嘆息 藏身于心中的那面鏡子 照映出的 從來都只是自己 你的那片天...
    單純是一種美閱讀 157評論 0 2

友情鏈接更多精彩內(nèi)容