aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMario Vavti <mario@mariovavti.com>2021-10-06 09:36:14 +0200
committerMario Vavti <mario@mariovavti.com>2021-10-06 09:36:14 +0200
commitc33660a015ff4a2ed387caa4064fc8c4d8655419 (patch)
tree42a3bf620a54713ffc584efeb7d0006e94189b13
parent16281e0e7fbc4ff691f6190ddc80632b411d2801 (diff)
downloadvolse-hubzilla-c33660a015ff4a2ed387caa4064fc8c4d8655419.tar.gz
volse-hubzilla-c33660a015ff4a2ed387caa4064fc8c4d8655419.tar.bz2
volse-hubzilla-c33660a015ff4a2ed387caa4064fc8c4d8655419.zip
move sync logic for apps to mod appman. this way we can re-use the functions without creating sync loops.
-rw-r--r--Zotlabs/Lib/Apps.php79
-rw-r--r--Zotlabs/Lib/Libsync.php6
-rw-r--r--include/import.php27
3 files changed, 35 insertions, 77 deletions
diff --git a/Zotlabs/Lib/Apps.php b/Zotlabs/Lib/Apps.php
index 99c8144a6..2c5b8a546 100644
--- a/Zotlabs/Lib/Apps.php
+++ b/Zotlabs/Lib/Apps.php
@@ -3,7 +3,6 @@
namespace Zotlabs\Lib;
use App;
-use Zotlabs\Lib\Libsync;
require_once('include/plugin.php');
require_once('include/channel.php');
@@ -627,10 +626,12 @@ class Apps {
$app['uid'] = $uid;
- if(self::app_installed($uid,$app,true))
+ if(self::app_installed($uid,$app,true)) {
$x = self::app_update($app);
- else
+ }
+ else {
$x = self::app_store($app);
+ }
if($x['success']) {
$r = q("select * from app where app_id = '%s' and app_channel = %d limit 1",
@@ -645,12 +646,6 @@ class Apps {
intval($r[0]['id'])
);
}
- if (intval($r[0]['app_system'])) {
- Libsync::build_sync_packet($uid, ['sysapp' => $r]);
- }
- else {
- Libsync::build_sync_packet($uid, ['app' => $r]);
- }
}
}
return $x['app_id'];
@@ -690,45 +685,35 @@ class Apps {
dbesc($app['guid']),
intval($uid)
);
- if($x) {
- if(! intval($x[0]['app_deleted'])) {
- $x[0]['app_deleted'] = 1;
- if(self::can_delete($uid,$app)) {
- q("delete from app where app_id = '%s' and app_channel = %d",
- dbesc($app['guid']),
- intval($uid)
- );
- q("delete from term where otype = %d and oid = %d",
- intval(TERM_OBJ_APP),
- intval($x[0]['id'])
- );
- /**
- * @hooks app_destroy
- * Called after app entry got removed from database
- * and provide app array from database.
- */
- call_hooks('app_destroy', $x[0]);
- }
- else {
- q("update app set app_deleted = 1 where app_id = '%s' and app_channel = %d",
- dbesc($app['guid']),
- intval($uid)
- );
- }
- // unset the id before sync
- unset($x[0]['id']);
+ if($x && intval($x[0]['app_deleted'])) {
+ self::app_undestroy($uid, $app);
+ return;
+ }
- if (intval($x[0]['app_system'])) {
- Libsync::build_sync_packet($uid, ['sysapp' => $x]);
- }
- else {
- Libsync::build_sync_packet($uid, ['app' => $x]);
- }
- }
- else {
- self::app_undestroy($uid,$app);
- }
+ if(self::can_delete($uid,$app)) {
+ q("delete from app where app_id = '%s' and app_channel = %d",
+ dbesc($app['guid']),
+ intval($uid)
+ );
+
+ q("delete from term where otype = %d and oid = %d",
+ intval(TERM_OBJ_APP),
+ intval($x[0]['id'])
+ );
+
+ /**
+ * @hooks app_destroy
+ * Called after app entry got removed from database
+ * and provide app array from database.
+ */
+ call_hooks('app_destroy', $x[0]);
+ }
+ else {
+ q("update app set app_deleted = 1 where app_id = '%s' and app_channel = %d",
+ dbesc($app['guid']),
+ intval($uid)
+ );
}
}
}
@@ -750,8 +735,6 @@ class Apps {
dbesc($app['guid']),
intval($uid)
);
- $x[0]['app_deleted'] = 0;
- Libsync::build_sync_packet($uid, ['sysapp' => $x]);
}
}
}
diff --git a/Zotlabs/Lib/Libsync.php b/Zotlabs/Lib/Libsync.php
index d4ed57c3a..c4f1b20ea 100644
--- a/Zotlabs/Lib/Libsync.php
+++ b/Zotlabs/Lib/Libsync.php
@@ -141,7 +141,6 @@ class Libsync {
logger('Packet: ' . print_r($info, true), LOGGER_DATA, LOG_DEBUG);
$total = count($synchubs);
-
foreach ($synchubs as $hub) {
$hash = random_string();
$n = Libzot::build_packet($channel, 'sync', $env_recips, json_encode($info), 'hz', $hub['hubloc_sitekey'], $hub['site_crypto']);
@@ -186,7 +185,6 @@ class Libsync {
require_once('include/import.php');
$result = [];
-
$keychange = ((array_key_exists('keychange', $arr)) ? true : false);
foreach ($deliveries as $d) {
@@ -242,14 +240,14 @@ class Libsync {
if (array_key_exists('likes', $arr) && $arr['likes'])
import_likes($channel, $arr['likes']);
-/*
+
if (array_key_exists('app', $arr) && $arr['app'])
sync_apps($channel, $arr['app']);
if (array_key_exists('sysapp',$arr) && $arr['sysapp']) {
sync_sysapps($channel, $arr['sysapp']);
}
-*/
+
if (array_key_exists('addressbook', $arr) && $arr['addressbook'])
sync_addressbook($channel, $arr['addressbook']);
diff --git a/include/import.php b/include/import.php
index 6186fd6ed..c6d89b5f3 100644
--- a/include/import.php
+++ b/include/import.php
@@ -591,7 +591,6 @@ function import_sysapps($channel, $apps) {
function sync_sysapps($channel, $apps) {
$sysapps = Apps::get_system_apps(false, true);
-
if ($channel && $apps) {
$columns = db_columns('app');
@@ -608,30 +607,8 @@ function sync_sysapps($channel, $apps) {
foreach ($sysapps as $sysapp) {
if ($app['app_id'] === hash('whirlpool', $sysapp['name'])) {
- if (array_key_exists('app_deleted',$app) && $app['app_deleted'] && $app['app_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'])
- );
- }
+ if (array_key_exists('app_deleted',$app) && $app['app_deleted'] == 1 && $app['app_id']) {
+ Apps::app_destroy($channel['channel_id'], ['guid' => $app['app_id']]);
}
else {
// install this app on this server