diff options
author | redmatrix <redmatrix@redmatrix.me> | 2015-10-18 15:49:52 -0700 |
---|---|---|
committer | redmatrix <redmatrix@redmatrix.me> | 2015-10-18 15:49:52 -0700 |
commit | 76d41fc2506cb2196df3b3f301fec47b64a2129c (patch) | |
tree | 2282e27d5c1bf1b5a604f0ac6d54766078c7947d /include | |
parent | 2540ecc0ac751cc77272dc7a05dd43dffeb15bbb (diff) | |
download | volse-hubzilla-76d41fc2506cb2196df3b3f301fec47b64a2129c.tar.gz volse-hubzilla-76d41fc2506cb2196df3b3f301fec47b64a2129c.tar.bz2 volse-hubzilla-76d41fc2506cb2196df3b3f301fec47b64a2129c.zip |
re-organise the protocol disabled logic
Diffstat (limited to 'include')
-rw-r--r-- | include/follow.php | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/include/follow.php b/include/follow.php index 960138743..ae0f9f041 100644 --- a/include/follow.php +++ b/include/follow.php @@ -133,27 +133,27 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false) $their_perms = 0; $xchan_hash = ''; + $r = q("select * from xchan where xchan_hash = '%s' or xchan_url = '%s' limit 1", dbesc($url), dbesc($url) ); + if(! $r) { // attempt network auto-discovery if(strpos($url,'@') && (! $is_http)) { - $r = discover_by_webbie($url); + $d = discover_by_webbie($url); } elseif($is_http) { - $r = discover_by_url($url); - $r['allowed'] = intval(get_config('system','feed_contacts')); - } - if($r) { - $r['channel_id'] = $uid; - call_hooks('follow_allow',$r); - if(! $r['allowed']) { + if(get_config('system','feed_contacts')) + $d = discover_by_url($url); + else { $result['message'] = t('Protocol disabled.'); return $result; } + } + if($d) { $r = q("select * from xchan where xchan_hash = '%s' or xchan_url = '%s' limit 1", dbesc($url), dbesc($url) @@ -172,6 +172,16 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false) return $result; } + $x = array('channel_id' => $uid, 'follow_address' => $url, 'xchan' => $r[0], 'allowed' => 1); + + call_hooks('follow_allow',$x); + + if(! $x['allowed']) { + $result['message'] = t('Protocol disabled.'); + return $result; + } + + if((local_channel()) && $uid == local_channel()) { $aid = get_account_id(); $hash = get_observer_hash(); |