diff options
author | Mario Vavti <mario@mariovavti.com> | 2021-10-04 20:19:16 +0200 |
---|---|---|
committer | Mario Vavti <mario@mariovavti.com> | 2021-10-04 20:19:16 +0200 |
commit | 3a38946f8a9e08fec5406fedac2577a890c8773d (patch) | |
tree | 8a32a3a8bcaa0891af0d107153d09d365347b678 /include/import.php | |
parent | 04c6d77d2cced4f2228be77107bbb85ee2f77562 (diff) | |
download | volse-hubzilla-3a38946f8a9e08fec5406fedac2577a890c8773d.tar.gz volse-hubzilla-3a38946f8a9e08fec5406fedac2577a890c8773d.tar.bz2 volse-hubzilla-3a38946f8a9e08fec5406fedac2577a890c8773d.zip |
more app sync
Diffstat (limited to 'include/import.php')
-rw-r--r-- | include/import.php | 27 |
1 files changed, 23 insertions, 4 deletions
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 |