]> git.mxchange.org Git - friendica.git/blobdiff - include/api.php
Merge pull request #10362 from tobiasd/2021.06-CHANGELOG
[friendica.git] / include / api.php
index df92e9960bce64e18adfb3315160290d7ef5b3e5..492d3d1cb7a7fabb4fb65782aff129c40b955f2f 100644 (file)
@@ -42,6 +42,7 @@ use Friendica\Model\Mail;
 use Friendica\Model\Notification;
 use Friendica\Model\Photo;
 use Friendica\Model\Post;
+use Friendica\Model\Profile;
 use Friendica\Model\User;
 use Friendica\Model\Verb;
 use Friendica\Network\HTTPException;
@@ -56,7 +57,6 @@ use Friendica\Network\HTTPException\UnauthorizedException;
 use Friendica\Object\Image;
 use Friendica\Protocol\Activity;
 use Friendica\Protocol\Diaspora;
-use Friendica\Security\BasicAuth;
 use Friendica\Security\FKOAuth1;
 use Friendica\Security\OAuth;
 use Friendica\Security\OAuth1\OAuthRequest;
@@ -95,9 +95,8 @@ function api_user()
                return $user;
        }
 
-       $user = BasicAuth::getCurrentUserID(false);
-       if (!empty($user)) {
-               return $user;
+       if (!empty($_SESSION['allow_api'])) {
+               return local_user();
        }
 
        return false;
@@ -117,11 +116,22 @@ function api_user()
  */
 function api_source()
 {
-       $application = OAuth::getCurrentApplicationToken();
-       if (empty($application)) {
-               $application = BasicAuth::getCurrentApplicationToken();
+       if (requestdata('source')) {
+               return requestdata('source');
+       }
+
+       // Support for known clients that doesn't send a source name
+       if (!empty($_SERVER['HTTP_USER_AGENT'])) {
+               if(strpos($_SERVER['HTTP_USER_AGENT'], "Twidere") !== false) {
+                       return "Twidere";
+               }
+
+               Logger::info(API_LOG_PREFIX . 'Unrecognized user-agent', ['module' => 'api', 'action' => 'source', 'http_user_agent' => $_SERVER['HTTP_USER_AGENT']]);
+       } else {
+               Logger::info(API_LOG_PREFIX . 'Empty user-agent', ['module' => 'api', 'action' => 'source']);
        }
-       return $application['name'] ?? 'api';
+
+       return "api";
 }
 
 /**
@@ -4543,12 +4553,7 @@ function api_account_update_profile_image($type)
        Contact::updateSelfFromUserID(api_user(), true);
 
        // Update global directory in background
-       $url = DI::baseUrl() . '/profile/' . DI::app()->user['nickname'];
-       if ($url && strlen(DI::config()->get('system', 'directory'))) {
-               Worker::add(PRIORITY_LOW, "Directory", $url);
-       }
-
-       Worker::add(PRIORITY_LOW, 'ProfileUpdate', api_user());
+       Profile::publishUpdate(api_user());
 
        // output for client
        if ($data) {
@@ -4599,11 +4604,7 @@ function api_account_update_profile($type)
                DBA::update('contact', ['about' => $_POST['description']], ['id' => $api_user['id']]);
        }
 
-       Worker::add(PRIORITY_LOW, 'ProfileUpdate', $local_user);
-       // Update global directory in background
-       if ($api_user['url'] && strlen(DI::config()->get('system', 'directory'))) {
-               Worker::add(PRIORITY_LOW, "Directory", $api_user['url']);
-       }
+       Profile::publishUpdate($local_user);
 
        return api_account_verify_credentials($type);
 }