假设我正在使用Codeigniter构建Web应用程序。我有两个级别的用户 - 1. Admin
和2. Manager
。我希望我的管理员能够添加,编辑,删除,所以在我的视图文件中我有以下内容:
<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');
}
提前致谢:)
答案 0 :(得分: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>
您可以在控制器中执行相同类型的检查,以确保用户访问权限适合执行某些功能。