/** * 检测用户是否对URI有访问权限的 * * @param unknown_type $userid * @return boolean */ public static function check($userid, $controller, $action) { // 非普通用户不查检权限 if (QP_Session_Session::get('login_priv') != 1) { return true; } // 得到配置 $privcfg = QP_Sys::config('privconfig'); // 如果不使用权限则永远返回 true if (!$privcfg['enable']) { return true; } // 判断是否在全局访问的资源中 $allRes = strtolower($controller . '_*'); $currentRes = strtolower($controller . '_' . $action); if (in_array($currentRes, $privcfg['allow']) || in_array($allRes, $privcfg['allow'])) { return true; } // 得到用户所在的组的所有权限 $userModel = new Model_User(); $userInfo = $userModel->userinfo($userid); $privModel = new Model_Priv(); $resourceArr = $privModel->getResource($userInfo['groupid']); // 判断是否在权限组中 return in_array($currentRes, $resourceArr) || in_array($allRes, $resourceArr); }
/** * 得到用户信息 * * @param unknown_type $userid * @param unknown_type $key 属性,如果为空则返回所有 * @param unknown_type $idtype 0:根据用户ID查询 1:根据用户名查询 */ public static function getInfo($userid, $key = '', $idtype = 0) { static $model = null; if (null === $model) { $model = new Model_User(); } $info = $model->userinfo($userid, $idtype); return $key != '' ? isset($info[$key]) ? $info[$key] : null : $info; }
/** * 我的资料设置 */ public function indexAction() { $userModel = new Model_User(); if ($this->request->isPost()) { // 更新资料 $post = $this->request->getPost(); $sets = array('passwd' => xss($post['password']), 'truename' => xss($post['truename']), 'email' => xss($post['email'])); $userModel->updateuser($sets, $this->userid); $userModel->saveSet('rtxAutoLogin', $post['rtxAutoLogin']); $this->outputJson(0); } // 得到用户信息 $this->view->userInfo = $userModel->userinfo($this->userid); $this->view->rtxAutoLogin = $userModel->getSet('rtxAutoLogin'); }
/** * 检测用户是否为 RTX 用户,并且设置了自动登录 * */ public function checkuserAction() { $username = $this->request->getGet('username'); $userModel = new Model_User(); $userInfo = $userModel->userinfo($username, 1); $ret = -1; // 0:成功 其它值失败 // 如果是RTX用户 if ($userInfo && $userInfo['usertype'] == 2) { // 是否设置了自动登录 $isAutoLogin = $userModel->getSet('rtxAutoLogin', $userInfo['userid']); if ($isAutoLogin) { $ret = $userModel->login($userInfo['username'], $userInfo['passwd'], 1); } } $this->outputJson($ret); }
/** * 添加邀请 * * @param unknown_type $bugid BUGid * @param unknown_type $userid 当前操作用户ID * @param unknown_type $ivtUsers 邀请用户名或用户ID,如:"name1,name2" 或 "123,456" * @param unknown_type $opt 操作选择对应`quickbug_bug_invite`表中的 `opt` 字段 * @param unknown_type $ivtUserType 参数 $ivtUsers 的类型 0:用户名 1:用户ID */ public function addInvite($bugid, $userid, $ivtUsers, $opt, $ivtUserType = 0) { $nameArr = explode(';', $ivtUsers); if ($ivtUserType == 0) { // 用户名要选查询对应的UID $user = new Model_User(); foreach ($nameArr as $name) { $uinfo = $user->userinfo($name, 1); if ($uinfo) { // 插入到邀请表 $sets = array('bugid' => $bugid, 'userid' => $userid, 'ivtuserid' => $uinfo['userid'], 'opt' => $opt, 'dateline' => time()); $this->db->insert($this->inviteTable, $sets); } } } else { // id则直接插入 foreach ($nameArr as $ivtUid) { // 插入到邀请表 $sets = array('bugid' => $bugid, 'userid' => $userid, 'ivtuserid' => $ivtUid, 'opt' => $opt, 'dateline' => time()); $this->db->insert($this->inviteTable, $sets); } } return true; }