permission->is_admin(); //$this->output->enable_profiler(TRUE); $this->load->model('InfoStructures_model'); $this->load->model('infoAccessmanage_model','Access_model'); $this->load->library('Accesscheck'); $this->accesscheck->check_access(); } //权限管理首页 public function index($iam_is_id='',$editsite='') { $data=array(); //获取用户树形结构数据 $data['userstructure'] = $this->Access_model->get_user_structure(); if ($iam_is_id=='') { $iam_is_id = $data['userstructure'][0]->id; } //未添加的用户 $data['undefined_ht_user']=$this->Access_model->get_ht_user_list(true); $data['undefined_a_user']=$this->Access_model->get_author_user_list(true); //获取站点、角色列表 $data['role_list']=$this->Access_model->get_role_structure(); $site_list=$this->Access_model->get_user_site_list_by_isid($iam_is_id); $data['user_site'] = array(); if(isset($site_list))$data['user_site'] = explode(',', $site_list); //设置默认站点 if ($editsite=='' && !empty($data['user_site'])) { $c_site=$this->config->item('site_code'); if (in_array($c_site, $data['user_site'])) { $editsite=$this->config->item('site_code'); }else{ $editsite=$data['user_site'][0]; } }elseif($editsite==''){ $editsite=$this->config->item('site_code'); } //要编辑的用户权限数据 $data['user_access']=$this->Access_model->get_user_by_isid($iam_is_id,$editsite); if (!empty($data['user_access'])) { if(isset($data['user_access']->iao_role))$data['user_access']->iao_role=substr($data['user_access']->iao_role,0, -1); } //获取拥有的角色 $data['current_role'] = array(); if(isset($data['user_access']->iao_role))$data['current_role'] = explode(',', $data['user_access']->iao_role); $data['user_level']=$this->accesscheck->get_role_level($editsite,$data['user_access']->iao_author); if(!$this->config->item('check_access'))$data['user_level']=100; //获取wo可以管理的站点、角色等级 $userdata=$this->session->userdata('session_admin'); $data['editsite']=$editsite; if (in_array(strtolower($userdata['OPI_Code']), $this->config->item('access_super_manage'))) { $data['role_level']=1; }else{ $data['role_level']=$this->accesscheck->get_role_level($editsite); } $data['current_admin']=$userdata['OPI_Code']; if ($data['role_level']==1 OR !$this->config->item('check_access')) { foreach ($this->config->item('site') as $s) { $data['admin_access_site'][] = $s['site_code']; } }else{ $admin_access_site=$this->Access_model->get_user_site_list($data['current_admin']); if(isset($admin_access_site))$data['admin_access_site'] = explode(',', $admin_access_site); } //加载视图 $data['right_nav']=$this->load->view('bootstrap/accessmanage/right_nav',$data,true); $this->load->view('bootstrap/header',$data); $this->load->view('bootstrap/accessmanage/index'); $this->load->view('bootstrap/footer'); } //添加用户 public function adduser($is_parent_id=0,$iam_author='New User',$isajax=1) { //添加空内容. $insert_id=$this->InfoStructures_model->Add($is_parent_id); if ($this->Access_model->add_access($iam_author,$insert_id)){ $data[] = array('name' => 'ok', 'value' => $insert_id); }else{ $data[] = array('name' => 'no', 'value' => $this->lang->line('form_info_error')); } if ($isajax==1) { echo json_encode($data); return TRUE; }else{ redirect(site_url("accessmanage/index/$insert_id")); } } //导入ht和作者平台用户 public function edituser($is_parent_id){ $ht_user_list=$this->Access_model->get_ht_user_list(); $author_user_list=$this->Access_model->get_author_user_list(); foreach ($ht_user_list as $h) { $insert_id=$this->InfoStructures_model->Add($is_parent_id); $this->Access_model->add_access($h->OPI_Code,$insert_id); } foreach ($author_user_list as $a) { $insert_id=$this->InfoStructures_model->Add($is_parent_id); $this->Access_model->add_access($a->a_id,$insert_id); } } //用户权限编辑 public function editaccess(){ $iao_read = $this->input->post('iao_read'); $iao_write = $this->input->post('iao_write'); $iao_author = $this->input->post('iao_author'); $iao_site = $this->input->post('iao_site'); //组装用户拥有的角色字符串 $is_edit_ownsite=false; if ($iao_site!='') { $iao_role = ''; $role_list=$this->input->post('role_list'); if (!empty($role_list)) { foreach ($role_list as $v) { $iao_role.=$v.','; } } //更新用户在各站点可以编辑的具体的信息节点和角色 $is_edit_ownsite=$this->Access_model->update_ownsite($iao_read,$iao_write,$iao_author,$iao_site,$iao_role); } $iam_author=$this->input->post('iam_author'); $is_updateuser=false; if($iao_author!=trim($iam_author))$is_updateuser=$this->Access_model->update_access($this->input->post('iam_id'),trim($iam_author)); if ($is_edit_ownsite or $is_updateuser) { $data[] = array('name' => 'ok', 'value' => 'success'); }else{ $data[] = array('name' => 'no', 'value' => 'error'); } echo json_encode($data); return true; } //分配站点 public function addsite($author,$site){ if (!empty($site) && !empty($author)) { $this->Access_model->add_site($author,$site); } header('Location: '.$_SERVER['HTTP_REFERER']); } //取消用户在某站点的权限 public function deletesite($author,$site){ if (!empty($site) && !empty($author)) { $this->Access_model->delete_site($author,$site); } header('Location: '.$_SERVER['HTTP_REFERER']); } //删除某个用户 public function delete_user(){ if($this->Access_model->delete_user($this->input->post('iam_id'))){ $this->Access_model->delete_site($this->input->post('iam_author')); $data[] = array('name' => 'ok', 'value' => site_url('accessmanage/index')); }else{ $data[] = array('name' => 'no', 'value' => 'delete error'); } echo json_encode($data); return true; } //角色管理首页 public function role($iar_is_id=''){ $data=array(); //查询结构列表信息 $data['rolestructure'] = $this->Access_model->get_role_structure(); if (empty($data['rolestructure'])) { $this->addrole(0,false); redirect(site_url("accessmanage/role")); } if ($iar_is_id=='') { $iar_is_id = $data['rolestructure'][0]->id; } //当前角色拥有的权限节点 $data['current_role']=$this->Access_model->get_role_by_isid($iar_is_id); if (substr($data['current_role']->ian_iaa_id, -1)==',') { $data['current_role']->ian_iaa_id=substr($data['current_role']->ian_iaa_id,0, -1); } $data['current_action'] = explode(',', $data['current_role']->ian_iaa_id); //所有权限节点列表 $data['action_list']=$this->Access_model->get_structure_list(); $methodnode=array(); foreach ($data['action_list'] as $k=>$v) { if ($v->pId==$data['action_list'][0]->id) { $actionnode[]=$v; }elseif ($k!=0) { $methodnode[$v->pId][]=$v; } } $data['actionnode']=$actionnode; $data['methodnode']=$methodnode; //加载视图 $data['right_nav']=$this->load->view('bootstrap/accessmanage/right_nav','$data',true); $this->load->view('bootstrap/header',$data); $this->load->view('bootstrap/accessmanage/role'); $this->load->view('bootstrap/footer'); } //添加角色 public function addrole($is_parent_id,$is_ajax=true) { $insert_id = $this->InfoStructures_model->Add($is_parent_id); if ($insert_id && $roleid=$this->Access_model->add_role('New Role',$insert_id)){ $data[] = array('name' => 'ok', 'value' => $insert_id); }else{ $data[] = array('name' => 'no', 'value' => $this->lang->line('form_info_error')); } if ($is_ajax) { echo json_encode($data); return TRUE; } return $insert_id; } //角色编辑 public function editrole() { //更新角色名 if ($this->input->post('iar_old_name')!=$this->input->post('iar_name')) { $this->Access_model->update_role($this->input->post('iar_id'),$this->input->post('iar_name')); } //父级权限节点拥有其全部子节点的权限 $actions=$this->input->post('action_list'); $action_ids=''; foreach ($actions as $v) { $action_ids.=$v.','; } //如果是新的权限节点关系,则执行添加操作 if ($this->input->post('ian_iaa_id')=='') { $result=$this->Access_model->add_node($this->input->post('iar_id'),$action_ids); } //如果节点关系已经存在,则执行更新操作 else{ $result=$this->Access_model->update_node($this->input->post('iar_id'),$action_ids); } //返回编辑结果 if ($result) { $data[] = array('name' => 'ok', 'value' => 'success'); }else{ $data[] = array('name' => 'no', 'value' => 'error'); } echo json_encode($data); return true; } //删除角色 public function delete_role(){ if($this->Access_model->delete_role($this->input->post('iar_id'))){ $this->session->unset_userdata('access_module'); $data[] = array('name' => 'ok', 'value' => site_url('accessmanage/role')); }else{ $data[] = array('name' => 'no', 'value' => 'delete error'); } echo json_encode($data); return true; } //移动角色排序顺序 public function tree_move() { //网站会提交一个同级节点id列表字符串,按照这个去排序 $parent_id = $this->input->post('pid'); $idsStr = $this->input->post('ids'); $idsArray = explode(',', $idsStr); foreach ($idsArray as $key => $value) { if ($value) { //设置排序 $this->InfoStructures_model->set_sort($value, $key); //设置path $this->InfoStructures_model->set_path($parent_id, $value); } } $data[] = array('name' => 'ok', 'value' => $this->lang->line('structures_success_move')); echo json_encode($data); return TRUE; } //操作节点管理 public function action($iaa_is_id='') { //查询结构列表信息 $data['structurelist'] = $this->Access_model->get_structure_list(); if (empty($data['structurelist'])) { $this->addaction(0,false); redirect(site_url("accessmanage/action")); } if ($iaa_is_id=='') { $iaa_is_id = $data['structurelist'][0]->id; } //当前权限节点 $data['current_action'] = $this->Access_model->get_action_bytreeid($iaa_is_id); //视图加载 $data['right_nav']=$this->load->view('bootstrap/accessmanage/right_nav',$data,true); $this->load->view('bootstrap/header',$data); $this->load->view('bootstrap/accessmanage/action'); $this->load->view('bootstrap/footer'); } //添加操作节点 public function addaction($is_parent_id,$is_ajax=true) { $insert_id = $this->InfoStructures_model->Add($is_parent_id); if ($insert_id && $iaa_id=$this->Access_model->add_action('New Action',$insert_id)){ $this->session->unset_userdata('access_module'); $data[] = array('name' => 'ok', 'value' => $insert_id); }else{ $data[] = array('name' => 'no', 'value' => $this->lang->line('form_info_error')); } if ($is_ajax) { echo json_encode($data); return TRUE; } return $insert_id; } //操作节点编辑 public function edit_action(){ $result=$this->Access_model->update_action( $this->input->post('iaa_title'), $this->input->post('iaa_controller'), $this->input->post('iaa_action'), $this->input->post('iaa_id') ); if($result){ $this->session->unset_userdata('access_module'); $data[] = array('name' => 'ok', 'value' => 'success'); }else{ $data[] = array('name' => 'no', 'value' => $this->lang->line('form_info_error')); } echo json_encode($data); return true; } //删除权限节点 public function delete_action(){ if($this->Access_model->delete_action($this->input->post('iaa_id'))){ $this->InfoStructures_model->Delete($this->input->post('iaa_is_id')); $this->session->unset_userdata('access_module'); $data[] = array('name' => 'ok', 'value' => site_url('accessmanage/action')); }else{ $data[] = array('name' => 'no', 'value' => 'delete error'); } echo json_encode($data); return true; } public function addeditor($user,$site) { $result=0; $iao_other = $this->input->get('iao_other'); $update_result=$this->Access_model->update_site($user,$site,$iao_other); if($update_result) $result=1; echo $result; } //取消用户在某站点的权限 public function deleteeditor($author,$site){ if (!empty($site) && !empty($author)) { $this->Access_model->delete_site($author,$site); } header('Location: '.$_SERVER['HTTP_REFERER']); } }