load->model('Company_model'); $this->load->model('User_model'); $this->load->model('Feedback_model'); $this->load->model('Privilnode_model'); $this->load->model('Project_model'); $this->load->model('Global_location_model'); } // 个人信息 public function info(){ $id = intval($this->input->post('id',true)); $data = array(); if (empty($id)) { $data['role'] = $this->get_user_info('role'); $data['id'] = $this->get_user_info('id'); $data['phone'] = $this->get_user_info('phone'); $data['email'] = $this->get_user_info('email'); $data['account'] = $this->get_user_info('username'); $data['name'] = $this->get_user_info('name'); $data['company'] = $this->get_user_info('company'); $avatar = $this->get_user_info('avatar'); $data['avatar'] = !empty($avatar) ? base_url($avatar) : ''; }else{ $data = $this->User_model->get_one(['id'=>$id],'role,id,name,company,phone,email,avatar,username as account'); $data['avatar'] = !empty($data['avatar']) ? base_url($data['avatar']) : ''; } exit(json_result('0000',$this->response['0000'],$data)); } // 账号统计信息 public function data(){ $data = array( 'total' => 0, 'manuCount' => 0, 'suppCount' => 0, 'poCount' => 0, 'upaCount' => 0, 'monCount' => 0, 'conCount' => 0, 'permCount' => 0, 'view' => 0, 'operating' => 0, 'parameter' => 0 ); $role = $this->get_user_info('role'); $privilege = $this->get_user_info('privilege'); if ($role == SYSTEM_ADMIN) { $data['permCount'] = 50; $data['view'] = 1; $data['operating'] = 1; $data['parameter'] = 1; }else{ $arr = explode(',', $privilege); $data['permCount'] = count($arr); $list = $this->Privilnode_model->get_list(['id'=>$arr],'parentid as pid'); foreach ($list as $key => $value) { if ($value['pid'] == 1) $data['view'] = 1; if ($value['pid'] == 18) $data['operating'] = 1; if ($value['pid'] == 39) $data['parameter'] = 1; } } $id = $this->get_user_info('id'); $where = array('id !=' => $id); if ($role != SYSTEM_ADMIN) $where['pid'] = $id; $data['total'] = $this->User_model->get_count($where); $where['role'] = 2; $data['manuCount'] = $this->User_model->get_count($where); $where['role'] = 3; $data['suppCount'] = $this->User_model->get_count($where); $where['role'] = 4; $data['poCount'] = $this->User_model->get_count($where); $where['role'] = 5; $data['upaCount'] = $this->User_model->get_count($where); $where['role'] = 6; $data['monCount'] = $this->User_model->get_count($where); $where['role'] = 7; $data['conCount'] = $this->User_model->get_count($where); exit(json_result('0000',$this->response['0000'],$data)); } // 修改用户密码 public function password(){ $username = $this->get_user_info('username'); $old_pass = $this->input->post('old',true); $new_pass = $this->input->post('new',true); $new_second_pass = $this->input->post('new_second',true); if($new_pass == $old_pass){ exit(json_result('0709',$this->response['0709'],array())); } // 验证确认密码 if($new_pass != $new_second_pass){ exit(json_result('0701',$this->response['0701'],array())); } // 验证密码长度 if (mb_strlen($new_pass) < 6 || mb_strlen($new_pass) > 12) { exit(json_result('0703',$this->response['0703'],array())); } // 验证旧密码 if (!$this->User_model->validate_password($username,md5($old_pass))) { exit(json_result('0702',$this->response['0702'],array())); } $id = $this->get_user_info('id'); $new_pass = md5($new_pass); $res = $this->User_model->change_password($id,$new_pass); if($res){ exit(json_result('0000',$this->response['0000'],array())); }else{ exit(json_result('0704',$this->response['0704'],array())); } } // 修改账号状态 public function block_user(){ $userid = $this->input->post('id',true); $status = intval($this->input->post('status',true)); if (empty($userid) || $status < 0) { exit(json_result('0007',$this->response['0007'],array())); } $this->User_model->update(array('status'=>$status),array('id'=>$userid)); exit(json_result('0000',$this->response['0000'],array())); } // 用户列表 public function sub_list(){ $userRole = $this->get_user_info('role'); $userid = $this->get_user_info('id'); $where = array('id !='=>$userid); if ($userRole != SYSTEM_ADMIN) { $where['pid'] = $userid; } $role = intval($this->input->post('roleType',true)); if (!empty($role)) $where['role'] = $role; $keywords = $this->input->post('keywords',true); if ($keywords !== NULL && $keywords !== '') $where['name|'] = $keywords; $field = "id,name,role,phone,email,status,company,username as account"; $list = $this->User_model->get_list($where,$field); exit(json_result('0000',$this->response['0000'],array('list'=>$list))); } // 添加编辑用户 public function user_update(){ $where['id'] = intval($this->input->post('id',true)); // $role = $this->get_user_info('role'); // if ($role == COMPANY_CUSTOMER) { // exit(json_result('0011', $this->response['0011'], array())); // } $data['name'] = $this->input->post('name',true); $phone = $this->input->post('phone',true); $email = $this->input->post('email',true); $data['company'] = $this->input->post('company',true); // $data['role'] = intval($this->input->post('roleType')); $avatar = $this->input->post('avatar',true); if (isset($avatar) && !empty($avatar)) { $path = parse_url($avatar); $data['avatar'] = substr($path['path'], 1); } if (!empty($phone)) $data['phone'] = $phone; if (!empty($telephone)) $data['telephone'] = $telephone; if (!empty($email)) $data['email'] = $email; if(!isset($data['name']) || isset($data['name']) == '') exit(json_result('0707',$this->response['0707'],array())); if(empty($data['company'])) exit(json_result('0712',$this->response['0712'],array())); $res = $this->Company_model->get_one(['id'=>$data['company']],'type'); if (empty($res) || empty($res['type'])) exit(json_result('0007',$this->response['0007'])); $data['role'] = $res['type']; // $data['zone'] = empty($zone) ? '' : $zone; // 验证请求数据 $config = array(); if(!empty($data['phone'])){ $config[] = array( 'field' => 'phone', 'label' => 'Phone', 'rules' => 'numeric|exact_length[11]', 'errors' => array( 'numeric' => '0718', 'exact_length' => '0718' ) ); } if (!empty($data['email'])) { $config[] = array( 'field' => 'email', 'label' => 'Email', 'rules' => 'valid_email', 'errors' => array( 'valid_email' => '0719', ) ); } if (empty($where['id'])) { // 添加用户 $data['username'] = trim($this->input->post('account',true)); $data['password'] = $this->input->post('password',true); $config[] = array( 'field' => 'password', 'label' => 'Password', 'rules' => 'min_length[6]', 'errors' => array( 'min_length' => '0720', ) ); if (!empty($config)) { $this->load->library('form_validation'); $this->form_validation->set_rules($config); if ($this->form_validation->run() == FALSE){ $errors = $this->form_validation->error_array(); exit(json_result(current($errors),$this->response[current($errors)],array())); } } if(!isset($data['username']) || $data['username'] == '') exit(json_result('0708',$this->response['0708'],array())); if(mb_strlen($data['username']) > 20) exit(json_result('0723',$this->response['0723'],array())); if (empty($data['password'])) { exit(json_result('0713',$this->response['0713'],array())); } $data['password'] = md5($data['password']); $privilegeIds = $this->input->post('privilegeIds',true); $data['privilege'] = $privilegeIds; // 验证登录账号是否存在 if ($this->User_model->getDataCount(array('username'=>$data['username'],'role'=>$data['role']))) { exit(json_result('0706',$this->response['0706'],array())); } if (!empty($data['phone']) && $this->User_model->getDataCount(array('phone'=>$data['phone']))) { exit(json_result('0721',$this->response['0721'],array())); } if (!empty($data['email']) && $this->User_model->getDataCount(array('email'=>$data['email']))) { exit(json_result('0722',$this->response['0722'],array())); } $data['pid'] = $this->get_user_info('id'); $data['createTime'] = date('Y-m-d H:i:s',time()); if (empty($data['role'])) exit(json_result('0724',$this->response['0724'])); $userid = $this->User_model->add($data); $this->add_operation_log('insert',"添加用户,用户名\"{$data['name']}\"",0); $this->add_operation_log('insert',"Add user.User name:\"{$data['name']}\"",0,1); }else{ // 编辑用户 unset($data['password']); if (!empty($config)) { $this->load->library('form_validation'); $this->form_validation->set_rules($config); if ($this->form_validation->run() == FALSE){ $errors = $this->form_validation->error_array(); exit(json_result(current($errors),$this->response[current($errors)],array())); } } // if ($this->User_model->getDataCount(array('username'=>$data['username']),$where['id'])) { // exit(json_result('0706',$this->response['0706'],array())); // } if (!empty($data['phone']) && $this->User_model->getDataCount(array('phone'=>$data['phone']),$where['id'])) { exit(json_result('0721',$this->response['0721'],array())); } if (!empty($data['email']) && $this->User_model->getDataCount(array('email'=>$data['email']),$where['id'])) { exit(json_result('0722',$this->response['0722'],array())); } $oldData = $this->User_model->get_one($where,'company'); if ($oldData['company'] != $data['company']) { $this->Project_model->update(array('company'=>$data['company']),array('userId'=>$where['id'],'company'=>$data['company'])); } $privilegeIds = $this->input->post('privilegeIds',true); if ($privilegeIds !== NULL && $privilegeIds !== '') $data['privilege'] = $privilegeIds; if (empty($data['role'])) exit(json_result('0724',$this->response['0724'])); $this->User_model->update($data,$where); $userid = $where['id']; $this->add_operation_log('update',"修改用户,用户名\"{$data['name']}\"",0); $this->add_operation_log('update',"Update user.User name:\"{$data['name']}\"",0,1); } exit(json_result('0000',$this->response['0000'],array('id'=>$userid))); } // 删除账户 public function del(){ $id = intval($this->input->post('id',true)); if (empty($id)) exit(json_result('0007',$this->response['0007'])); $this->User_model->delete(['id'=>$id]); exit(json_result('0000',$this->response['0000'])); } // 获取用户权限列表 public function privilege_list(){ $userid = $this->input->post('id',true); if (empty($userid)) $userid = $this->get_user_info('id'); $version = $this->session->userdata('version'); $userData = $this->User_model->get_one(['id'=>$userid],'role'); $privilege_list = $this->Privilnode_model->get_all_privilnode(SYSTEM_ADMIN); // 选中用户拥有的权限 if (!empty($userid)) { $data = $this->User_model->get_one(['id'=>$userid],'privilege'); $privilegeArr = explode(',', $data['privilege']); foreach ($privilege_list as &$v) { if (!empty($version)) { $v['name'] = $v['en_name']; } if ($userData['role'] == SYSTEM_ADMIN || in_array($v['id'], $privilegeArr)) { $v['select'] = 1; }else{ $v['select'] = 0; } } } // 权限分级 $res = list_to_tree($privilege_list, $pk='id', $pid = 'parentid', $child = 'sub_list', $root = 0); exit(json_result('0000',$this->response['0000'],array('list'=>$res))); } // 修改用户权限 public function save_user_privilege(){ // $role = $this->get_user_info('role'); $privilegeIds = $this->input->post('privilegeIds',true); $userid = $this->input->post('userid',true); // $res = $this->User_model->get_one($userid); // 判断用户权限 // if ($role >= $res['role']) { // exit(json_result('0011',$this->response['0011'],array())); // } // 参数判断 // if (empty($privilegeIds) || empty($userid)) { // json_result('0000',$this->response['0000'],array()); // } $this->User_model->update(['privilege'=>$privilegeIds],['id'=>$userid]); $this->add_operation_log('update','修改用户权限 id:'.$userid,0); $this->add_operation_log('update','Update user rights.User ID:'.$userid,0,1); exit(json_result('0000',$this->response['0000'],array())); } // 修改用户头像 public function update_avatar(){ $path = '../upload/image'; $config['file_name'] = md5(uniqid()); // 设置图片名字 if (!file_exists('../upload')) mkdir('../upload'); if (!file_exists('../upload/image')) mkdir('../upload/image'); $config['upload_path'] = $path.'/'; // 设置图片上传路径 $config['allowed_types'] = '*'; // 设置图片上传格式 $config['max_size'] = 10240; // 设置文件上传大小 $this->load->library('upload', $config); if ( ! $this->upload->do_upload('file')) { $error = array('error' => $this->upload->display_errors('','')); // if (empty($this->version)) { // $data = array('error'=>transfer_error_tips($error['error'])); // }else{ $data = array('error'=>$error['error']); // } exit(json_result('0012',$this->response['0012'],$data)); } else { $data = $this->upload->data(); $imagePath = '/upload/image/'.$data['file_name']; $id = $this->get_user_info('id'); $this->User_model->update(['avatar'=>$imagePath],['id'=>$id]); exit(json_result('0000',$this->response['0000'])); } } public function company_nav(){ $where = array(); $company = $this->get_user_info('company'); $role = $this->get_user_info('role'); // $type = intval($this->input->post('type',true)); // if (!empty($type)) $where['type'] = $type; if ($role != SYSTEM_ADMIN) $where['id'] = $company; $list = $this->Company_model->get_list($where, 'id,name,no',null, null, 'name asc,id desc', NUll); foreach ($list as $key => $value) { if (!empty($value['no'])) $list[$key]['name'] = $value['no']; } exit(json_result('0000',$this->response['0000'],array('list'=>$list))); } } ?>