PHP(Laravel)项目中的访客,管理员和所有者角色

时间:2014-11-26 14:44:45

标签: php laravel user-roles

我正在构建一个Laravel应用程序。我需要区分客人,管理员和所有者。我打算使用Confide和Entrust。让我举一个todo-application的例子:

问题的第一部分: 访客只能访问前端,管理员可以访问后端添加/编辑他自己的'项目和做项目。所有者可以查看所有注册用户的所有项目,还可以查看有关项目和任务的数量,使用该应用程序的用户数量,重置给定用户的密码,票务系统等的统计数据....

我会创建三个角色:来宾,管理员和所有者(使用Entrust)。然后我会(在路由器文件中)说所有以admin开头的路由都需要进行身份验证。但是如何为“老板”解决这个问题。所以我有以下情况:

1)来宾的路线:Route :: group(array(' before' =>' guest'),function(){....} 2)admin的路由:Route :: group(数组('前缀' =>' admin','之前' =>' auth&# 39;),function(){...} 3)所有者的路线:??

如何修复所有者路由:是否像执行一样简单:Route :: group(array(' prefix' =>' owner',' before&# 39; =>' auth'),function(){}或者我应该将所有者作为' admin'部分的一部分并在控制器中进行区分?

问题的第二部分:我如何确保自动为订阅该应用的用户分配管理员角色。

问题的第三部分:我如何确保只有1个所有者可以访问具有完全权限的应用程序?

1 个答案:

答案 0 :(得分:0)

你需要使用acl 这里:

https://github.com/intrip/laravel-authentication-acl

在这里阅读更多关于acl的信息(如果你以前从未使用过它): http://en.wikipedia.org/wiki/Access_control_list

我来自cakephp,通常/ admin / *是authed内容,在应用程序中,您可以检测到您要向哪个用户提供内容,这样您就可以将它们发送到一个或另一个内容。

注册后,将该组设置为admin(easy)

你必须清除问题的第三部分。我不知道你是否需要一个管理员或第一个管理员等。