getMemberInfo($id); if ($result['code'] == 1) { $identity = new static(); $identity->setAttributes($result['data']); return $identity; } else { return null; } } /** * Finds an identity by the given token. * @param mixed $token the token to be looked for * @param mixed $type the type of the token. The value of this parameter depends on the implementation. * For example, [[\yii\filters\auth\HttpBearerAuth]] will set this parameter to be `yii\filters\auth\HttpBearerAuth`. * @return IdentityInterface the identity object that matches the given token. * Null should be returned if such an identity cannot be found * or the identity is not in an active state (disabled, deleted, etc.) */ public static function findIdentityByAccessToken($token, $type = null) { return null; } /** * Returns an ID that can uniquely identify a user identity. * @return string|int an ID that uniquely identifies a user identity. */ public function getId() { return $this->id; } /** * Returns a key that can be used to check the validity of a given identity ID. * * The key should be unique for each individual user, and should be persistent * so that it can be used to check the validity of the user identity. * * The space of such keys should be big enough to defeat potential identity attacks. * * This is required if [[User::enableAutoLogin]] is enabled. * @return string a key that is used to check the validity of a given identity ID. * @see validateAuthKey() */ public function getAuthKey() { return ''; } /** * Validates the given auth key. * * This is required if [[User::enableAutoLogin]] is enabled. * @param string $authKey the given auth key * @return bool whether the given auth key is valid. * @see getAuthKey() */ public function validateAuthKey($authKey) { return $this->getAuthKey() === $authKey; } /** * @return mixed */ public function getMt4user() { if ($this->_mt4user === null) { $api = new Mt4UserApi(); $mainLogin = $this->getMain_login(); if ($mainLogin != null) { $result = $api->getUserInfo($mainLogin); $this->_mt4user = !empty($result['data']) ? (array)$result['data'] : false; } } return $this->_mt4user; } public function switchMt4user($login) { $api = new MemberApi(); $loginArr = explode(',', $this->logins); if (in_array($login, $loginArr)) { $result = $api->switchMt4user($this->id, $login); if ($result['code'] == 1) { // 重置当前mt4user $this->_mt4user = null; $this->setMain_login($login); return true; } } return false; } /** * @return mixed */ public function getMain_login() { if ($this->_main_login == null) { $loginArr = explode(',', $this->logins); if (isset($loginArr[0])) { $this->_main_login = $loginArr[0]; } } return $this->_main_login; } /** * @param mixed $main_login */ public function setMain_login($main_login) { $this->_main_login = $main_login; } /** * 是否为管理员 * @return bool */ public function isHaveAdmin() { if (!empty($_COOKIE[self::ADMIN_LOGIN_ID_COOKIE])) { $id = (int) $_COOKIE[self::ADMIN_LOGIN_ID_COOKIE]; $api = new MemberApi(); $memberInfo = $api->getMemberInfo($id)['data']; if (!empty($memberInfo['type']) && $memberInfo['type'] == self::MEMBER_TYPE_ADMIN) { return true; } } return false; } }