Fix allow_cid variable type in mod/network
authorHypolite Petovan <hypolite@mrpetovan.com>
Sat, 2 Mar 2019 14:28:37 +0000 (09:28 -0500)
committerHypolite Petovan <hypolite@mrpetovan.com>
Sat, 2 Mar 2019 14:28:37 +0000 (09:28 -0500)
- Improve SQL query for network contacts
- Add missing query statement closure
- Addresses https://github.com/friendica/friendica/issues/6337#issuecomment-467111446

mod/network.php

index b5c218d..cdc887c 100644 (file)
@@ -539,20 +539,28 @@ function networkThreadedView(App $a, $update, $parent)
        $order = Strings::escapeTags(defaults($_GET, 'order', 'comment'));
        $nets  =        defaults($_GET, 'nets' , '');
 
+       $allowedCids = [];
        if ($cid) {
-               $default_permissions['allow_cid'] = [(int) $cid];
+               $allowedCids[] = (int) $cid;
+       } elseif ($nets) {
+               $condition = [
+                       'uid'     => local_user(),
+                       'network' => $nets,
+                       'self'    => false,
+                       'blocked' => false,
+                       'pending' => false,
+                       'archive' => false,
+                       'rel'     => [Contact::SHARING, Contact::FRIEND],
+               ];
+               $contactStmt = DBA::select('contact', ['id'], $condition);
+               while ($contact = DBA::fetch($contactStmt)) {
+                       $allowedCids[] = (int) $contact['id'];
+               }
+               DBA::close($contactStmt);
        }
 
-       if ($nets) {
-               $r = DBA::select('contact', ['id'], ['uid' => local_user(), 'network' => $nets], ['self' => false]);
-
-               $str = [];
-               while ($rr = DBA::fetch($r)) {
-                       $str[] = (int) $rr['id'];
-               }
-               if (strlen($str)) {
-                       $default_permissions['allow_cid'] = $str;
-               }
+       if (count($allowedCids)) {
+               $default_permissions['allow_cid'] = $allowedCids;
        }
 
        if (!$update && !$rawmode) {