如何为不同的用户角色设置权限/视图/路由?

时间:2019-12-11 05:13:59

标签: php laravel middleware user-permissions user-roles

我正在建立一个电子商务平台。我必须在其中做出几个用户角色并为其授予特定权限。我已经成功创建了管理员和默认用户角色和权限。

但是,根据其他用户角色(例如编辑器/经理/ CS团队)显示视图和菜单项时,我遇到了很多麻烦。

我试图为每个工具使用不同的中间件。但是它没有有效地工作,甚至根本没有工作。

对于管理员角色,我创建了一个管理员中间件,用于检查用户角色类型并给予访问权限。我在Route gruop上定义了管理中间件。

你能建议我吗? -如何为不同的用户角色有效地设置权限/视图/菜单项?

预先感谢。

  

注意:我正在尝试不使用任何包装的方法。

admin middleware, ignore the read underline

web.php route group for admin

2 个答案:

答案 0 :(得分:3)

是的,您可以通过在数据库中设置角色,权限表来创建自己的自定义构建库,并在用户登录后将所有这些信息放入会话或缓存中。但是这样做可能会给您带来麻烦,因为将来无法测试所有功能,您必须确定自己到底要做什么才能自己管理它,否则您可以使用已经测试过的许多时间库,例如

laravel-permission 使用一个众所周知且受信任的库可以确保它能够解决您的问题,但是请花一些时间阅读它的文档并分析它是否包含您在应用程序中想要的所有功能。

答案 1 :(得分:3)

您需要定义策略。 策略是保护雄辩模型上行动的好方法。 Laravel策略是Laravel授权的一部分,可帮助您保护资源免遭未经授权的访问。

请参考此文档以了解如何注册策略及其在视图文件中的工作方式:

https://www.larashout.com/laravel-policies-controlling-authorization-in-laravel