コード例 #1
0
ファイル: User.php プロジェクト: zhupengfei365/backend.hc.com
 public function dologin()
 {
     $this->form_validation->set_rules('username', 'Username', 'required');
     $this->form_validation->set_rules('password', 'Password', 'required');
     if ($this->form_validation->run() == FALSE) {
         errorRedirct('backend/user/login', '用户名和密码不能为空');
         die;
     } else {
         $username = $this->input->post('username');
         $password = $this->input->post('password');
         $this->load->model('backend/adminUser');
         $adminUserInfo = $this->adminUser->getAdminUserByName($username);
         if (empty($adminUserInfo)) {
             errorRedirct('backend/user/login', '登录失败,账号不存在');
             die;
         }
         if (!$adminUserInfo['status']) {
             errorRedirct('backend/user/login', '登录失败,账号已失效');
             die;
         }
         if ($adminUserInfo['password'] != md5($password)) {
             errorRedirct('backend/user/login', '登录失败,密码错误');
             die;
         }
         // 更新用户登录时间
         $fields = array('last_ip' => getClientIp(), 'last_time' => time());
         $this->adminUser->updateUserInfo($adminUserInfo['user_id'], $fields);
         $data = array('userId' => $adminUserInfo['user_id'], 'userName' => $adminUserInfo['user_name'], 'realName' => $adminUserInfo['real_name']);
         $this->session->set_userdata($data);
         successRedirct($this->config->item('rbac_default_index'), "登录成功!");
     }
 }
コード例 #2
0
 /**
  * 检查用户是否登录
  *
  * @access  protected
  * @return  void
  */
 protected function checkLogin()
 {
     if (empty($this->session->userdata('userId'))) {
         $allowUrlArr = array('backend/user/login', 'backend/user/dologin', 'backend/user/logout');
         if (!in_array($this->uri->uri_string, $allowUrlArr)) {
             errorRedirct($this->config->item('rbac_auth_gateway'), "请先登录!");
         }
     } else {
     }
 }
コード例 #3
0
 public function aoto_verify()
 {
     $ciObj =& get_instance();
     //目录
     $directory = substr($ciObj->router->fetch_directory(), 0, -1);
     //控制器
     $controller = $ciObj->router->fetch_class();
     //方法
     $function = $ciObj->router->fetch_method();
     if (!in_array($directory . '/' . $controller, $ciObj->config->item('rbac_notauth_dirc'))) {
         //当非主目录
         if ($ciObj->config->item('rbac_auth_on')) {
             //开启认证
             //验证是否登录
             if (empty($ciObj->session->userdata('userId'))) {
                 errorRedirct($ciObj->config->item('rbac_auth_gateway'), "请先登录!");
                 die;
             }
             if ($ciObj->config->item('rbac_auth_type') == 2) {
                 //若为实时认证
                 $ciObj->load->model("backend/adminUser");
                 //检测用户状态
                 $res = $ciObj->adminUser->getUserInfoById($ciObj->session->userdata('userId'));
                 if ($res == FALSE || $res['status'] == 0) {
                     errorRedirct($ciObj->config->item('rbac_auth_gateway'), "该账号已失效");
                     die;
                 }
                 //ACL重新赋权
                 $ciObj->adminUser->getAcl($ciObj->session->userdata('userId'));
             }
             //验证ACL权限
             if (@(!$_SESSION[$ciObj->config->item('rbac_auth_key')]["ACL"][$directory][$controller][$function])) {
                 errorRedirct("", "无权访问此节点!(" . $directory . "/" . $controller . "/" . $function . ")");
                 die;
             }
         }
         //已登录且有权限,获取左侧菜单
         if ($ciObj->config->item('rbac_auth_type') == 2) {
             //若为实时认证
             $ciObj->get_menu = $this->get_menu();
         } else {
             if (isset($_SESSION[$ciObj->config->item('rbac_auth_key')]["MENU"])) {
                 $ciObj->get_menu = $_SESSION[$ciObj->config->item('rbac_auth_key')]["MENU"];
             } else {
                 $_SESSION[$ciObj->config->item('rbac_auth_key')]["MENU"] = $this->get_menu();
                 $ciObj->get_menu = $_SESSION[$ciObj->config->item('rbac_auth_key')]["MENU"];
             }
         }
         //默认重写View开
         $ciObj->view_override = TRUE;
     }
 }
