![]() Server : LiteSpeed System : Linux premium84.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 User : claqxcrl ( 523) PHP Version : 8.1.32 Disable Function : NONE Directory : /home/claqxcrl/anfangola.com/wp-content/plugins/matomo/app/plugins/TwoFactorAuth/ |
<?php /** * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later */ namespace Piwik\Plugins\TwoFactorAuth; use Piwik\Common; use Piwik\Exception\NotYetInstalledException; use Piwik\Piwik; use Piwik\Session\SessionFingerprint; use Exception; use Piwik\SettingsPiwik; class Validator { /** * @var TwoFactorAuthentication */ private $twoFa; public function __construct(\Piwik\Plugins\TwoFactorAuth\TwoFactorAuthentication $twoFactorAuthentication) { $this->twoFa = $twoFactorAuthentication; } public function canUseTwoFa() { if (Common::isPhpCliMode() && (!defined('PIWIK_TEST_MODE') || !PIWIK_TEST_MODE)) { // eg when archiving or executing other commands return false; } if (!SettingsPiwik::isMatomoInstalled()) { return false; } return !Piwik::isUserIsAnonymous(); } public function checkCanUseTwoFa() { Piwik::checkUserIsNotAnonymous(); if (!SettingsPiwik::isMatomoInstalled()) { throw new NotYetInstalledException('Matomo is not set up yet'); } } public function check2FaIsRequired() { if (!$this->twoFa->isUserRequiredToHaveTwoFactorEnabled()) { throw new Exception('not available'); } } public function check2FaEnabled() { if (!\Piwik\Plugins\TwoFactorAuth\TwoFactorAuthentication::isUserUsingTwoFactorAuthentication(Piwik::getCurrentUserLogin())) { throw new Exception('not available'); } } public function check2FaNotEnabled() { if (\Piwik\Plugins\TwoFactorAuth\TwoFactorAuthentication::isUserUsingTwoFactorAuthentication(Piwik::getCurrentUserLogin())) { throw new Exception('not available'); } } public function checkVerified2FA() { $sessionFingerprint = $this->getSessionFingerPrint(); if (!$sessionFingerprint->hasVerifiedTwoFactor()) { throw new Exception('not available'); } } public function checkNotVerified2FAYet() { $sessionFingerprint = $this->getSessionFingerPrint(); if ($sessionFingerprint->hasVerifiedTwoFactor()) { throw new Exception('not available'); } } private function getSessionFingerPrint() { return new SessionFingerprint(); } }