Codeigniter - 如何在站点内实现不同的成员区域? Tank_Auth

时间:2010-08-06 12:51:39

标签: php codeigniter login-control tankauth

我使用codeigniter构建了一个应用程序,它有3个不同的成员组

管理员 - 谁登录仪表板并拥有CRUD工具来添加/编辑/删除活动,节目和艺术家

客户 - 从前端登录并查看管理员通过后端添加的所有项目。

媒体合作伙伴 - 谁从前端登录并查看客户可以看到的部分但不是所有内容。

我已经为客户端部分集成了Tank_Auth库,一切正常。我想要达到的目的是让管理员能够登录到单独的管理区域,媒体合作伙伴也可以登录到单独的区域。

最好的方法是什么?

我是否需要为每个用户群创建sepearate仪表板控制器并复制Tank_Auth控制器3次并调整它?

理想情况下,管理员用户还需要能够添加新闻用户并登录所有3个单独的区域吗?

之前有没有人实现过这样的解决方案,如果是这样,你是怎么做到的?也许tank auth不是正确的做法?

任何意见都会受到赞赏。

谢谢Dan

3 个答案:

答案 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