X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCore%2FACL.php;h=ec31ddb7cdc965803add2692a8b182d1a74ed57a;hb=1f42f5135119facba5ec19d8f081d4deb24b9947;hp=5cb24595704f0534c73b80e6e73fea9005fec18b;hpb=55e54bb9500f54bb075dcbc2054018de0969d9e7;p=friendica.git diff --git a/src/Core/ACL.php b/src/Core/ACL.php index 5cb2459570..ec31ddb7cd 100644 --- a/src/Core/ACL.php +++ b/src/Core/ACL.php @@ -23,15 +23,16 @@ class ACL extends BaseObject /** * Returns a select input tag with all the contact of the local user * - * @param string $selname Name attribute of the select input tag - * @param string $selclass Class attribute of the select input tag - * @param array $options Available options: - * - size: length of the select box - * - mutual_friends: Only used for the hook - * - single: Only used for the hook - * - exclude: Only used for the hook - * @param array $preselected Contact ID that should be already selected + * @param string $selname Name attribute of the select input tag + * @param string $selclass Class attribute of the select input tag + * @param array $options Available options: + * - size: length of the select box + * - mutual_friends: Only used for the hook + * - single: Only used for the hook + * - exclude: Only used for the hook + * @param array $preselected Contact ID that should be already selected * @return string + * @throws \Exception */ public static function getSuggestContactSelectHTML($selname, $selclass, array $options = [], array $preselected = []) { @@ -141,6 +142,7 @@ class ACL extends BaseObject * @param int $size Length of the select box * @param int $tabindex Select input tag tabindex attribute * @return string + * @throws \Exception */ public static function getMessageContactSelectHTML($selname, $selclass, array $preselected = [], $size = 4, $tabindex = null) { @@ -215,6 +217,7 @@ class ACL extends BaseObject * * @param array $user * @return array Hash of contact id lists + * @throws \Exception */ public static function getDefaultUserPermissions(array $user = null) { @@ -251,25 +254,24 @@ class ACL extends BaseObject * Return the full jot ACL selector HTML * * @param array $user User array - * @param array $default_permissions Static defaults permission array: ['allow_cid' => '', 'allow_gid' => '', 'deny_cid' => '', 'deny_gid' => ''] * @param bool $show_jotnets + * @param array $default_permissions Static defaults permission array: ['allow_cid' => '', 'allow_gid' => '', 'deny_cid' => '', 'deny_gid' => ''] * @return string + * @throws \Friendica\Network\HTTPException\InternalServerErrorException */ - public static function getFullSelectorHTML(array $user, $show_jotnets = false, array $default_permissions = []) + public static function getFullSelectorHTML(array $user = null, $show_jotnets = false, array $default_permissions = []) { // Defaults user permissions if (empty($default_permissions)) { $default_permissions = self::getDefaultUserPermissions($user); } - $jotnets = ''; + $jotnets_fields = []; if ($show_jotnets) { - $imap_disabled = !function_exists('imap_open') || Config::get('system', 'imap_disabled'); - $mail_enabled = false; $pubmail_enabled = false; - if (!$imap_disabled) { + if (function_exists('imap_open') && !Config::get('system', 'imap_disabled')) { $mailacct = DBA::selectFirst('mailacct', ['pubmail'], ['`uid` = ? AND `server` != ""', local_user()]); if (DBA::isResult($mailacct)) { $mail_enabled = true; @@ -279,14 +281,17 @@ class ACL extends BaseObject if (empty($default_permissions['hidewall'])) { if ($mail_enabled) { - $selected = $pubmail_enabled ? ' checked="checked"' : ''; - $jotnets .= '
' . L10n::t("Post to Email") . '
'; + $jotnets_fields[] = [ + 'type' => 'checkbox', + 'field' => [ + 'pubmail_enable', + L10n::t('Post to Email'), + $pubmail_enabled + ] + ]; } - Hook::callAll('jot_networks', $jotnets); - } else { - $jotnets .= L10n::t('Connectors disabled, since "%s" is enabled.', - L10n::t('Hide your profile details from unknown viewers?')); + Hook::callAll('jot_networks', $jotnets_fields); } } @@ -295,18 +300,21 @@ class ACL extends BaseObject '$showall' => L10n::t('Visible to everybody'), '$show' => L10n::t('show'), '$hide' => L10n::t('don\'t show'), - '$allowcid' => json_encode(defaults($default_permissions, 'allow_cid', '')), - '$allowgid' => json_encode(defaults($default_permissions, 'allow_gid', '')), - '$denycid' => json_encode(defaults($default_permissions, 'deny_cid', '')), - '$denygid' => json_encode(defaults($default_permissions, 'deny_gid', '')), + '$allowcid' => json_encode(defaults($default_permissions, 'allow_cid', [])), // we need arrays for Javascript since we call .remove() and .push() on this values + '$allowgid' => json_encode(defaults($default_permissions, 'allow_gid', [])), + '$denycid' => json_encode(defaults($default_permissions, 'deny_cid', [])), + '$denygid' => json_encode(defaults($default_permissions, 'deny_gid', [])), '$networks' => $show_jotnets, '$emailcc' => L10n::t('CC: email addresses'), '$emtitle' => L10n::t('Example: bob@example.com, mary@example.com'), - '$jotnets' => $jotnets, + '$jotnets_enabled' => empty($default_permissions['hidewall']), + '$jotnets_summary' => L10n::t('Connectors'), + '$jotnets_fields' => $jotnets_fields, + '$jotnets_disabled_label' => L10n::t('Connectors disabled, since "%s" is enabled.', L10n::t('Hide your profile details from unknown viewers?')), '$aclModalTitle' => L10n::t('Permissions'), '$aclModalDismiss' => L10n::t('Close'), '$features' => [ - 'aclautomention' => Feature::isEnabled($user['uid'], 'aclautomention') ? 'true' : 'false' + 'aclautomention' => !empty($user['uid']) && Feature::isEnabled($user['uid'], 'aclautomention') ? 'true' : 'false' ], ]); @@ -320,6 +328,7 @@ class ACL extends BaseObject * @param string $search Name or part of a name or nick * @param string $mode Search mode (e.g. "community") * @return array with the search results + * @throws \Friendica\Network\HTTPException\InternalServerErrorException */ public static function contactAutocomplete($search, $mode) {