Raise an Exception when Profile::load is profided the system user nickname

This commit is contained in:
Hypolite Petovan 2021-08-24 05:54:15 -04:00
parent e155821d7a
commit 8f0e36d617
1 changed files with 13 additions and 4 deletions

View File

@ -35,6 +35,7 @@ use Friendica\Core\System;
use Friendica\Core\Worker;
use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Network\HTTPException;
use Friendica\Protocol\Activity;
use Friendica\Protocol\Diaspora;
use Friendica\Util\DateTimeFormat;
@ -204,11 +205,13 @@ class Profile
* the theme is chosen before the _init() function of a theme is run, which will usually
* load a lot of theme-specific content
*
* @param App $a
* @param string $nickname string
*
* @param App $a
* @param string $nickname string
* @param bool $show_contacts
* @return array Profile
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*
* @throws HTTPException\NotFoundException
* @throws HTTPException\InternalServerErrorException
* @throws \ImagickException
*/
public static function load(App $a, string $nickname, bool $show_contacts = true)
@ -219,6 +222,12 @@ class Profile
return [];
}
// System user, aborting
if ($profile['uid'] === 0) {
DI::logger()->warning('System user found in Profile::load', ['nickname' => $nickname, 'callstack' => System::callstack(20)]);
throw new HTTPException\NotFoundException(DI::l10n()->t('User not found.'));
}
$a->setProfileOwner($profile['uid']);
DI::page()['title'] = $profile['name'] . ' @ ' . DI::config()->get('config', 'sitename');