所有的授权策略都是基于策略基类,在基类中,before方法中的规则是全局的,也就是说,before中的授权通过了,所有的基于策略基类的授权就全部通过了,所以视图模板中的删除按钮会显示出来;如果before中授权未通过,那么再继续其他的策略,也就是TopicPolicy等等。简单点说就是,先总的判断授权,总的通过则所有通过,总的不通过再判断分的。
接下来我们按照以下流程进行测试:
登录 ID 为 1,用户 Summer,并访问非 Summer 发布的话题,检测是否能看到删除按钮;
登录 ID 为 2 的用户,访问其他人发布的话题,检测是否能看到删除按钮;
登录除了 ID 为 1 和 2 的用户,访问其他人发布的话题,检测是否能看到删除按钮。
我们只对 ID 为 1 和 2 的用户做了角色授权,所以其他用户应该没有管理内容的权限:
其它用户是看不到删除按钮的 ,判断如果没有权限不显示删除按钮的代码 没找到
所有的授权策略都是基于策略基类,在基类中,before方法中的规则是全局的,也就是说,before中的授权通过了,所有的基于策略基类的授权就全部通过了,所以视图模板中的删除按钮会显示出来;如果before中授权未通过,那么再继续其他的策略,也就是TopicPolicy等等。简单点说就是,先总的判断授权,总的通过则所有通过,总的不通过再判断分的。
推荐文章: