<?php
/**
- * @copyright Copyright (C) 2020, Friendica
+ * @copyright Copyright (C) 2010-2022, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
use Friendica\BaseModule;
use Friendica\Core\Addon;
use Friendica\Core\Renderer;
-use Friendica\Core\Session;
use Friendica\DI;
use Friendica\Network\HTTPException;
-require_once 'boot.php';
-
/**
* This abstract module is meant to be extended by all modules that are reserved to administrator users.
*
abstract class BaseAdmin extends BaseModule
{
/**
+ * Checks admin access and throws exceptions if not logged-in administrator
+ *
* @param bool $interactive
+ * @return void
* @throws HTTPException\ForbiddenException
* @throws HTTPException\InternalServerErrorException
*/
public static function checkAdminAccess(bool $interactive = false)
{
- if (!local_user()) {
+ if (!DI::userSession()->getLocalUserId()) {
if ($interactive) {
- notice(DI::l10n()->t('Please login to continue.'));
- Session::set('return_path', DI::args()->getQueryString());
+ DI::sysmsg()->addNotice(DI::l10n()->t('Please login to continue.'));
+ DI::session()->set('return_path', DI::args()->getQueryString());
DI::baseUrl()->redirect('login');
} else {
throw new HTTPException\UnauthorizedException(DI::l10n()->t('Please login to continue.'));
}
}
- if (!is_site_admin()) {
+ if (!DI::app()->isSiteAdmin()) {
throw new HTTPException\ForbiddenException(DI::l10n()->t('You don\'t have access to administration pages.'));
}
- if (!empty($_SESSION['submanage'])) {
- throw new HTTPException\ForbiddenException(DI::l10n()->t('Submanaged account can\'t access the administation pages. Please log back in as the main account.'));
+ if (DI::userSession()->getSubManagedUserId()) {
+ throw new HTTPException\ForbiddenException(DI::l10n()->t('Submanaged account can\'t access the administration pages. Please log back in as the main account.'));
}
}
- public static function content(array $parameters = [])
+ protected function content(array $request = []): string
{
self::checkAdminAccess(true);
]],
'configuration' => [DI::l10n()->t('Configuration'), [
'site' => ['admin/site' , DI::l10n()->t('Site') , 'site'],
+ 'storage' => ['admin/storage' , DI::l10n()->t('Storage') , 'storage'],
'users' => ['admin/users' , DI::l10n()->t('Users') , 'users'],
'addons' => ['admin/addons' , DI::l10n()->t('Addons') , 'addons'],
'themes' => ['admin/themes' , DI::l10n()->t('Themes') , 'themes'],
'webfinger' => ['webfinger' , DI::l10n()->t('check webfinger') , 'webfinger'],
'itemsource' => ['admin/item/source' , DI::l10n()->t('Item Source') , 'itemsource'],
'babel' => ['babel' , DI::l10n()->t('Babel') , 'babel'],
+ 'debug/ap' => ['debug/ap' , DI::l10n()->t('ActivityPub Conversion') , 'debug/ap'],
]],
];