From 3a38946f8a9e08fec5406fedac2577a890c8773d Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Mon, 4 Oct 2021 20:19:16 +0200 Subject: more app sync --- include/import.php | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) (limited to 'include/import.php') diff --git a/include/import.php b/include/import.php index b11d01511..6186fd6ed 100644 --- a/include/import.php +++ b/include/import.php @@ -609,10 +609,29 @@ function sync_sysapps($channel, $apps) { if ($app['app_id'] === hash('whirlpool', $sysapp['name'])) { if (array_key_exists('app_deleted',$app) && $app['app_deleted'] && $app['app_id']) { - q("update app set app_deleted = 1 where app_id = '%s' and app_channel = %d", - dbesc($app['app_id']), - intval($channel['channel_id']) - ); + if(Apps::can_delete($channel['channel_id'], ['guid' => $app['app_id']])) { + $local_app = q("select id from app where app_id = '%s' and app_channel = %d limit 1", + dbesc($app['app_id']), + intval($channel['channel_id']) + ); + if ($local_app) { + q("delete from term where otype = %d and oid = %d", + intval(TERM_OBJ_APP), + intval($local_app[0]['id']) + ); + + q("delete from app where app_id = '%s' and app_channel = %d", + dbesc($app['app_id']), + intval($channel['channel_id']) + ); + } + } + else { + q("update app set app_deleted = 1 where app_id = '%s' and app_channel = %d", + dbesc($app['app_id']), + intval($channel['channel_id']) + ); + } } else { // install this app on this server -- cgit v1.2.3