X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FProfile.php;h=d27faaf5cd7d08fcfad4ae655f12a845277dcab1;hb=073695b33c5f9c5d89d91958b09259c59e12dd98;hp=d779355202575618dac8bf2b98e593b513c92d00;hpb=f329d5c067f0b981fb100fafdf5ad484e5b828f7;p=friendica.git diff --git a/src/Model/Profile.php b/src/Model/Profile.php index d779355202..d27faaf5cd 100644 --- a/src/Model/Profile.php +++ b/src/Model/Profile.php @@ -35,6 +35,8 @@ use Friendica\Core\System; use Friendica\Core\Worker; use Friendica\Database\DBA; use Friendica\DI; +use Friendica\Network\HTTPClient\Client\HttpClientAccept; +use Friendica\Network\HTTPClient\Client\HttpClientOptions; use Friendica\Network\HTTPException; use Friendica\Protocol\Activity; use Friendica\Protocol\Diaspora; @@ -52,10 +54,10 @@ class Profile * * @param integer User ID * - * @return array Profile data + * @return array|bool Profile data or false on error * @throws \Exception */ - public static function getByUID($uid) + public static function getByUID(int $uid) { return DBA::selectFirst('profile', [], ['uid' => $uid]); } @@ -67,7 +69,7 @@ class Profile * @param int $id The contact owner ID * @param array $fields The selected fields * - * @return array Profile data for the ID + * @return array|bool Profile data for the ID or false on error * @throws \Exception */ public static function getById(int $uid, int $id, array $fields = []) @@ -79,7 +81,7 @@ class Profile * Returns profile data for the contact owner * * @param int $uid The User ID - * @param array $fields The fields to retrieve + * @param array|bool $fields The fields to retrieve or false on error * * @return array Array of profile data * @throws \Exception @@ -92,9 +94,9 @@ class Profile /** * Update a profile entry and distribute the changes if needed * - * @param array $fields - * @param integer $uid - * @return boolean + * @param array $fields Profile fields to update + * @param integer $uid User id + * @return boolean Whether update was successful */ public static function update(array $fields, int $uid): bool { @@ -134,8 +136,10 @@ class Profile /** * Publish a changed profile - * @param int $uid + * + * @param int $uid User id * @param bool $force Force publishing to the directory + * @return void */ public static function publishUpdate(int $uid, bool $force = false) { @@ -158,10 +162,9 @@ class Profile * Returns a formatted location string from the given profile array * * @param array $profile Profile array (Generated from the "profile" table) - * * @return string Location string */ - public static function formatLocation(array $profile) + public static function formatLocation(array $profile): string { $location = ''; @@ -218,7 +221,7 @@ class Profile public static function load(App $a, string $nickname, bool $show_contacts = true) { $profile = User::getOwnerDataByNick($nickname); - if (empty($profile)) { + if (!isset($profile['account_removed']) || $profile['account_removed']) { Logger::info('profile error: ' . DI::args()->getQueryString()); return []; } @@ -233,9 +236,9 @@ class Profile DI::page()['title'] = $profile['name'] . ' @ ' . DI::config()->get('config', 'sitename'); - if (!DI::pConfig()->get(local_user(), 'system', 'always_my_theme')) { + if (!local_user()) { $a->setCurrentTheme($profile['theme']); - $a->setCurrentMobileTheme(DI::pConfig()->get($a->getProfileOwner(), 'system', 'mobile_theme')); + $a->setCurrentMobileTheme(DI::pConfig()->get($a->getProfileOwner(), 'system', 'mobile_theme') ?? ''); } /* @@ -749,7 +752,7 @@ class Profile $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::httpClient()->get($basepath . '/magic'); + $serverret = DI::httpClient()->head($basepath . '/magic', [HttpClientOptions::ACCEPT_CONTENT => HttpClientAccept::HTML]); if ($serverret->isSuccess()) { Logger::info('Doing magic auth for visitor ' . $my_url . ' to ' . $magic_path); System::externalRedirect($magic_path); @@ -878,23 +881,17 @@ class Profile * * Used from within PCSS themes to set theme parameters. If there's a * profile_uid variable set in App, that is the "page owner" and normally their theme - * settings take precedence; unless a local user sets the "always_my_theme" - * system pconfig, which means they don't want to see anybody else's theme - * settings except their own while on this site. + * settings take precedence; unless a local user is logged in which means they don't + * want to see anybody else's theme settings except their own while on this site. * + * @param App $a * @return int user ID * - * @throws \Friendica\Network\HTTPException\InternalServerErrorException * @note Returns local_user instead of user ID if "always_my_theme" is set to true */ - public static function getThemeUid(App $a) + public static function getThemeUid(App $a): int { - $uid = !empty($a->getProfileOwner()) ? intval($a->getProfileOwner()) : 0; - if (local_user() && (DI::pConfig()->get(local_user(), 'system', 'always_my_theme') || !$uid)) { - return local_user(); - } - - return $uid; + return local_user() ?: $a->getProfileOwner(); } /**