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

View File

@ -35,6 +35,7 @@ use Friendica\Core\System;
use Friendica\Core\Worker; use Friendica\Core\Worker;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Network\HTTPException;
use Friendica\Protocol\Activity; use Friendica\Protocol\Activity;
use Friendica\Protocol\Diaspora; use Friendica\Protocol\Diaspora;
use Friendica\Util\DateTimeFormat; use Friendica\Util\DateTimeFormat;
@ -206,9 +207,11 @@ class Profile
* *
* @param App $a * @param App $a
* @param string $nickname string * @param string $nickname string
* * @param bool $show_contacts
* @return array Profile * @return array Profile
* @throws \Friendica\Network\HTTPException\InternalServerErrorException *
* @throws HTTPException\NotFoundException
* @throws HTTPException\InternalServerErrorException
* @throws \ImagickException * @throws \ImagickException
*/ */
public static function load(App $a, string $nickname, bool $show_contacts = true) public static function load(App $a, string $nickname, bool $show_contacts = true)
@ -219,6 +222,12 @@ class Profile
return []; 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']); $a->setProfileOwner($profile['uid']);
DI::page()['title'] = $profile['name'] . ' @ ' . DI::config()->get('config', 'sitename'); DI::page()['title'] = $profile['name'] . ' @ ' . DI::config()->get('config', 'sitename');