如何在codeigniter中基于用户组创建permisison?

时间:2015-05-14 10:13:11

标签: php mysql codeigniter authorization

我正在使用codeigniter ion authentication进行用户组维护

Here's链接验证离子验证文档

在编辑用户组中,我想添加菜单以便仅访问特定组。如何设计一个mysql表并在我们的控制器和视图页面中访问它以限制基于用户组的页面。 请查看下面的图片enter image description here

1 个答案:

答案 0 :(得分:1)

我单独创建了菜单表和菜单权限表。

menu table
   menu id
    menu name
menu permission table
 id 
menuid 
usergroup_id

检查当前登录的用户组ID是否在菜单权限表中可用

public function get_menus($user_group_id) {
    if ($user_group_id == 1) {
        $query = $this->db->query("SELECT * FROM menus where parent_id=0");
        $get_results = $query->result();
    } else {
        $query = $this->db->query("SELECT * FROM menu_permissions where user_group_id = $user_group_id");
        $get_results = $query->result();
        $user_perm = array();
        foreach($get_results as $key=> $get_perm){
            // echo $get_results[$key]->menu_id;
            ////print '<pre>';
            $user_perm[] = $get_results[$key]->menu_id;
        }
        $user_perm = implode(', ', $user_perm);
        $query = $this->db->query("SELECT * FROM menus WHERE id IN (".$user_perm.")");
        $get_results = $query->result();
    } 
    //print_r($get_results);
    /*$user_perm = array();
    foreach($get_results as $key=> $get_perm){
        // echo $get_results[$key]->menu_id;
        ////print '<pre>';

         $user_perm[] = $get_results[$key]->menu_id;
     }*/
     return $get_results;
}