]> git.mxchange.org Git - friendica.git/blobdiff - src/Core/ACL.php
Merge pull request #7941 from MrPetovan/task/7889-api-post-contact-search
[friendica.git] / src / Core / ACL.php
index 0eb2ecc8b3e1123e584f936bf41e90b67b44d615..64e03d47190e752902d99351fbf191ba3ab789ac 100644 (file)
@@ -258,10 +258,20 @@ class ACL extends BaseObject
         */
        public static function getContactListByUserId(int $user_id)
        {
-               $acl_contacts = Contact::selectToArray(
-                       ['id', 'name', 'addr', 'micro'],
-                       ['uid' => $user_id, 'pending' => false, 'rel' => [Contact::FOLLOWER, Contact::FRIEND]]
+               $fields = ['id', 'name', 'addr', 'micro'];
+               $params = ['order' => ['name']];
+               $acl_contacts = Contact::selectToArray($fields,
+                       ['uid' => $user_id, 'self' => false, 'blocked' => false, 'archive' => false, 'deleted' => false,
+                       'pending' => false, 'rel' => [Contact::FOLLOWER, Contact::FRIEND]], $params
                );
+
+               $acl_forums = Contact::selectToArray($fields,
+                       ['uid' => $user_id, 'self' => false, 'blocked' => false, 'archive' => false, 'deleted' => false,
+                       'pending' => false, 'contact-type' => Contact::TYPE_COMMUNITY], $params
+               );
+
+               $acl_contacts = array_merge($acl_forums, $acl_contacts);
+
                array_walk($acl_contacts, function (&$value) {
                        $value['type'] = 'contact';
                });
@@ -325,6 +335,10 @@ class ACL extends BaseObject
         */
        public static function getFullSelectorHTML(Page $page, array $user = null, bool $for_federation = false, array $default_permissions = [])
        {
+               if (empty($user['uid'])) {
+                       return '';
+               }
+
                $page->registerFooterScript(Theme::getPathForFile('asset/typeahead.js/dist/typeahead.bundle.js'));
                $page->registerFooterScript(Theme::getPathForFile('js/friendica-tagsinput/friendica-tagsinput.js'));
                $page->registerStylesheet(Theme::getPathForFile('js/friendica-tagsinput/friendica-tagsinput.css'));
@@ -333,15 +347,16 @@ class ACL extends BaseObject
                // Defaults user permissions
                if (empty($default_permissions)) {
                        $default_permissions = self::getDefaultUserPermissions($user);
-               } else {
-                       $default_permissions = [
-                               'allow_cid' => $default_permissions['allow_cid'] ?? [],
-                               'allow_gid' => $default_permissions['allow_gid'] ?? [],
-                               'deny_cid'  => $default_permissions['deny_cid']  ?? [],
-                               'deny_gid'  => $default_permissions['deny_gid']  ?? [],
-                       ];
                }
 
+               $default_permissions = [
+                       'allow_cid' => $default_permissions['allow_cid'] ?? [],
+                       'allow_gid' => $default_permissions['allow_gid'] ?? [],
+                       'deny_cid'  => $default_permissions['deny_cid']  ?? [],
+                       'deny_gid'  => $default_permissions['deny_gid']  ?? [],
+                       'hidewall'  => $default_permissions['hidewall']  ?? false,
+               ];
+
                if (count($default_permissions['allow_cid'])
                        + count($default_permissions['allow_gid'])
                        + count($default_permissions['deny_cid'])
@@ -359,14 +374,14 @@ class ACL extends BaseObject
                        $pubmail_enabled = false;
 
                        if (function_exists('imap_open') && !Config::get('system', 'imap_disabled')) {
-                               $mailacct = DBA::selectFirst('mailacct', ['pubmail'], ['`uid` = ? AND `server` != ""', $user['รบid']]);
+                               $mailacct = DBA::selectFirst('mailacct', ['pubmail'], ['`uid` = ? AND `server` != ""', $user['uid']]);
                                if (DBA::isResult($mailacct)) {
                                        $mail_enabled = true;
                                        $pubmail_enabled = !empty($mailacct['pubmail']);
                                }
                        }
 
-                       if (empty($default_permissions['hidewall'])) {
+                       if (!$default_permissions['hidewall']) {
                                if ($mail_enabled) {
                                        $jotnets_fields[] = [
                                                'type' => 'checkbox',