我的实际项目需要为我的用户中的不同角色实施ACL。
目前,我喜欢客户定义的4个角色(管理员,部门负责人,秘书和教师),但他希望在需要时创建更多角色。
知道这个线索是我想知道是否有任何方法来控制系统访问而不检查我系统的每个方法中的访问权限。 Laravel提供了我的授权服务,但还不足以设计我的系统,但我认为这是一种不推荐的检查每种方法的方法。
我的想法是在发出任何请求之前实现一些内容并检查用户是否具有访问权限取决于他的角色,这样我就不需要在每个方法中检查它作为laravel授权服务的实际解决方案,laravel -acl of Kodeine或similars为我提供。
如果有人有想法提出这个想法,请回答这个问题。
此外,我想知道这是否会影响系统安全性以及我如何以及如何处理它。
提前致谢。
答案 0 :(得分:0)
如果您只想使用基于角色的访问控制,则可以非常轻松地创建自己的中间件来检查传递的角色。现在,在您的路线中,您可以根据用户角色保护路线,例如:
Route::group(['middleware' => 'authorize:admin,secretary'], function() {
// your route here
});
您在Laravel文档here中有示例角色中间件。