From c4267bbca0c924981735a691ced293d86b548ed3 Mon Sep 17 00:00:00 2001
From: Hypolite Petovan <hypolite@mrpetovan.com>
Date: Mon, 7 Sep 2020 19:27:23 -0400
Subject: [PATCH 1/3] Remove unused jot.tpl template variables

---
 include/conversation.php | 22 ----------------------
 mod/photos.php           |  4 ----
 2 files changed, 26 deletions(-)

diff --git a/include/conversation.php b/include/conversation.php
index 64c8228ff9..14b1f548f8 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -1137,28 +1137,11 @@ function status_editor(App $a, $x, $notes_cid = 0, $popup = false)
 	$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();
 	if (strpos($query_str, 'public=1') !== false) {
 		$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::getMarkupTemplate("jot.tpl");
 
@@ -1212,11 +1195,6 @@ function status_editor(App $a, $x, $notes_cid = 0, $popup = false)
 
 		// ACL permissions box
 		'$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)
 		'$message' => DI::l10n()->t('Message'),
diff --git a/mod/photos.php b/mod/photos.php
index b00663df3a..65e8651b20 100644
--- a/mod/photos.php
+++ b/mod/photos.php
@@ -987,8 +987,6 @@ function photos_content(App $a)
 			'$uploadurl' => $ret['post_url'],
 
 			// ACL permissions box
-			'$group_perms' => DI::l10n()->t('Show to Groups'),
-			'$contact_perms' => DI::l10n()->t('Show to Contacts'),
 			'$return_path' => DI::args()->getQueryString(),
 		]);
 
@@ -1352,8 +1350,6 @@ function photos_content(App $a)
 				'$delete' => DI::l10n()->t('Delete Photo'),
 
 				// ACL permissions box
-				'$group_perms' => DI::l10n()->t('Show to Groups'),
-				'$contact_perms' => DI::l10n()->t('Show to Contacts'),
 				'$return_path' => DI::args()->getQueryString(),
 			]);
 		}

From 5f5b97dad6dc190803c4d3d30a17ac300eb4b275 Mon Sep 17 00:00:00 2001
From: Hypolite Petovan <hypolite@mrpetovan.com>
Date: Mon, 7 Sep 2020 19:27:32 -0400
Subject: [PATCH 2/3] Create self-only ACL template and helper method

---
 src/Core/ACL.php                 | 21 +++++++++++++++++++++
 view/templates/acl/self_only.tpl |  5 +++++
 2 files changed, 26 insertions(+)
 create mode 100644 view/templates/acl/self_only.tpl

diff --git a/src/Core/ACL.php b/src/Core/ACL.php
index 4df15dc536..5f69d78b68 100644
--- a/src/Core/ACL.php
+++ b/src/Core/ACL.php
@@ -83,6 +83,27 @@ class ACL
 		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
 	 *
diff --git a/view/templates/acl/self_only.tpl b/view/templates/acl/self_only.tpl
new file mode 100644
index 0000000000..d1c5a00de8
--- /dev/null
+++ b/view/templates/acl/self_only.tpl
@@ -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>
\ No newline at end of file

From 5730da264bfbc33f7bcb2581369aef94da94086d Mon Sep 17 00:00:00 2001
From: Hypolite Petovan <hypolite@mrpetovan.com>
Date: Mon, 7 Sep 2020 19:27:51 -0400
Subject: [PATCH 3/3] Add a self-only ACL block to personal notes jot

---
 mod/notes.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

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