您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> 其他语言 >> Laravel52 对后台用户ACL权限管理没有效果

Laravel52 对后台用户ACL权限管理没有效果

来源:网络整理     时间:2016/5/28 15:45:46     关键词:laravel,权限管理

关于网友提出的“Laravel52 对后台用户ACL权限管理没有效果”问题疑问,本网通过在网上对“Laravel52 对后台用户ACL权限管理没有效果”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题:Laravel52 对后台用户ACL权限管理没有效果
描述:

Laravel5.1 ACLjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播

按照上面的jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播,用户表使用默认的user表的话,一切都是很顺利的,可是我最终的目的是后台的admin表进行权限管理,于是把jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播里的user都换成了admin,这时候出了问题,在blade中@can('edit-post')@can('delete-post')全部没通过

于是我换到了控制器

        $admin = Auth::guard('admin')->user();
        if($admin->can('edit-post')){
            echo 1;
        }

通过,成功输出1,yeah!

于是我就想到了会不会是模版中的can是取的user表?于是我又把auth.php中的默认guard改成admin

    'defaults' => [
        'guard' => 'admin',
        'passwords' => 'users',
    ],

成功!yeah!
好了,问题来了,我不改auth.phpguard的默认值,怎样可以在模版中让can判断的是admin表的用户?


解决方案1:

模板里可以这样写,只不过很长,我把if里边的存到一个公用函数中了

@if(Gate::forUser(Auth::guard('admin')->user())->allows('$priv'))

@endif 

解决方案2:

看了下源码,似乎并不支持!!!

    /**
     * Compile the can statements into valid PHP.
     *
     * @param  string  $expression
     * @return string
     */
    protected function compileCan($expression)
    {
        return "";
    }
    /**
     * Determine if the given ability should be granted for the current user.
     *
     * @param  string  $ability
     * @param  array|mixed  $arguments
     * @return bool
     */
    public function check($ability, $arguments = [])
    {
        try {
            $result = $this->raw($ability, $arguments);
        } catch (AuthorizationException $e) {
            return false;
        }

        return (bool) $result;
    }
    

以上介绍了“Laravel52 对后台用户ACL权限管理没有效果”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1366050.html

相关图片

相关文章