コード例 #4
0
 public function delBrand()
 {
     $id = $this->uri->segment(4);
     if (empty($id)) {
         errorRedirct('', "ID不能为空");
         die;
     }
     $this->load->model('backend/productBrand');
     $result = $this->productBrand->delBrand($id);
     if ($result) {
         successRedirct('', "删除成功!");
     } else {
         errorRedirct('', "删除失败!");
     }
 }
コード例 #5
0
ファイル: Menu.php プロジェクト: zhupengfei365/backend.hc.com
 public function addMenuDo()
 {
     $this->form_validation->set_rules('p_id', 'p_id', 'required');
     $this->form_validation->set_rules('title', 'title', 'required');
     $this->form_validation->set_rules('node_id', 'node_id', 'required');
     $this->form_validation->set_rules('sort', 'sort', 'required');
     $this->form_validation->set_rules('status', 'status', 'required');
     if ($this->form_validation->run() == FALSE) {
         errorRedirct('', '必要参数不能为空');
         die;
     } else {
         $data = array('p_id' => $this->input->post('p_id'), 'title' => $this->input->post('title'), 'node_id' => $this->input->post('node_id'), 'sort' => $this->input->post('sort'), 'status' => $this->input->post('status'), 'icon_name' => $this->input->post('icon_name'));
         $this->load->model('backend/adminMenu');
         $result = $this->adminMenu->addMenuToDb($data);
         if ($result) {
             successRedirct('backend/menu/menuList', "修改成功!");
         } else {
             errorRedirct('', "修改失败!");
         }
     }
 }
コード例 #6
0
ファイル: Role.php プロジェクト: zhupengfei365/backend.hc.com
 public function editAuthDo()
 {
     $nodeArr = $this->input->post('node_id');
     $roleId = $this->input->post('role_id');
     if (count($nodeArr) == 0) {
         errorRedirct('', "请选择授权节点");
         die;
     }
     $data = array();
     foreach ($nodeArr as $node) {
         $data[] = array('node_id' => $node, 'role_id' => $roleId);
     }
     $this->load->model('backend/adminRole');
     $roleList = $this->adminRole->getAuthList($roleId);
     if (count($roleList) > 0) {
         $this->adminRole->delAllAuth($roleId);
     }
     $insertResult = $this->adminRole->batchInsertAuth($data);
     if ($insertResult) {
         successRedirct('', "操作成功!");
     } else {
         errorRedirct('', "操作失败!");
     }
 }
コード例 #7
0
 public function editPassDo()
 {
     $this->form_validation->set_rules('password', 'password', 'required');
     $this->form_validation->set_rules('new_password', 'new_password', 'required');
     $this->form_validation->set_rules('new_password1', 'new_password1', 'required');
     if ($this->form_validation->run() == FALSE) {
         errorRedirct('', '必要参数不能为空');
         die;
     } else {
         $password = $this->input->post('password');
         $newPassword = $this->input->post('new_password');
         $newPassword1 = $this->input->post('new_password1');
         $username = $this->session->userdata('userName');
         $adminUserInfo = $this->adminUser->getAdminUserByName($username);
         if ($adminUserInfo['password'] != md5($password)) {
             errorRedirct('', '原密码错误');
             die;
         }
         if ($newPassword != $newPassword1) {
             errorRedirct('', '两次密码不一致');
             die;
         }
         // 更新密码
         $data = array('password' => md5($newPassword), 'update_time' => time());
         $result = $this->adminUser->updateUserInfo($adminUserInfo['user_id'], $data);
         if ($result) {
             $this->session->sess_destroy();
             successRedirct('backend/user/login', "修改成功,请重新登录");
         } else {
             errorRedirct('', '密码修改失败');
             die;
         }
     }
 }