]> git.mxchange.org Git - friendica.git/commitdiff
Renamed function, beginning to replace the "remote_user" function
authorMichael <heluecht@pirati.ca>
Sat, 28 Sep 2019 09:36:41 +0000 (09:36 +0000)
committerMichael <heluecht@pirati.ca>
Sat, 28 Sep 2019 09:36:41 +0000 (09:36 +0000)
boot.php
include/items.php
mod/photos.php
src/Content/Widget.php
src/Core/Session.php
src/Model/Item.php
src/Util/Security.php

index 6d09c647e9bd5630cde5e978f3499987eedb2828..3aca931492d2ac6f373ae82e55117c4086491327 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -416,19 +416,12 @@ function public_contact()
  */
 function remote_user($uid = null)
 {
-       // You cannot be both local and remote.
-       // Unncommented by rabuzarus because remote authentication to local
-       // profiles wasn't possible anymore (2018-04-12).
-//     if (local_user()) {
-//             return false;
-//     }
-
        if (empty($_SESSION['authenticated'])) {
                return false;
        }
 
        if (!is_null($uid)) {
-               return Session::getVisitorContactIDForUserID($uid);
+               return Session::getRemoteContactID($uid);
        } elseif (is_null($uid) && !empty($_SESSION['visitor_id'])) {
                return intval($_SESSION['visitor_id']);
        }
index c5d8fc023d6558d7f3da77b2338522db16877a5b..ae686a32d9687070cb43732f458865f5ccf60551 100644 (file)
@@ -13,6 +13,7 @@ use Friendica\Core\PConfig;
 use Friendica\Core\Protocol;
 use Friendica\Core\Renderer;
 use Friendica\Core\System;
+use Friendica\Core\Session;
 use Friendica\Database\DBA;
 use Friendica\Model\Item;
 use Friendica\Protocol\DFRN;
@@ -362,7 +363,7 @@ function drop_item($id, $return = '')
        $contact_id = 0;
 
        // check if logged in user is either the author or owner of this item
-       if (remote_user($item['uid']) == $item['contact-id']) {
+       if (Session::getRemoteContactID($item['uid']) == $item['contact-id']) {
                $contact_id = $item['contact-id'];
        }
 
index daa31276f08671fc6b372827ba38637adc1d33a4..3bf49f37be9141adc55ae2882fcbb19f93139344 100644 (file)
@@ -904,7 +904,7 @@ function photos_content(App $a)
                return;
        }
 
-       $sql_extra = Security::getPermissionsSQLByUserId($owner_uid, $remote_contact);
+       $sql_extra = Security::getPermissionsSQLByUserId($owner_uid);
 
        $o = "";
 
index 90974427965538d5425637361e7c437a21bad759..09a5fc6345b75bbe01e25ff10b30ec195935a126 100644 (file)
@@ -11,6 +11,7 @@ use Friendica\Core\PConfig;
 use Friendica\Core\Protocol;
 use Friendica\Core\Renderer;
 use Friendica\Core\System;
+use Friendica\Core\Session;
 use Friendica\Database\DBA;
 use Friendica\Model\Contact;
 use Friendica\Model\FileTag;
@@ -339,7 +340,7 @@ class Widget
 
                $zcid = 0;
 
-               $cid = remote_user($profile_uid);
+               $cid = Session::getRemoteContactID($profile_uid);
 
                if (!$cid) {
                        if (Profile::getMyURL()) {
index 55d8e550def7425763b63fd23ca03b6590997912..db455d3a2592cb2bfbbb41342d4e7d2d467f4430 100644 (file)
@@ -212,7 +212,7 @@ class Session
         * @param integer $uid User ID
         * @return integer Contact ID of visitor for given user ID
         */
-       public static function getVisitorContactIDForUserID($uid)
+       public static function getRemoteContactID($uid)
        {
                if (empty($_SESSION['remote'][$uid])) {
                        return false;
index b5245acb562454fba613b6c5806d56f1f78eaac3..8e138c0cb3063d84c0ac9562d1d279465d2e8e52 100644 (file)
@@ -18,6 +18,7 @@ use Friendica\Core\PConfig;
 use Friendica\Core\Protocol;
 use Friendica\Core\Renderer;
 use Friendica\Core\System;
+use Friendica\Core\Session;
 use Friendica\Core\Worker;
 use Friendica\Database\DBA;
 use Friendica\Protocol\ActivityPub;
@@ -3263,7 +3264,7 @@ class Item extends BaseObject
        public static function getPermissionsSQLByUserId($owner_id)
        {
                $local_user = local_user();
-               $remote_user = remote_user($owner_id);
+               $remote_user = Session::getRemoteContactID($owner_id);
 
                /*
                 * Construct permissions
index aa6209f3245b60bf55381a600f0aacf555d824aa..1d7162ab8e9c59308fe26e2c727e2f22fafa14f5 100644 (file)
@@ -10,6 +10,7 @@ use Friendica\Database\DBA;
 use Friendica\Model\Contact;
 use Friendica\Model\Group;
 use Friendica\Model\User;
+use Friendica\Core\Session;
 
 /**
  * Secures that User is allow to do requests
@@ -33,7 +34,7 @@ class Security extends BaseObject
                        return true;
                }
 
-               if (remote_user($owner)) {
+               if (!empty(Session::getRemoteContactID($owner))) {
                        // use remembered decision and avoid a DB lookup for each and every display item
                        // DO NOT use this function if there are going to be multiple owners
                        // We have a contact-id for an authenticated remote user, this block determines if the contact
@@ -44,7 +45,7 @@ class Security extends BaseObject
                        } elseif ($verified === 1) {
                                return false;
                        } else {
-                               $cid = remote_user($owner);
+                               $cid = Session::getRemoteContactID($owner);
                                if (!$cid) {
                                        return false;
                                }
@@ -71,11 +72,10 @@ class Security extends BaseObject
                return false;
        }
 
-       /// @TODO $groups should be array
-       public static function getPermissionsSQLByUserId($owner_id, $remote_verified = false, $groups = null)
+       public static function getPermissionsSQLByUserId($owner_id)
        {
                $local_user = local_user();
-               $remote_user = remote_user($owner_id);
+               $remote_contact = Session::getRemoteContactID($owner_id);
 
                /*
                 * Construct permissions
@@ -93,48 +93,27 @@ class Security extends BaseObject
                if ($local_user && $local_user == $owner_id) {
                        $sql = '';
                /*
-                * Authenticated visitor. Unless pre-verified,
-                * check that the contact belongs to this $owner_id
-                * and load the groups the visitor belongs to.
-                * If pre-verified, the caller is expected to have already
-                * done this and passed the groups into this function.
+                * Authenticated visitor. Load the groups the visitor belongs to.
                 */
-               } elseif ($remote_user) {
-                       $cid = \Friendica\Core\Session::getVisitorContactIDForUserID($owner_id);
-
-                       /*
-                        * Authenticated visitor. Unless pre-verified,
-                        * check that the contact belongs to this $owner_id
-                        * and load the groups the visitor belongs to.
-                        * If pre-verified, the caller is expected to have already
-                        * done this and passed the groups into this function.
-                        */
-
-                       if (!$remote_verified) {
-                               if ($cid && DBA::exists('contact', ['id' => $cid, 'uid' => $owner_id, 'blocked' => false])) {
-                                       $remote_verified = true;
-                                       $groups = Group::getIdsByContactId($cid);
-                               }
-                       }
+               } elseif ($remote_contact) {
+                       $gs = '<<>>'; // should be impossible to match
 
-                       if ($remote_verified) {
-                               $gs = '<<>>'; // should be impossible to match
+                       $groups = Group::getIdsByContactId($remote_contact);
 
-                               if (is_array($groups)) {
-                                       foreach ($groups as $g) {
-                                               $gs .= '|<' . intval($g) . '>';
-                                       }
+                       if (is_array($groups)) {
+                               foreach ($groups as $g) {
+                                       $gs .= '|<' . intval($g) . '>';
                                }
-
-                               $sql = sprintf(
-                                       " AND (NOT (deny_cid REGEXP '<%d>' OR deny_gid REGEXP '%s')
-                                         AND (allow_cid REGEXP '<%d>' OR allow_gid REGEXP '%s' OR (allow_cid = '' AND allow_gid = ''))) ",
-                                       intval($cid),
-                                       DBA::escape($gs),
-                                       intval($cid),
-                                       DBA::escape($gs)
-                               );
                        }
+
+                       $sql = sprintf(
+                               " AND (NOT (deny_cid REGEXP '<%d>' OR deny_gid REGEXP '%s')
+                                 AND (allow_cid REGEXP '<%d>' OR allow_gid REGEXP '%s' OR (allow_cid = '' AND allow_gid = ''))) ",
+                               intval($remote_contact),
+                               DBA::escape($gs),
+                               intval($remote_contact),
+                               DBA::escape($gs)
+                       );
                }
                return $sql;
        }