X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCore%2FACL.php;h=347e8278f9eca5d3d1b2ab762e756fb382a9660c;hb=06284e60073f374c1bd411e0bba6474a13c14f10;hp=1c32759cfd6c509c17c696b1e48177ba5292871c;hpb=0e05ff68686270d87447c570e28543a5bcc7e755;p=friendica.git diff --git a/src/Core/ACL.php b/src/Core/ACL.php index 1c32759cfd..347e8278f9 100644 --- a/src/Core/ACL.php +++ b/src/Core/ACL.php @@ -1,6 +1,6 @@ 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')); + $page->registerStylesheet(Theme::getPathForFile('js/friendica-tagsinput/friendica-tagsinput-typeahead.css')); - $o .= "' . PHP_EOL; + return $o; + } - if ($preselected) { - $o .= implode(', ', $receiverlist); - } + /** + * Returns a minimal ACL block for self-only permissions + * + * @param int $localUserId + * @param string $explanation + * @return string + * @throws \Friendica\Network\HTTPException\InternalServerErrorException + */ + public static function getSelfOnlyHTML(int $localUserId, string $explanation) + { + $selfPublicContactId = Contact::getPublicIdByUserId($localUserId); - Hook::callAll(DI::module()->getName() . '_post_' . $selname, $o); + $tpl = Renderer::getMarkupTemplate('acl/self_only.tpl'); + $o = Renderer::replaceMacros($tpl, [ + '$selfPublicContactId' => $selfPublicContactId, + '$explanation' => $explanation, + ]); return $o; } @@ -146,6 +154,7 @@ class ACL 'archive' => false, 'deleted' => false, 'pending' => false, + 'network' => Protocol::FEDERATED, 'rel' => [Contact::FOLLOWER, Contact::FRIEND] ], $condition), $params @@ -158,7 +167,7 @@ class ACL $acl_forums = Contact::selectToArray($fields, ['uid' => $user_id, 'self' => false, 'blocked' => false, 'archive' => false, 'deleted' => false, - 'pending' => false, 'contact-type' => Contact::TYPE_COMMUNITY], $params + 'network' => Protocol::FEDERATED, 'pending' => false, 'contact-type' => Contact::TYPE_COMMUNITY], $params ); $acl_contacts = array_merge($acl_forums, $acl_contacts); @@ -211,15 +220,14 @@ class ACL * Return the full jot ACL selector HTML * * @param Page $page - * @param array $user User array + * @param int $uid User ID * @param bool $for_federation * @param array $default_permissions Static defaults permission array: * [ * 'allow_cid' => [], * 'allow_gid' => [], * 'deny_cid' => [], - * 'deny_gid' => [], - * 'hidewall' => true/false + * 'deny_gid' => [] * ] * @param array $condition * @param string $form_prefix @@ -228,18 +236,20 @@ class ACL */ public static function getFullSelectorHTML( Page $page, - array $user = null, + int $uid = null, bool $for_federation = false, array $default_permissions = [], array $condition = [], $form_prefix = '' ) { - if (empty($user['uid'])) { + if (empty($uid)) { return ''; } static $input_group_id = 0; + $user = User::getById($uid); + $input_group_id++; $page->registerFooterScript(Theme::getPathForFile('asset/typeahead.js/dist/typeahead.bundle.js')); @@ -257,7 +267,6 @@ class ACL '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']) @@ -273,31 +282,21 @@ class ACL $jotnets_fields = []; if ($for_federation) { - $mail_enabled = false; - $pubmail_enabled = false; - if (function_exists('imap_open') && !DI::config()->get('system', 'imap_disabled')) { $mailacct = DBA::selectFirst('mailacct', ['pubmail'], ['`uid` = ? AND `server` != ""', $user['uid']]); if (DBA::isResult($mailacct)) { - $mail_enabled = true; - $pubmail_enabled = !empty($mailacct['pubmail']); - } - } - - if (!$default_permissions['hidewall']) { - if ($mail_enabled) { $jotnets_fields[] = [ 'type' => 'checkbox', 'field' => [ 'pubmail_enable', DI::l10n()->t('Post to Email'), - $pubmail_enabled + !empty($mailacct['pubmail']) ] ]; + } - - Hook::callAll('jot_networks', $jotnets_fields); } + Hook::callAll('jot_networks', $jotnets_fields); } $acl_contacts = self::getContactListByUserId($user['uid'], $condition); @@ -315,7 +314,7 @@ class ACL 'emailcc' => $form_prefix ? $form_prefix . '[emailcc]' : 'emailcc', ]; - $tpl = Renderer::getMarkupTemplate('acl_selector.tpl'); + $tpl = Renderer::getMarkupTemplate('acl/full_selector.tpl'); $o = Renderer::replaceMacros($tpl, [ '$public_title' => DI::l10n()->t('Public'), '$public_desc' => DI::l10n()->t('This content will be shown to all your followers and can be seen in the community pages and by anyone with its link.'), @@ -326,7 +325,6 @@ class ACL '$emailcc' => DI::l10n()->t('CC: email addresses'), '$emtitle' => DI::l10n()->t('Example: bob@example.com, mary@example.com'), '$jotnets_summary' => DI::l10n()->t('Connectors'), - '$jotnets_disabled_label' => DI::l10n()->t('Connectors disabled, since "%s" is enabled.', DI::l10n()->t('Hide your profile details from unknown viewers?')), '$visibility' => $visibility, '$acl_contacts' => $acl_contacts, '$acl_groups' => $acl_groups, @@ -337,7 +335,6 @@ class ACL '$group_deny' => implode(',', $default_permissions['deny_gid']), '$for_federation' => $for_federation, '$jotnets_fields' => $jotnets_fields, - '$user_hidewall' => $default_permissions['hidewall'], '$input_names' => $input_names, '$input_group_id' => $input_group_id, ]);