php – 在Laravel 5中使用Entrust为用户分配权限,而不是角色
我正在使用Laravel 5开发应用程序,我想使用Zizaco / Entrust为用户分配角色和权限.为了更好地理解,让我举个例子:
我的数据库中有4个角色:guest,user,admin,owner.所有者在管理面板和主站点上具有完全访问权限,管理员在管理面板上具有有限的访问权限,在主站点上具有完整访问权限,用户应该在主站点上具有自定义访问权限,并且访客应该根本没有访问权限(卡住在主页上,直到他们被赋予用户角色). 我面临的问题是对用户的自定义访问.有4个主页面,用户应该要求对其中一个或多个页面的权限.在主页面中,他们可以上传文件,也可以做其他一些事情. 我想做的就是给他们所有用户的角色,但是例如,用户A只能查看第1页,无法上传文件或任何其他内容,用户B有权查看页面和页面4,仅将文件上传到第3页,并将其他内容添加到第4页,除了上传文件. 这可以仅使用Entrust完成,还是应该在用户和权限之间创建一个新的数据透视表,并使用它来完成我需要的工作? 非常感谢你提前, 德拉戈什 编辑: 总而言之,我想要完成的是当具有对Page 1和Page 2的只读权限的用户登录时,我希望会话中包含以下数据: ['id'->1,'name'->'user's name','email'->'users's email','role'->'user','permissions'->['view-page-1','view-page-2']] 所以他只能查看第1页和第2页,但不能上传文件或其他任何内容. 当具有查看和上传文件权限的用户登录时,我希望: ['id'->2,'upload-to-page-1']] 所以他只能查看第1页并将文件上传到第1页. 解决方法
回答这个问题可能有点迟,但这只适用于到达此页面的其他任何人.
说实话,你对权限表没用是完全正确的.如果有人正在从头开始构建网站,他将根据自己的需要定制系统.我真的很喜欢委托,委托没有这个功能的原因是因为直接向用户分配权限是一个糟糕的设计架构.权限表存在的唯一原因仅仅是因为应用程序很小.您拥有单个资源且所有角色实际使用相同资源的情况.在这些情况下,您只需检查权限,而不是检查每个用户.但是在实际的中型/大型应用程序中,每个角色都有单独的控制器. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |