From 6d1f118dbe511e46e1e5a12c8a6792688d78abc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=B9=E8=AF=9A=E8=AF=9A?= Date: Wed, 12 Dec 2018 16:49:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=96=E6=B6=88=E6=A8=A1=E5=9D=97=E7=9A=84?= =?UTF-8?q?=E6=9D=83=E9=99=90=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/controllers/login.php | 4 -- application/libraries/Accesscheck.php | 83 +-------------------------- 2 files changed, 2 insertions(+), 85 deletions(-) diff --git a/application/controllers/login.php b/application/controllers/login.php index 9f6c418f..4c0d5011 100644 --- a/application/controllers/login.php +++ b/application/controllers/login.php @@ -61,10 +61,6 @@ class Login extends CI_Controller { $admin_info = $this->session->userdata('session_admin'); if ($this->accesscheck->check_access($site_code)) { $this->session->set_userdata('session_site', $site_item); - $this->session->unset_userdata('access_module'); - $this->session->unset_userdata('access_read_list'); - $this->session->unset_userdata('access_write_list'); - $this->session->unset_userdata('access_sitecode'); } } //跳转到指定页面。 diff --git a/application/libraries/Accesscheck.php b/application/libraries/Accesscheck.php index bb0a3fc0..fa42755f 100644 --- a/application/libraries/Accesscheck.php +++ b/application/libraries/Accesscheck.php @@ -22,12 +22,7 @@ class Accesscheck extends CI_Controller $this->init_accessdata(); } //用户拥有权限de站点、模块&需要权限认证的模块 - $access_module = $this->session->userdata('access_module'); - $user_controller = $access_module['user_controller']; - $user_action = $access_module['user_action']; - $iaa_controller_list = $access_module['iaa_controller_list']; - $iaa_action_list = $access_module['iaa_action_list']; - $user_site_list = $this->session->userdata('access_sitecode'); + $user_site_list = $this->session->userdata('access_sitecode'); //检测用户是否能访问当前站点,如果不能,则跳转到该用户有权限的站点 if($site_code=='')$site_code=$this->config->item('site_code'); @@ -35,85 +30,11 @@ class Accesscheck extends CI_Controller header('Location: '.$_SERVER['HTTP_REFERER']); exit(); } - - //判断当前操作是否需要认证 - $flag=true; - if ($module!='') { - $module_array=explode('/', trim($module)); - $this->router->class= $module_array[0]; - $this->router->method= $module_array[1]; - } - //判断当前模块是否需要认证 - if (in_array($this->router->class, $iaa_controller_list)) { - //如果需要认证,判断是否有权限操作当前模块 - if (in_array($this->router->class,$user_controller)) { - //判断是否能编辑不同省份信息 - /*if($this->router->class=='province'){ - $province=str_replace('/province/', '', $this->uri->uri_string()); - $province=trim($province); - if (!isset($user_action[$this->router->class]) || !in_array($province, $user_action[$this->router->class])) { - $flag = false;//没有权限查看当前省份! - } - } - //判断当前方法是否需要认证 - else*/ - if (isset($iaa_action_list[$this->router->class]) && in_array($this->router->method, $iaa_action_list[$this->router->class])) { - //如果当前方法需要认证,则判断是否有权限 - if (!isset($user_action[$this->router->class]) || !in_array($this->router->method, $user_action[$this->router->class])) { - $flag = false;//没有权限执行当前方法! - } - } - }else { - $flag = false;//没有权限执行当前控制器模块! - } - } - if ($module =='' && !$flag) { - redirect(site_url('Login/refuse')); - exit(); - } - return $flag; + return true; } public function init_accessdata(){ - $userdata=$this->session->userdata('session_admin'); - //根据usercode获取用户角色、可读、可写列表 - $user_access=$this->Access_model->get_user_access($userdata['OPI_Code'],$this->config->item('site_code')); - //根据角色字符串获取用户有权限的操作 - $user_node=$this->Access_model->get_node_list($user_access->iao_role.'0'); - //把用户拥有的所有角色id组装成一个数组集合 - $node_str=''; - foreach ($user_node as $node) { - $node_str.=$node->ian_iaa_id; - } - $node_array=explode(',', substr($node_str, 0,-1)); - - //用户拥有权限de站点、模块&需要权限认证的模块 - $user_controller = array(); - $user_action = array(); - $iaa_controller_list = array(); - $iaa_action_list = array(); - - //所有需要认证的模块、方法 - $action_list=$this->Access_model->get_action_list(); - foreach ($action_list as $a) { - - //用户拥有的权限模块、方法 - if (in_array($a->iaa_id, $node_array) && $a->iaa_controller!='') { - $user_controller[] = $a->iaa_controller; - $user_action[$a->iaa_controller][] = $a->iaa_action; - } - //需要认证的控制器和方法 - if(!empty($a->iaa_controller))$iaa_controller_list[]=$a->iaa_controller; - if(!empty($a->iaa_action))$iaa_action_list[$a->iaa_controller][]=$a->iaa_action; - } - $access_module['user_controller'] = $user_controller; - $access_module['user_action'] = $user_action; - $access_module['iaa_controller_list'] = $iaa_controller_list; - $access_module['iaa_action_list'] = $iaa_action_list; - $this->session->set_userdata('access_read_list', $user_access->iao_read); - $this->session->set_userdata('access_write_list', $user_access->iao_write); $this->session->set_userdata('access_sitecode', $this->Access_model->get_user_site_list($userdata['OPI_Code'])); - $this->session->set_userdata('access_module', $access_module); } //获取角色等级(角色树形结构的等级)