1

假设我正在使用 Codeigniter 构建一个 Web 应用程序。我有两个级别的用户1. Admin2. 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');
    }

提前致谢 :)

4

1 回答 1

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>

您可以在控制器中执行相同类型的检查,以确保用户访问权限适合执行某些功能。

于 2012-04-20T20:16:37.607 回答