From: Michael Vogel <icarus@dabo.de>
Date: Sat, 28 Jul 2018 17:11:46 +0000 (+0200)
Subject: Missing stuff in "develop"? (#5516)
X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=36d4516e7a9e5954123a563a87b0a8e3ce97b788;p=friendica.git

Missing stuff in "develop"? (#5516)

* "post-type" replaces "bookmark" and "type"

* Removed some more type

* Added index to permission set

* The permission set is now stored

* The permission set is now removed upon expiry

* Post update now stores the permission set

* New file

* Permissions are now sorted

* The permission set is now used for item permissions

* Check for allow_cid, ... is superfluous. Checking for "private" is enough

* We query the permissionset

* Permissions are displayed correctly

* Changed index

* We don't store the permissions in the item table anymore

* Permission fields are now deprecated

* Reversed ...

* Postupdate now handles "postopts" as well

* Set deprecated fields to "null" if empty

* Postupdates are enabled again

* "post-type" replaces "bookmark" and "type"

* The permission set is now stored

* The permission set is now removed upon expiry

* Postupdate now handles "postopts" as well
---

diff --git a/src/Database/PostUpdate.php b/src/Database/PostUpdate.php
index 1d85e5fadc..fc0703fd95 100644
--- a/src/Database/PostUpdate.php
+++ b/src/Database/PostUpdate.php
@@ -262,8 +262,7 @@ class PostUpdate
 				$item['owner-id'] = Contact::getIdForURL($item["owner-link"], 0, false, $default);
 			}
 
-			if (!is_null($item['allow_cid']) && !is_null($item['allow_gid'])
-				&& !is_null($item['deny_cid']) && !is_null($item['deny_gid'])) {
+			if (empty($item['psid'])) {
 				$item['psid'] = PermissionSet::fetchIDForPost($item);
 			} else {
 				$item['allow_cid'] = null;
diff --git a/src/Model/Item.php b/src/Model/Item.php
index 77d63ca505..bc883aa3cc 100644
--- a/src/Model/Item.php
+++ b/src/Model/Item.php
@@ -16,6 +16,7 @@ use Friendica\Core\System;
 use Friendica\Core\Worker;
 use Friendica\Database\DBA;
 use Friendica\Model\Contact;
+use Friendica\Model\PermissionSet;
 use Friendica\Object\Image;
 use Friendica\Protocol\Diaspora;
 use Friendica\Protocol\OStatus;
diff --git a/src/Model/PermissionSet.php b/src/Model/PermissionSet.php
index f83f9ccb55..cbbde2ae0a 100644
--- a/src/Model/PermissionSet.php
+++ b/src/Model/PermissionSet.php
@@ -22,11 +22,6 @@ class PermissionSet extends BaseObject
 	 */
 	public static function fetchIDForPost(&$postarray)
 	{
-		if (is_null($postarray['allow_cid']) || is_null($postarray['allow_gid'])
-			|| is_null($postarray['deny_cid']) || is_null($postarray['deny_gid'])) {
-			return null;
-		}
-
 		$condition = ['uid' => $postarray['uid'],
 			'allow_cid' => self::sortPermissions(defaults($postarray, 'allow_cid', '')),
 			'allow_gid' => self::sortPermissions(defaults($postarray, 'allow_gid', '')),
diff --git a/src/Worker/Expire.php b/src/Worker/Expire.php
index efb2cb03db..e7aa572ddf 100644
--- a/src/Worker/Expire.php
+++ b/src/Worker/Expire.php
@@ -43,6 +43,11 @@ class Expire
 				if (!empty($row['psid']) && !DBA::exists('item', ['psid' => $row['psid']])) {
 					DBA::delete('permissionset', ['id' => $row['psid']]);
 				}
+				// When the permission set will be used in photo and events as well.
+				// this query here needs to be extended.
+				if (!empty($row['psid']) && !dba::exists('item', ['psid' => $row['psid']])) {
+					dba::delete('permissionset', ['id' => $row['psid']]);
+				}
 			}
 			DBA::close($rows);
 
diff --git a/update.php b/update.php
index 812f81faf2..257623ac74 100644
--- a/update.php
+++ b/update.php
@@ -258,3 +258,15 @@ function update_1278() {
 
 	return UPDATE_SUCCESS;
 }
+
+function update_1278() {
+	Config::set('system', 'maintenance', 1);
+	Config::set('system', 'maintenance_reason', L10n::t('%s: Updating post-type.', DBM::date().' '.date('e')));
+
+	Item::update(['post-type' => Item::PT_PAGE], ['bookmark' => true]);
+	Item::update(['post-type' => Item::PT_PERSONAL_NOTE], ['type' => 'note']);
+
+	Config::set('system', 'maintenance', 0);
+
+	return UPDATE_SUCCESS;
+}