/** * 更新用户信息 * @return [type] [description] */ public function actionEdit() { $aid = isset($_REQUEST['id']) ? $_REQUEST['id'] : ''; $adminModel = \app\models\WAdmin::findOne($aid); $adminGroupModel = new \app\models\WAdminGroup(); if ($adminModel) { if ($_SESSION['accountID'] != 1 && $aid == 1) { \app\common\XUtils::message('error', '无权修改', \Yii::$app->urlManager->createUrl(['iadmin/admin/index'])); } if (\Yii::$app->request->isPost) { $getPost = $this->_getPost('WAdmin'); $getPost['id'] = $aid; $filterData = $adminModel->writeDataValidate($getPost); if (!empty($filterData)) { if ($adminModel->updateAdminInfo($filterData)) { \app\common\XUtils::message('success', '用户信息更新成功!', \Yii::$app->urlManager->createUrl(['iadmin/admin/edit', 'id' => $aid])); } } } $data = $adminModel->getSingleAdminInfoByID($aid); $adminModel->password = ''; return $this->render('edit', ['model' => $adminModel, 'groupList' => $adminGroupModel->getDropDownList($adminGroupModel->getBaseAdminGroupList())]); } \app\common\XUtils::message('error', '用户不存在', \Yii::$app->urlManager->createUrl(['iadmin/admin/index'])); }
public function actionLogin() { if ($this->_sessionGet('accountID')) { \app\common\XUtils::message('success', '您已经登录,无需重复登录', \Yii::$app->urlManager->createUrl(['iadmin/admin/index'])); } if (Yii::$app->request->isPost) { $getPost = $this->_getPost('WAdmin'); if (!empty($getPost)) { if (!trim($getPost['username'])) { exit(json_encode(['status' => -1, 'msg' => '请填写用户名'])); } elseif (!trim($getPost['password'])) { exit(json_encode(['status' => -1, 'msg' => '请填写密码'])); } elseif (!trim($getPost['verifycode'])) { exit(json_encode(['status' => -1, 'msg' => '请填写验证码'])); } else { if ($this->_sessionGet('__captcha/site/captcha') != $getPost['verifycode']) { exit(json_encode(['status' => -1, 'msg' => '验证码错误'])); } $userinfo = $this->adminModel->getSingleAdminInfo(['username' => $getPost['username'], 'password' => md5($getPost['password'])]); if (!empty($userinfo)) { $this->_sessionSet('accountID', $userinfo->id); $this->_sessionSet('accountName', $userinfo->username); if (isset($getPost['reme'])) { $random = $this->generateRandom($userinfo->username); list($identifier, $token, $timeout) = explode(':', $random); // $this->_cookiesSet('auth', "$identifier:$token", $timeout); setcookie('auth', "{$identifier}:{$token}", $timeout); $this->adminModel->updateRandom($userinfo->id . ':' . $random); \app\models\WAdmin::updateAll(array('last_login_time' => time()), array('id' => $userinfo->id)); // exit(json_encode(['status' => 1, 'msg' => $_COOKIE['auth'] . '--' . $random])); } exit(json_encode(['status' => 1, 'msg' => '登陆成功'])); } else { exit(json_encode(['status' => -1, 'msg' => '用户名或密码错误'])); } } } else { exit(json_encode(['status' => -1, 'msg' => '请填写登录信息'])); } } return $this->renderPartial('login', ['model' => $this->adminModel]); }
public function verifyUser() { if (!$this->_sessionGet('accountID')) { if ($_COOKIE['auth']) { list($identifier, $token) = explode(':', $_COOKIE['auth']); $now = time(); $adminModel = new \app\models\WAdmin(); $userinfo = $adminModel->getAdminInfoByIdentifier($identifier); if (is_object($userinfo)) { if ($userinfo->token != $token) { \app\common\XUtils::message('error', '请重新登陆', \Yii::$app->urlManager->createUrl(['iadmin/access/login'])); } elseif ($now > $userinfo->timeout) { \app\common\XUtils::message('error', '请重新登陆', \Yii::$app->urlManager->createUrl(['iadmin/access/login'])); } elseif ($identifier != md5(\Yii::$app->params['salt'] . md5($userinfo->username . \Yii::$app->params['salt']))) { \app\common\XUtils::message('error', '请重新登陆', \Yii::$app->urlManager->createUrl(['iadmin/access/login'])); } else { $this->_sessionSet('accountID', $userinfo->id); $this->_sessionSet('accountName', $userinfo->username); } } } else { \app\common\XUtils::message('error', '请重新登陆', \Yii::$app->urlManager->createUrl(['iadmin/access/login'])); } } }
/** * 获取所有用户数据 * @param [type] $start [description] * @param [type] $pageSize [description] * @param [type] $where [description] * @return [type] [description] */ public function getAdminList($start, $pageSize, $where) { $connection = Yii::$app->db; $sqlOne = 'select a.id, a.username, a.last_login_time, g.group_name from ' . WAdmin::tableName() . ' as a left join ' . WAdminGroup::tableName() . ' as g on a.group_id = g.id where ' . $where . ' order by a.last_login_time desc, a.id asc limit ' . $start . ',' . $pageSize; $sqlTwo = 'select count(a.id) as n from ' . WAdmin::tableName() . ' as a left join ' . WAdminGroup::tableName() . ' as g on a.group_id = g.id where ' . $where; return array('data' => $connection->createCommand($sqlOne)->queryAll(), 'count' => $connection->createCommand($sqlTwo)->queryOne()); }