From b0f321f35ff2c1c2bef29386e2cc80443d89567f Mon Sep 17 00:00:00 2001 From: nathangray Date: Mon, 30 Mar 2020 09:35:59 -0600 Subject: [PATCH] * Api: Make sure share cleanup job doesn't remove shares just because of access rights --- api/src/Link/Sharing.php | 4 ++++ api/src/Sharing.php | 2 +- api/src/Vfs/Sharing.php | 5 ++++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/api/src/Link/Sharing.php b/api/src/Link/Sharing.php index 5dd79c5dde..3fe21df22f 100644 --- a/api/src/Link/Sharing.php +++ b/api/src/Link/Sharing.php @@ -126,6 +126,10 @@ class Sharing extends \EGroupware\Api\Sharing protected static function check_path($share) { list($app, $id) = explode('::', $share['share_path']); + if(!\EGroupware\Api\Link::$app_register[$app]) + { + \EGroupware\Api\Link::init_static(); + } return (boolean) \EGroupware\Api\Link::title($app, $id); } diff --git a/api/src/Sharing.php b/api/src/Sharing.php index e3c8745a37..5d5c5858dd 100644 --- a/api/src/Sharing.php +++ b/api/src/Sharing.php @@ -833,7 +833,7 @@ class Sharing if (!isset(self::$db)) self::$db = $GLOBALS['egw']->db; foreach(self::$db->select(self::TABLE, array( - 'share_id','share_path' + 'share_id','share_path', 'share_writable' ), array(), __LINE__, __FILE__, false) as $share) { $class = self::get_share_class($share); diff --git a/api/src/Vfs/Sharing.php b/api/src/Vfs/Sharing.php index 18628881ec..3c74a5f1f9 100644 --- a/api/src/Vfs/Sharing.php +++ b/api/src/Vfs/Sharing.php @@ -390,7 +390,10 @@ class Sharing extends \EGroupware\Api\Sharing */ protected static function check_path($share) { - return Vfs::file_exists($share['share_path']); + Vfs::$is_root = true; + $exists = Vfs::file_exists($share['share_path']); + Vfs::$is_root = false; + return $exists; } /**