/** * Settings page for the user - allow activating / disabling Google Authenticator and to generate secrets * * @return string * @throws \Exception * @throws \Piwik\NoAccessException */ public function settings() { Piwik::checkUserIsNotAnonymous(); $view = new View('@GoogleAuthenticator/settings'); $this->setGeneralVariablesView($view); $googleAuth = new PHPGangsta\GoogleAuthenticator(); $storage = new Storage(Piwik::getCurrentUserLogin()); $view->activated = $view->disabled = false; if (Common::getRequestVar('activate', 0, 'int')) { $storage->activate(); $view->activated = true; } if (Common::getRequestVar('disable', 0, 'int')) { $storage->deactivate(); $view->disabled = true; } $secret = $storage->getSecret(); $view->showSetUp = Common::getRequestVar('setup', 0, 'int'); $view->googleAuthIsActive = $storage->isActive(); $view->googleAuthSecret = $secret; $view->googleAuthImage = $googleAuth->getQRCodeGoogleUrl(Piwik::getCurrentUserLogin(), $secret, 'Piwik - ' . Url::getCurrentHost()); return $view->render(); }