]> git.mxchange.org Git - friendica.git/blobdiff - src/Model/Profile.php
Replace reference to post plink by author base URL
[friendica.git] / src / Model / Profile.php
index a1690648fc9e9475d29a706373db9e0f59a0496d..c1a350673e1bafe995bcec7719491f42fa6e0f80 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2010-2022, the Friendica project
+ * @copyright Copyright (C) 2010-2023, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
@@ -37,6 +37,7 @@ use Friendica\DI;
 use Friendica\Network\HTTPClient\Client\HttpClientAccept;
 use Friendica\Network\HTTPClient\Client\HttpClientOptions;
 use Friendica\Network\HTTPException;
+use Friendica\Network\HTTPException\InternalServerErrorException;
 use Friendica\Protocol\Activity;
 use Friendica\Protocol\Diaspora;
 use Friendica\Security\PermissionSet\Entity\PermissionSet;
@@ -93,10 +94,11 @@ class Profile
        /**
         * Update a profile entry and distribute the changes if needed
         *
-        * @param array $fields Profile fields to update
-        * @param integer $uid User id
+        * @param array   $fields Profile fields to update
+        * @param integer $uid    User id
         *
         * @return boolean Whether update was successful
+        * @throws \Exception
         */
        public static function update(array $fields, int $uid): bool
        {
@@ -116,10 +118,6 @@ class Profile
                        return false;
                }
 
-               if ($old_owner['name'] != $owner['name']) {
-                       User::update(['username' => $owner['name']], $uid);
-               }
-
                $profile_fields = ['postal-code', 'dob', 'prv_keywords', 'homepage'];
                foreach ($profile_fields as $field) {
                        if ($old_owner[$field] != $owner[$field]) {
@@ -334,7 +332,7 @@ class Profile
                if (!$local_user_is_self) {
                        if (!$visitor_is_authenticated) {
                                // Remote follow is only available for local profiles
-                               if (!empty($profile['nickname']) && strpos($profile_url, DI::baseUrl()->get()) === 0) {
+                               if (!empty($profile['nickname']) && strpos($profile_url, (string)DI::baseUrl()) === 0) {
                                        $follow_link = 'profile/' . $profile['nickname'] . '/remote_follow';
                                }
                        } else {
@@ -640,13 +638,13 @@ class Profile
                                        $istoday = true;
                                }
 
-                               $title = strip_tags(html_entity_decode(BBCode::convertForUriId($rr['uri-id'], $rr['summary']), ENT_QUOTES, 'UTF-8'));
+                               $title = BBCode::toPlaintext($rr['summary'], false);
 
                                if (strlen($title) > 35) {
                                        $title = substr($title, 0, 32) . '... ';
                                }
 
-                               $description = substr(strip_tags(BBCode::convertForUriId($rr['uri-id'], $rr['desc'])), 0, 32) . '... ';
+                               $description = BBCode::toPlaintext($rr['desc'], false) . '... ';
                                if (!$description) {
                                        $description = DI::l10n()->t('[No description]');
                                }
@@ -756,13 +754,13 @@ class Profile
                $query = rtrim(str_replace($addr_request, '', DI::args()->getQueryString()), '?&');
 
                // The other instance needs to know where to redirect.
-               $dest = urlencode(DI::baseUrl()->get() . '/' . $query);
+               $dest = urlencode(DI::baseUrl() . '/' . $query);
 
                // We need to extract the basebath from the profile url
                // to redirect the visitors '/magic' module.
                $basepath = Contact::getBasepath($contact['url']);
 
-               if ($basepath != DI::baseUrl()->get() && !strstr($dest, '/magic')) {
+               if ($basepath != DI::baseUrl() && !strstr($dest, '/magic')) {
                        $magic_path = $basepath . '/magic' . '?owa=1&dest=' . $dest . '&' . $addr_request;
 
                        // We have to check if the remote server does understand /magic without invoking something
@@ -795,14 +793,16 @@ class Profile
                $visitor = Contact::getById($cid);
 
                // Authenticate the visitor.
-               $_SESSION['authenticated'] = 1;
-               $_SESSION['visitor_id'] = $visitor['id'];
-               $_SESSION['visitor_handle'] = $visitor['addr'];
-               $_SESSION['visitor_home'] = $visitor['url'];
-               $_SESSION['my_url'] = $visitor['url'];
-               $_SESSION['remote_comment'] = $visitor['subscribe'];
+               DI::userSession()->setMultiple([
+                       'authenticated'  => 1,
+                       'visitor_id'     => $visitor['id'],
+                       'visitor_handle' => $visitor['addr'],
+                       'visitor_home'   => $visitor['url'],
+                       'my_url'         => $visitor['url'],
+                       'remote_comment' => $visitor['subscribe'],
+               ]);
 
-               DI::userSession()->setVisitorsContacts();
+               DI::userSession()->setVisitorsContacts($visitor['url']);
 
                $a->setContactId($visitor['id']);
 
@@ -870,7 +870,7 @@ class Profile
 
                $a->setContactId($arr['visitor']['id']);
 
-               DI::sysmsg()->addInfo(DI::l10n()->t('OpenWebAuth: %1$s welcomes %2$s', DI::baseUrl()->getHostname(), $visitor['name']));
+               DI::sysmsg()->addInfo(DI::l10n()->t('OpenWebAuth: %1$s welcomes %2$s', DI::baseUrl()->getHost(), $visitor['name']));
 
                Logger::info('OpenWebAuth: auth success from ' . $visitor['addr']);
        }