|
|
|
|
@ -65,8 +65,8 @@ class User implements IUser { |
|
|
|
|
/** @var string */ |
|
|
|
|
private $home; |
|
|
|
|
|
|
|
|
|
/** @var int|null */ |
|
|
|
|
private $lastLogin; |
|
|
|
|
private ?int $lastLogin = null; |
|
|
|
|
private ?int $firstLogin = null; |
|
|
|
|
|
|
|
|
|
/** @var IAvatarManager */ |
|
|
|
|
private $avatarManager; |
|
|
|
|
@ -202,28 +202,42 @@ class User implements IUser { |
|
|
|
|
/** |
|
|
|
|
* returns the timestamp of the user's last login or 0 if the user did never |
|
|
|
|
* login |
|
|
|
|
* |
|
|
|
|
* @return int |
|
|
|
|
*/ |
|
|
|
|
public function getLastLogin() { |
|
|
|
|
public function getLastLogin(): int { |
|
|
|
|
if ($this->lastLogin === null) { |
|
|
|
|
$this->lastLogin = (int)$this->config->getUserValue($this->uid, 'login', 'lastLogin', 0); |
|
|
|
|
} |
|
|
|
|
return (int)$this->lastLogin; |
|
|
|
|
return $this->lastLogin; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* returns the timestamp of the user's last login or 0 if the user did never |
|
|
|
|
* login |
|
|
|
|
*/ |
|
|
|
|
public function getFirstLogin(): int { |
|
|
|
|
if ($this->firstLogin === null) { |
|
|
|
|
$this->firstLogin = (int)$this->config->getUserValue($this->uid, 'login', 'firstLogin', 0); |
|
|
|
|
} |
|
|
|
|
return $this->firstLogin; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* updates the timestamp of the most recent login of this user |
|
|
|
|
*/ |
|
|
|
|
public function updateLastLoginTimestamp() { |
|
|
|
|
public function updateLastLoginTimestamp(): bool { |
|
|
|
|
$previousLogin = $this->getLastLogin(); |
|
|
|
|
$firstLogin = $this->getFirstLogin(); |
|
|
|
|
$now = time(); |
|
|
|
|
$firstTimeLogin = $previousLogin === 0; |
|
|
|
|
$firstTimeLogin = $firstLogin === 0; |
|
|
|
|
|
|
|
|
|
if ($now - $previousLogin > 60) { |
|
|
|
|
$this->lastLogin = time(); |
|
|
|
|
$this->config->setUserValue( |
|
|
|
|
$this->uid, 'login', 'lastLogin', (string)$this->lastLogin); |
|
|
|
|
$this->lastLogin = $now; |
|
|
|
|
$this->config->setUserValue($this->uid, 'login', 'lastLogin', (string)$this->lastLogin); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ($firstTimeLogin) { |
|
|
|
|
$this->firstLogin = $now; |
|
|
|
|
$this->config->setUserValue($this->uid, 'login', 'firstLogin', (string)$this->firstLogin); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return $firstTimeLogin; |
|
|
|
|
|