diff --git a/src/Model/Profile.php b/src/Model/Profile.php index 80775c9e86..147c1f3cab 100644 --- a/src/Model/Profile.php +++ b/src/Model/Profile.php @@ -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');