* @link https://www.oxidmodule.com */ declare(strict_types=1); namespace D3\Totp\Modules\Application\Model; use D3\Totp\Application\Model\d3totp; use D3\Totp\Application\Model\d3totp_conf; use OxidEsales\Eshop\Core\Registry; use OxidEsales\Eshop\Core\Session; class d3_totp_user extends d3_totp_user_parent { public function logout() { $return = parent::logout(); $this->d3TotpGetSession()->deleteVariable(d3totp_conf::SESSION_AUTH); $this->d3TotpGetSession()->deleteVariable(d3totp_conf::SESSION_CURRENTUSER); $this->d3TotpGetSession()->deleteVariable(d3totp_conf::SESSION_ADMIN_AUTH); $this->d3TotpGetSession()->deleteVariable(d3totp_conf::SESSION_ADMIN_CURRENTUSER); return $return; } /** * @return d3totp */ public function d3getTotp(): d3totp { return oxNew(d3totp::class); } /** * @return Session */ public function d3TotpGetSession(): Session { return Registry::getSession(); } public function d3getSessionedTotp(): d3totp { $totp = $this->d3getTotp(); $this->d3TotpGetSession()->setVariable(d3totp_conf::OTP_SESSION_VARNAME, $totp); return $totp; } /** * @return string|null */ public function d3TotpGetCurrentUser(): ?string { return $this->isAdmin() ? ($this->d3TotpGetSession()->hasVariable(d3totp_conf::SESSION_ADMIN_CURRENTUSER) ? $this->d3TotpGetSession()->getVariable(d3totp_conf::SESSION_ADMIN_CURRENTUSER) : $this->d3TotpGetSession()->getVariable(d3totp_conf::OXID_ADMIN_AUTH)) : ($this->d3TotpGetSession()->hasVariable(d3totp_conf::SESSION_CURRENTUSER) ? $this->d3TotpGetSession()->getVariable(d3totp_conf::SESSION_CURRENTUSER) : $this->d3TotpGetSession()->getVariable(d3totp_conf::OXID_FRONTEND_AUTH)); } }