【问题标题】:How to create a pages with different moderators in codeigniter如何在 codeigniter 中创建具有不同版主的页面
【发布时间】:2013-10-09 10:33:17
【问题描述】:

在这里,我开发了一个包含所有必需方法的应用程序,例如添加/删除/查看以及更多附加选项,但现在我需要根据用户类型分隔页面。例如,用户只有 READ 权限,而管理员拥有所有类型的访问权限。

我找到了一些解决方案,通过会话变量作为角色并授予对有限方法的访问权限,但问题是当我直接通过 URL 访问方法时,所有用户都可以轻松访问它,即使它是用户或管理员。

如何控制这种访问?

【问题讨论】:

  • 在我看来,您应该考虑将角色存储在用户配置文件中的概念,并在每次用户使用控制器时加载它。即每次运行构造函数时调用从数据库加载用户数据。

标签: php codeigniter codeigniter-2


【解决方案1】:

一个示例控制器方法

public function add(){
    //only allow administrators
    if($this->session->userdata('user_type') != 'admin'){
         //do whatever you want here, redirect user to some place (login) or show an error
         $data['error'] = 'You do not have necessary permissions';
         $this->load->view('view-file', $data);
   }else{
        //ok so user is admin, now do the rest of the job
   }
}

上述方法,您必须在每个方法中手动检查。更好的方法是创建一个MY_Controller 并在那里拥有通用逻辑

class MY_Controller extends CI_Controller{
    public function adminCheck(){
        if($this->session->userdata('user_type') != 'admin'){
            $data['error'] = 'No permission';
            $this->load->view('view-file', $data);
            exit();
        }
    }
}

在你的普通控制器方法中,你可以调用函数adminCheck()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    • 2013-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多