php – Laravel 5.1 ACL

前端之家收集整理的这篇文章主要介绍了php – Laravel 5.1 ACL前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经阅读了 Laravel 5.1中的新政策功能.

从文档中可以看出默认情况下选择了黑名单方法.例如.在使用策略检查和拒绝访问之前,可以执行控制器操作.

是否有可能将其转变为白名单方法?因此,除非明确授予,否则拒绝每个控制器操作.

解决方法

我刚刚发现了一种相当干净的方式,在你的路线中,你传递了一个中间件和需要检查的策略.

示例代码

<?PHP

namespace App\Http\Middleware;

use Closure;

class PolicyMiddleware
{
    /**
     * Run the request filter.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @param  string  $policy The policy that will be checked
     * @return mixed
     */
    public function handle($request,Closure $next,$policy)
    {
        if (! $request->user()->can($policy)) {
            // Redirect...
        }

        return $next($request);
    }

}

和相应的路线:

Route::put('post/{id}',['middleware' => 'policy:policytobechecked',function ($id) {
    //
}]);

猜你在找的Laravel相关文章