X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCore%2FACL.php;h=0da636699e690d71116d823688cf0e6f2984e1ae;hb=e8929efbea071505aa583c4b8576f0bd13d06ea8;hp=f35889061dc17153429bb6e63aab8db59b36a182;hpb=d0cc0f1d8cf703b29172ad032db1d3cbfc73a43f;p=friendica.git diff --git a/src/Core/ACL.php b/src/Core/ACL.php index f35889061d..0da636699e 100644 --- a/src/Core/ACL.php +++ b/src/Core/ACL.php @@ -33,75 +33,73 @@ use Friendica\Model\Group; class ACL { /** - * Returns a select input tag with all the contact of the local user + * Returns a select input tag for private message recipient * - * @param string $selname Name attribute of the select input tag - * @param string $selclass Class attribute of the select input tag - * @param array $preselected Contact IDs that should be already selected - * @param int $size Length of the select box - * @param int $tabindex Select input tag tabindex attribute + * @param int $selected Existing recipien contact ID * @return string * @throws \Exception */ - public static function getMessageContactSelectHTML($selname, $selclass, array $preselected = [], $size = 4, $tabindex = null) + public static function getMessageContactSelectHTML(int $selected = null) { - $a = DI::app(); - $o = ''; - // When used for private messages, we limit correspondence to mutual DFRN/Friendica friends and the selector - // to one recipient. By default our selector allows multiple selects amongst all contacts. - $sql_extra = sprintf(" AND `rel` = %d ", intval(Contact::FRIEND)); - $sql_extra .= sprintf(" AND `network` IN ('%s' , '%s') ", Protocol::DFRN, Protocol::DIASPORA); - - $tabindex_attr = !empty($tabindex) ? ' tabindex="' . intval($tabindex) . '"' : ''; + $page = DI::page(); - $hidepreselected = ''; - if ($preselected) { - $sql_extra .= " AND `id` IN (" . implode(",", $preselected) . ")"; - $hidepreselected = ' style="display: none;"'; - } + $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')); + $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 +144,7 @@ class ACL 'archive' => false, 'deleted' => false, 'pending' => false, + 'network' => Protocol::FEDERATED, 'rel' => [Contact::FOLLOWER, Contact::FRIEND] ], $condition), $params @@ -158,7 +157,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); @@ -303,7 +302,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.'),