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;
* 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)
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');
* By now, the contact block isn't shown, when a different profile is given
* But: When this profile was on the same server, then we could display the contacts
*/
- DI::page()['aside'] .= self::sidebar($profile, $block, $show_contacts);
+ DI::page()['aside'] .= self::getVCardHtml($profile, $block, $show_contacts);
return $profile;
}
* @hooks 'profile_sidebar'
* array $arr
*/
- private static function sidebar(array $profile, bool $block, bool $show_contacts)
+ public static function getVCardHtml(array $profile, bool $block, bool $show_contacts)
{
$o = '';
$location = false;
}
if (!$block && $show_contacts) {
- $contact_block = ContactBlock::getHTML($profile);
+ $contact_block = ContactBlock::getHTML($profile, local_user());
if (is_array($profile) && !$profile['hide-friends']) {
$contact_count = DBA::count('contact', [
$magic_path = $basepath . '/magic' . '?owa=1&dest=' . $dest . '&' . $addr_request;
// We have to check if the remote server does understand /magic without invoking something
- $serverret = DI::httpRequest()->get($basepath . '/magic');
+ $serverret = DI::httpClient()->get($basepath . '/magic');
if ($serverret->isSuccess()) {
Logger::log('Doing magic auth for visitor ' . $my_url . ' to ' . $magic_path, Logger::DEBUG);
System::externalRedirect($magic_path);