use Exception;
use Friendica\App;
-use Friendica\Core\Config\Configuration;
+use Friendica\Core\Config\IConfiguration;
use Friendica\Core\Hook;
use Friendica\Core\PConfig;
use Friendica\Core\Session;
use Friendica\Core\System;
use Friendica\Database\Database;
use Friendica\Database\DBA;
+use Friendica\DI;
use Friendica\Model\User;
use Friendica\Network\HTTPException;
use Friendica\Util\DateTimeFormat;
*/
class Authentication
{
- /** @var Configuration */
+ /** @var IConfiguration */
private $config;
+ /** @var App\Mode */
+ private $mode;
/** @var App\BaseURL */
private $baseUrl;
/** @var L10n */
/**
* Authentication constructor.
*
- * @param Configuration $config
+ * @param IConfiguration $config
+ * @param App\Mode $mode
* @param App\BaseURL $baseUrl
* @param L10n $l10n
* @param Database $dba
* @param User\Cookie $cookie
* @param Session\ISession $session
*/
- public function __construct(Configuration $config, App\BaseURL $baseUrl, L10n $l10n, Database $dba, LoggerInterface $logger, User\Cookie $cookie, Session\ISession $session)
+ public function __construct(IConfiguration $config, App\Mode $mode, App\BaseURL $baseUrl, L10n $l10n, Database $dba, LoggerInterface $logger, User\Cookie $cookie, Session\ISession $session)
{
$this->config = $config;
+ $this->mode = $mode;
$this->baseUrl = $baseUrl;
$this->l10n = $l10n;
$this->dba = $dba;
$user['password'] ?? '',
$user['prvkey'] ?? '')) {
$this->logger->notice("Hash doesn't fit.", ['user' => $data->uid]);
- $this->session->delete();
+ $this->session->clear();
$this->baseUrl->redirect();
}
'addr' => $this->session->get('addr'),
'remote_addr' => $_SERVER['REMOTE_ADDR']]
);
- $this->session->delete();
+ $this->session->clear();
$this->baseUrl->redirect();
}
]
);
if (!$this->dba->isResult($user)) {
- $this->session->delete();
+ $this->session->clear();
$this->baseUrl->redirect();
}
* The week ensures that sessions will expire after some inactivity.
*/;
if ($this->session->get('remember')) {
- $a->getLogger()->info('Injecting cookie for remembered user ' . $user_record['nickname']);
+ $this->logger->info('Injecting cookie for remembered user ' . $user_record['nickname']);
$this->cookie->set($user_record['uid'], $user_record['password'], $user_record['prvkey']);
$this->session->remove('remember');
}
if ($login_initial) {
Hook::callAll('logged_in', $a->user);
- if ($a->module !== 'home' && $this->session->exists('return_path')) {
+ if (DI::module()->getName() !== 'home' && $this->session->exists('return_path')) {
$this->baseUrl->redirect($this->session->get('return_path'));
}
}
}
// Case 2: No valid 2FA session: redirect to code verification page
- if ($a->isAjax()) {
+ if ($this->mode->isAjax()) {
throw new HTTPException\ForbiddenException();
} else {
- $a->internalRedirect('2fa');
+ $this->baseUrl->redirect('2fa');
}
}
}