X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCore%2FACL.php;h=64e03d47190e752902d99351fbf191ba3ab789ac;hb=00756737b54e00dc5dc3c74ebc5c3e92a5dd97ff;hp=53e6c19691592243ce381b16766757ebf4273c05;hpb=461f7f4bb0f30df216a87ecb908c128552d19dbe;p=friendica.git diff --git a/src/Core/ACL.php b/src/Core/ACL.php index 53e6c19691..64e03d4719 100644 --- a/src/Core/ACL.php +++ b/src/Core/ACL.php @@ -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']) @@ -366,7 +381,7 @@ class ACL extends BaseObject } } - if (empty($default_permissions['hidewall'])) { + if (!$default_permissions['hidewall']) { if ($mail_enabled) { $jotnets_fields[] = [ 'type' => 'checkbox', @@ -410,7 +425,7 @@ class ACL extends BaseObject '$group_deny' => implode(',', $default_permissions['deny_gid']), '$for_federation' => $for_federation, '$jotnets_fields' => $jotnets_fields, - '$user_hidewall' => $default_permissions['hidewall'] ?? false, + '$user_hidewall' => $default_permissions['hidewall'], ]); return $o;