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'), "登录成功!"); } }
/** * 检查用户是否登录 * * @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 { } }
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; } }
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('', "删除失败!"); } }
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('', "修改失败!"); } } }
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('', "操作失败!"); } }
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; } } }