2012-04-20 80 views
1

假设我正在使用Codeigniter构建Web应用程序。我有两个级别的用户 - 1. Admin2. Manager。我希望我的管理员可以添加,编辑,删除,所以在我看来,我的文件有以下几点:控制Codeigniter中的用户权限

<a href="somelink">ADD</a> 
<a href="somelink">EDIT</a> 
<a href="somelink">DELETE</a> 

但在某些特定的网页,我不希望我的经理能够删除或编辑任何记录,他将被允许仅添加数据。现在我的问题是,因为我有多种类型的用户和用户权限,我必须为我的经理(和其他用户级别)创建新的控制器和视图文件,或者有一些更好的方法来处理控制器和查看文件,我将用于管理员?

目前我正在为ADMIN和MANAGER创建单独的控制器,模型和视图文件,这非常痛苦。所以我认为有一个更好的方法来做到这一点。

你能否给我一些关于如何处理这个问题的专家建议?

要搞清楚,我用我的控制器下面的代码记录哪些类型的用户:提前:)

parent::__construct(); 
    if (!($this->session->userdata('user_type')== 'flex_admin')) 
    { 
     redirect('login'); 
    } 

感谢

回答

1

你最绝对不需要创建单独的控制器和意见。

您可以将用户权限类型(1或2)存储在会话中,然后检查每个控制器或视图以检查用户的权限。

一个导航视图中的文件

<div id="nav"> 
    <ul> 
    <li>Home</li> 
    <li>Logout</li> 
    <?php if($this->session->userdata('privilege') == 1) : ?> 
     <li>Delete</li> 
    <?php endif; ?> 
    </ul> 
</div> 

你可以在你的控制器进行同类的检查,以确保用户的访问是适当的进行一些功能的例子。