addType('uid', 'string'); $this->addType('loginName', 'string'); $this->addType('password', 'string'); $this->addType('passwordHash', 'string'); $this->addType('name', 'string'); $this->addType('token', 'string'); $this->addType('type', 'int'); $this->addType('remember', 'int'); $this->addType('lastActivity', 'int'); $this->addType('lastCheck', 'int'); $this->addType('scope', 'string'); $this->addType('expires', 'int'); $this->addType('publicKey', 'string'); $this->addType('privateKey', 'string'); $this->addType('version', 'int'); $this->addType('passwordInvalid', 'bool'); } public function getId(): int { return $this->id; } public function getUID(): string { return $this->uid; } /** * Get the login name used when generating the token * * @return string */ public function getLoginName(): string { return parent::getLoginName(); } /** * Get the (encrypted) login password */ public function getPassword(): ?string { return parent::getPassword(); } public function jsonSerialize(): array { return [ 'id' => $this->id, 'name' => $this->name, 'lastActivity' => $this->lastActivity, 'type' => $this->type, 'scope' => $this->getScopeAsArray() ]; } /** * Get the timestamp of the last password check * * @return int */ public function getLastCheck(): int { return parent::getLastCheck(); } /** * Get the timestamp of the last password check */ public function setLastCheck(int $time): void { parent::setLastCheck($time); } public function getScope(): string { $scope = parent::getScope(); if ($scope === null) { return ''; } return $scope; } public function getScopeAsArray(): array { $scope = json_decode($this->getScope(), true); if (!$scope) { return [ IToken::SCOPE_FILESYSTEM => true ]; } return $scope; } public function setScope(array|string|null $scope): void { if (is_array($scope)) { parent::setScope(json_encode($scope)); } else { parent::setScope((string)$scope); } } public function getName(): string { return parent::getName(); } public function setName(string $name): void { parent::setName($name); } public function getRemember(): int { return parent::getRemember(); } public function setToken(string $token): void { parent::setToken($token); } public function setPassword(?string $password = null): void { parent::setPassword($password); } public function setExpires($expires): void { parent::setExpires($expires); } /** * @return int|null */ public function getExpires() { return parent::getExpires(); } public function setPasswordInvalid(bool $invalid) { parent::setPasswordInvalid($invalid); } public function wipe(): void { parent::setType(IToken::WIPE_TOKEN); } }