laravel 5.4 - 如何防止某人的角色能够访问另一个角​​色的财产?

时间:2018-02-05 23:14:43

标签: php laravel laravel-5.4

我有一个库存应用程序,它有三个不同的角色,即operator,admin和super admin。

问题是,当我输入其中一个角色时,我可以通过在浏览器的链接栏中的菜单中编写链接来访问属于另一个角色的菜单。

示例

在管理页面中有一个备份和还原菜单link: /admin/backupAndRestore

然后我以运营商身份登录

在操作页面中只有项目借用和返回项目菜单,但如果我在浏览器的链接栏中写下管理员备份和恢复菜单的链接,如localhost: 8000/admin/backupAndRestore我可以访问页。

我想让它像登录的用户无法访问注册页面或登录页面并重定向到主页,我该怎么办?

1 个答案:

答案 0 :(得分:1)

您正在寻找的功能在Laravel框架中称为authorization。由于您可以通过多种方式在技术上实现用户角色,因此在此处发布代码示例是不现实的。相反,我建议您阅读authorization上的整个文档页面,然后设计适合您的设置的实现。您很可能希望使用Policies构建逻辑,Eclipse bug 518445是围绕特定模型组织授权逻辑的类。