国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

laravel5.1 -- ACL(Access Control List) Policies篇

instein / 435人閱讀

摘要:在中,提供了管理授權(quán)邏輯以便控制對資源的訪問權(quán)限。例如,我們可以利用來確定當前的是否有修改一篇文章的權(quán)限。

Introduction

laravel中,Policies提供了管理授權(quán)邏輯以便控制對資源的訪問權(quán)限。例如,我們可以利用poslicies來確定當前的user是否有修改一篇文章的權(quán)限。

生成一個PostPolicy
$ php artisan make:policy PostPlicy

生成的App/Policies/PostPolicy.php如下


注冊PostPolicy

PostPolicy注冊到App/Providers/AuthServiceProvider中,注意要加上注釋的編號部分(I,II,III)

 "AppPoliciesModelPolicy",
        Post::class => PostPolicy::class,  // III
    ];

    /**
     * Register any application authentication / authorization services.
     *
     * @param  IlluminateContractsAuthAccessGate  $gate
     * @return void
     */
    public function boot(GateContract $gate)
    {
        parent::registerPolicies($gate);

        //
    }
}
定義change方法

App/Policies/PostPolicy.php中,定義change方法

user()->id === $post->user_id;
    }
}

注意:
1.因為laravel5.1的多用戶驗證用的是Kbwebs/MultiAuth的,所以,在所有的$user->后面都要加上user(),包括Auth::
2.官方文檔中是這樣寫的

public function update(User $user, Post $post)
    {
        return $user->id === $post->user_id;
    }

update方法中寫上了User和Post類,其實寫上反而提示錯誤,不寫是對的

3.如果想給adminstrator所有的權(quán)限,只需要在PostPolicy.php中添加before方法
如上面所示

控制器驗證Policies
user_gestion = $user_gestion;
        $this->blog_gestion = $blog_gestion;

        $this->middleware("admin", ["only" => "updateSeen"]);
        $this->middleware("ajax", ["only"=> ["updateSeen", "updateActive"]]);
    }
    
    /**
    * Update "active" for the specified resource in storage
    *
    * @param IlluminateHttpRequest $request
    * @param int $id
    * @return Response
    */
    public function updateActive(Request $request, $id){
        
        $post = $this->blog_gestion->getById($id);

        // authorize驗證當前用戶是否有修改此文章的權(quán)限,如果沒有,則返回403 Forbidden
        $this->authorize("change", $post);  

        $this->blog_gestion->updateActive($request->all(), $id);

        return response()->json();

    }

App/Repositories/BlogRepository.php中部分代碼

/**
    * Update "active" in a post
    * 
    * @param array $data
    * @param int $id
    * @return void
    */
    public function updateActive($data, $id){
        $post = $this->getById($id);

        $post->active = $data["active"] == "true";

        $post->save();
    }

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/22620.html

相關(guān)文章

  • Luthier CI 簡單的認證 SimpleAuth

    摘要:訪問控制列表的配置與訪問控制列表使用的類別和權(quán)限類別組的名稱和的關(guān)聯(lián)排列。 簡單的認證 SimpleAuth 內(nèi)容 Contents 介紹 Introduction 安裝 Installation 第1步:復制所需的文件 Step 1: Copy the required files 第2步:安裝數(shù)據(jù)庫 Step 2: Install the database 第3步:定義...

    Scorpion 評論0 收藏0
  • 如何使用 HTTP 響應頭字段來提高 Web 安全性?

    摘要:在服務器做出響應時,為了提高安全性,在響應頭中可以使用的各種響應頭字段。用于防止等跨站腳本攻擊。用于防止跨站腳本攻擊或數(shù)據(jù)注入攻擊但是,如果設定不當,則網(wǎng)站中的部分腳本代碼有可能失效。用于指定所有子域名同樣使用該策略。 在 Web 服務器做出響應時,為了提高安全性,在 HTTP 響應頭中可以使用的各種響應頭字段。 X-Frame-Options 該響應頭中用于控制是否在瀏覽器中顯示 f...

    xiyang 評論0 收藏0
  • PHP框架Phalcon 之 ACL

    摘要:一般至少要在執(zhí)行路由前要判斷用戶是否具有權(quán)限一般在中,所以應該在它之前獲得填充。以下代碼可參考這里的方法就是重點。參考這里把對象保存在中。 showImg(https://segmentfault.com/img/bVkdih); 使用如下圖解釋這個組件: showImg(https://segmentfault.com/img/bVkdii); 實際最終真正要使用的是access_l...

    mikyou 評論0 收藏0
  • 關(guān)于WEB前后端分離的要點總結(jié)(上)

    摘要:前言對于前后端分離大家可能在網(wǎng)上可以找到很多的文章。但是,我們今天分享的文章的英文我們的老師對于前后端的分離問題的多年工作經(jīng)驗的總結(jié)。今天,我們把這些經(jīng)驗總結(jié)知識點分享給大家,希望可以幫助到大家。添加開啟黑白名單,任選其一。 前言 對于前后端分離大家可能在網(wǎng)上可以找到很多的文章。但是,我們今天分享的文章的英文我們的老師對于前后端的分離問題的多年工作經(jīng)驗的總結(jié)。今天,我們把這些經(jīng)驗總結(jié)知...

    FullStackDeveloper 評論0 收藏0

發(fā)表評論

0條評論

instein

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<