Merge pull request #9161 from MrPetovan/bug/9140-private-note-self-only

Add a self-only ACL block to personal notes jot
This commit is contained in:
Michael Vogel 2020-09-08 03:57:11 +02:00 committed by GitHub
commit 065ab017c7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 27 additions and 27 deletions

View File

@ -1137,28 +1137,11 @@ function status_editor(App $a, $x, $notes_cid = 0, $popup = false)
$jotplugins = ''; $jotplugins = '';
Hook::callAll('jot_tool', $jotplugins); Hook::callAll('jot_tool', $jotplugins);
// Private/public post links for the non-JS ACL form
$private_post = 1;
if (!empty($_REQUEST['public'])) {
$private_post = 0;
}
$query_str = DI::args()->getQueryString(); $query_str = DI::args()->getQueryString();
if (strpos($query_str, 'public=1') !== false) { if (strpos($query_str, 'public=1') !== false) {
$query_str = str_replace(['?public=1', '&public=1'], ['', ''], $query_str); $query_str = str_replace(['?public=1', '&public=1'], ['', ''], $query_str);
} }
/*
* I think $a->query_string may never have ? in it, but I could be wrong
* It looks like it's from the index.php?q=[etc] rewrite that the web
* server does, which converts any ? to &, e.g. suggest&ignore=61 for suggest?ignore=61
*/
if (strpos($query_str, '?') === false) {
$public_post_link = '?public=1';
} else {
$public_post_link = '&public=1';
}
// $tpl = Renderer::replaceMacros($tpl,array('$jotplugins' => $jotplugins)); // $tpl = Renderer::replaceMacros($tpl,array('$jotplugins' => $jotplugins));
$tpl = Renderer::getMarkupTemplate("jot.tpl"); $tpl = Renderer::getMarkupTemplate("jot.tpl");
@ -1212,11 +1195,6 @@ function status_editor(App $a, $x, $notes_cid = 0, $popup = false)
// ACL permissions box // ACL permissions box
'$acl' => $x['acl'], '$acl' => $x['acl'],
'$group_perms' => DI::l10n()->t('Post to Groups'),
'$contact_perms' => DI::l10n()->t('Post to Contacts'),
'$private' => DI::l10n()->t('Private post'),
'$is_private' => $private_post,
'$public_link' => $public_post_link,
//jot nav tab (used in some themes) //jot nav tab (used in some themes)
'$message' => DI::l10n()->t('Message'), '$message' => DI::l10n()->t('Message'),

View File

@ -55,7 +55,7 @@ function notes_content(App $a, $update = false)
'default_location' => $a->user['default-location'], 'default_location' => $a->user['default-location'],
'nickname' => $a->user['nickname'], 'nickname' => $a->user['nickname'],
'lockstate' => 'lock', 'lockstate' => 'lock',
'acl' => '', 'acl' => \Friendica\Core\ACL::getSelfOnlyHTML(local_user(), DI::l10n()->t('Personal notes are visible only by yourself.')),
'bang' => '', 'bang' => '',
'visitor' => 'block', 'visitor' => 'block',
'profile_uid' => local_user(), 'profile_uid' => local_user(),

View File

@ -987,8 +987,6 @@ function photos_content(App $a)
'$uploadurl' => $ret['post_url'], '$uploadurl' => $ret['post_url'],
// ACL permissions box // ACL permissions box
'$group_perms' => DI::l10n()->t('Show to Groups'),
'$contact_perms' => DI::l10n()->t('Show to Contacts'),
'$return_path' => DI::args()->getQueryString(), '$return_path' => DI::args()->getQueryString(),
]); ]);
@ -1352,8 +1350,6 @@ function photos_content(App $a)
'$delete' => DI::l10n()->t('Delete Photo'), '$delete' => DI::l10n()->t('Delete Photo'),
// ACL permissions box // ACL permissions box
'$group_perms' => DI::l10n()->t('Show to Groups'),
'$contact_perms' => DI::l10n()->t('Show to Contacts'),
'$return_path' => DI::args()->getQueryString(), '$return_path' => DI::args()->getQueryString(),
]); ]);
} }

View File

@ -83,6 +83,27 @@ class ACL
return $o; return $o;
} }
/**
* 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);
$tpl = Renderer::getMarkupTemplate('acl/self_only.tpl');
$o = Renderer::replaceMacros($tpl, [
'$selfPublicContactId' => $selfPublicContactId,
'$explanation' => $explanation,
]);
return $o;
}
/** /**
* Return the default permission of the provided user array * Return the default permission of the provided user array
* *

View File

@ -0,0 +1,5 @@
<input type="hidden" name="contact_allow" value="{{$selfPublicContactId}}">
<input type="hidden" name="group_allow" value="">
<input type="hidden" name="contact_deny" value="">
<input type="hidden" name="group_deny" value="">
<div class="alert alert-info" role="alert"><p>{{$explanation}}</p></div>