diff --git a/include/settings.php b/include/settings.php index 94cb6f65b..e53cfedfa 100644 --- a/include/settings.php +++ b/include/settings.php @@ -1,9 +1,17 @@ $r[0]['xchan_guid'],'guid_sig' => $r[0]['xchan_guid_sig']); + $info = (($packet) ? $packet : array()); if(array_key_exists($uid,$a->config) && array_key_exists('transient',$a->config[$uid])) { @@ -41,10 +58,14 @@ function build_sync_packet($packet = null) { foreach($channel as $k => $v) { if(strpos('channel_',$k) !== 0) continue; - if($k === 'channel_id') - continue; - if($k === 'channel_account_id') + + // don't pass these elements, they should not be synchronised + + $disallowed = array('channel_id','channel_account_id','channel_primary','channel_prvkey'); + + if(in_array($k,$disallowed)) continue; + $info['channel'][$k] = $v; } } @@ -55,7 +76,7 @@ function build_sync_packet($packet = null) { foreach($synchubs as $hub) { $hash = random_string(); - $n = zot_build_packet($channel,'channel_sync'); + $n = zot_build_packet($channel,'channel_sync',$env_recips,$hub['hubloc_sitekey'],null,$hash); q("insert into outq ( outq_hash, outq_account, outq_channel, outq_posturl, outq_async, outq_created, outq_updated, outq_notify, outq_msg ) values ( '%s', %d, %d, '%s', %d, '%s', '%s', '%s', '%s' )", dbesc($hash), intval($channel['channel_account']), diff --git a/include/zot.php b/include/zot.php index 689af2dac..14a29005d 100644 --- a/include/zot.php +++ b/include/zot.php @@ -874,8 +874,16 @@ function zot_import($arr) { $result = process_profile_delivery($i['notify']['sender'],$arr,$deliveries); } + elseif($i['message']['type'] === 'channel_sync') { +// $arr = get_channelsync_elements($i['message']); + $arr = $i['message']; + logger('Channel sync received: ' . print_r($arr,true), LOGGER_DATA); + logger('Channel sync recipients: ' . print_r($deliveries,true), LOGGER_DATA); + +// $result = process_channelsync_delivery($i['notify']['sender'],$arr,$deliveries); + } } if($result) $return = array_merge($return,$result); diff --git a/mod/connections.php b/mod/connections.php index 226c1678f..a53107dcf 100644 --- a/mod/connections.php +++ b/mod/connections.php @@ -145,7 +145,7 @@ function connections_clone(&$a) { unset($clone['abook_account']); unset($clone['abook_channel']); require_once('include/settings.php'); - build_sync_packet(array('abook' => array($clone))); + build_sync_packet(0 /* use the current local_user */, array('abook' => array($clone))); } diff --git a/mod/settings.php b/mod/settings.php index 788514eca..e830d7070 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -177,6 +177,7 @@ function settings_post(&$a) { check_form_security_token_redirectOnErr('/settings/featured', 'settings_featured'); call_hooks('feature_settings_post', $_POST); + build_sync_packet(); return; } @@ -189,6 +190,7 @@ function settings_post(&$a) { set_pconfig(local_user(),'feature',substr($k,8),((intval($v)) ? 1 : 0)); } } + build_sync_packet(); return; } @@ -232,6 +234,7 @@ function settings_post(&$a) { ); call_hooks('display_settings_post', $_POST); + build_sync_packet(); goaway($a->get_baseurl(true) . '/settings/display' ); return; // NOTREACHED } @@ -545,11 +548,12 @@ function settings_post(&$a) { dbesc($username), intval($channel['channel_id']) ); - // we really need to send out notifications to all our friends } proc_run('php','include/directory.php',local_user()); + build_sync_packet(); + //$_SESSION['theme'] = $theme; if($email_changed && $a->config['system']['register_policy'] == REGISTER_VERIFY) {