我使用codeigniter构建了一个应用程序,它有3个不同的成员组
管理员 - 谁登录仪表板并拥有CRUD工具来添加/编辑/删除活动,节目和艺术家
客户 - 从前端登录并查看管理员通过后端添加的所有项目。
媒体合作伙伴 - 谁从前端登录并查看客户可以看到的部分但不是所有内容。
我已经为客户端部分集成了Tank_Auth库,一切正常。我想要达到的目的是让管理员能够登录到单独的管理区域,媒体合作伙伴也可以登录到单独的区域。
最好的方法是什么?
我是否需要为每个用户群创建sepearate仪表板控制器并复制Tank_Auth控制器3次并调整它?
理想情况下,管理员用户还需要能够添加新闻用户并登录所有3个单独的区域吗?
之前有没有人实现过这样的解决方案,如果是这样,你是怎么做到的?也许tank auth不是正确的做法?
任何意见都会受到赞赏。
谢谢Dan
答案 0 :(得分:1)
我在CI论坛上找不到该帖子,因为我现在似乎无法登录他们的网站,但是在codeigniter中搜索“zend_acl”。或者,this blog post关于如何实现它,但它有点过时了。
ACL代表访问控制列表,它允许您为不同类型的用户设置各种权限。在我看来,Zend拥有ACL的最佳实现之一。
有关ACL的更多信息,请访问zend's website。
答案 1 :(得分:1)
我正在使用CI,但是没有使用Tank_Auth,我有我的auth类,在每个函数中我都有以下方法:$this->auth->accessMap(get_class($this),__FUNCTION__);
在auth课程中: 公共功能accessMap($ controller_name,$ function_name) { if($ this-> perms_array [$ controller_name] [$ function_name]) 返回true; else $ this-> redir(); }
我在config中有权限数组:
$config['user_perms']['className']['method1'] = array($config['user_types']['admin']);
$config['user_perms']['className']['method2'] = array($config['user_types']['admin'],$config['user_types']['user']);
像这样,您可以为每个方法指定哪个用户有权使用它。
我希望这会有所帮助。
答案 2 :(得分:0)
如果我们有多个用户组,则在使用tank_auth时缺少用户组会很痛苦。我最近遇到了这个问题。以下是以CI表格发布的解决方案。
Using tank_auth for both front end user registration and login and back end admin login