public function get_user_info() { $this->db = $this->getDB($this->input['access_token']); if ($this->input['access_token']) { $sql = 'SELECT * FROM ' . $this->dbname . DB_PREFIX . 'user_login WHERE token = "' . $this->input['access_token'] . '"'; $user = $this->db->query_first($sql); if (!$user) { $this->erroroutput(NO_ACCESS_TOKEN); } $token_expired = defined('TOKEN_EXPIRED') ? TOKEN_EXPIRED : 3600; if ($user['login_time'] < TIMENOW - $token_expired) { $sql = 'UPDATE ' . $this->dbname . DB_PREFIX . 'user_login SET login_time = ' . TIMENOW . ' WHERE token="' . $this->input['access_token'] . '"'; $this->db->query($sql); //删除过期会话 $sql = 'DELETE FROM ' . $this->dbname . DB_PREFIX . 'user_login WHERE login_time < ' . (TIMENOW - $token_expired); $this->db->query($sql); } if ($user['user_id'] && $this->iscp) { //$user['slave_org'] = explode(',', $user['slave_org']); //非管理型用户加在权限 if ($user['group_type'] > MAX_ADMIN_TYPE && $user['slave_group']) { $app_uniqueid = $this->input['app_uniqueid']; $complex = hg_check_prms($user); //合并多角色用户权限 $user['prms'] = merge_user_prms($complex); } } } if (!$user) { if ($this->input['appid'] && $this->input['appkey']) { $appinfo = $this->verify_appkey($this->input['appid'], $this->input['appkey']); $user_name = $appinfo['display_name'] ? $appinfo['display_name'] : $appinfo['custom_name']; $user = array('user_id' => 0, 'user_name' => $user_name, 'group_type' => 9999999999, 'appid' => $appinfo['appid'], 'display_name' => $user_name, 'visit_client' => $appinfo['mobile'], 'expire_time' => $appinfo['expire_time']); } else { if (!DEBUG_MODE) { $this->erroroutput(NO_APP_INFO); } } } //判断当期那用户表里面的字段(是否是第一次登陆,如果是就提示必须修改密码 /******************************** if($user['is_first_login']) { $this->errorOutput(YOU_MUST_MODIFY_PASSWORD_FIRST); } ********************************/ if ($user['user_id'] > 0 && ($this->input['isextend'] || defined('IS_EXTEND') && IS_EXTEND)) { $user['extend'] = $this->getUserExtendInfo($user['user_id']); $sql = 'SELECT avatar FROM ' . DB_PREFIX . 'admin WHERE id = ' . $user['user_id']; $avatar = $this->db->query_first($sql); if ($avatar = unserialize($avatar['avatar'])) { $user['avatar'] = $avatar; } } $this->addItem($user); $this->output(); }
public function get_user_prms() { $role_id = urldecode($this->input['role_id']); if (!$role_id) { return; } $prms = hg_update_role_prms($role_id); $prms = merge_user_prms($prms); $apps = @array_keys($prms['app_prms']); if ($apps) { $apps = implode('","', $apps); $sql = 'SELECT bundle,name FROM ' . DB_PREFIX . 'apps WHERE bundle IN("' . $apps . '")'; $query = $this->db->query($sql); $apps = array(); while ($row = $this->db->fetch_array($query)) { $apps[$row['bundle']] = $row['name']; } } require_once ROOT_PATH . 'lib/class/publishconfig.class.php'; $publishconfig = new publishconfig(); $publish_sites = $publish_columns = array(); if ($prms['site_prms']) { $publish_sites = $publishconfig->get_sites(); $prms['site_prms'] = array_intersect_key($publish_sites, array_flip($prms['site_prms'])); } if ($prms['publish_prms']) { $column_ids = implode(',', $prms['publish_prms']); $publish_columns = $publishconfig->get_columnname_by_ids('*', $column_ids); $prms['publish_prms'] = $publish_columns; } if ($prms['app_prms']) { foreach ($prms['app_prms'] as $k => $v) { if ($prms['app_prms'][$k]['action']) { $prms['app_prms'][$k]['action'] = array_intersect_key($this->settings['auth_op'], array_flip($prms['app_prms'][$k]['action'])); } $prms['app_prms'][$k]['app_name'] = $apps[$k]; } } $this->addItem($prms); $this->output(); }