0

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

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

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

媒体合作伙伴- 从前端登录并查看客户可以看到的某些部分,但不是所有的东西。

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

解决这个问题的最佳方法是什么?

我是否需要为每个用户群创建单独的仪表板控制器并复制 Tank_Auth 控制器 3 次并进行调整?

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

以前有没有人实现过这样的解决方案,如果有,你是怎么做的?也许坦克身份验证不是正确的方法?

任何输入将不胜感激。

谢谢丹

4

3 回答 3

1

我正在使用 CI,但没有使用 Tank_Auth,我有我的身份验证类,并且在每个函数中我都有以下方法调用:$this->auth->accessMap(get_class($this),__FUNCTION__);

在 auth 类中: public function accessMap($controller_name,$function_name) { if ($this->perms_array[$controller_name][$function_name]) return true; 否则 $this->redir(); }

我在配置中有权限数组:

$config['user_perms']['className']['method1'] = array($config['user_types']['admin']);
$config['user_perms']['className']['method2'] = array($config['user_types']['admin'],$config['user_types']['user']);

像这样,您可以为每个方法指定哪些用户有权使用它。

我希望这将有所帮助。

于 2010-08-06T13:15:18.923 回答
1

我在 CI 论坛上找不到该主题,因为我现在似乎无法登录他们的网站,但是请搜索“codeigniter 中的 zend_acl”。或者有这篇关于如何实现它的博客文章,但它有点过时了。

ACL 代表访问控制列表,它允许您为不同类型的用户设置各种权限。在我看来,Zend 是 ACL 的最佳实现之一。

更多关于 ACL 的信息可以在zend 的网站上找到。

于 2010-08-06T13:04:25.270 回答
0

如果我们有多个用户组,那么在使用 tank_auth 时,没有用户组会很痛苦。我最近遇到了这个问题。这是发布在 CI 表单中的解决方案。

使用 tank_auth 进行前端用户注册和登录以及后端管理员登录

于 2012-02-22T20:13:31.627 回答