aboutsummaryrefslogtreecommitdiffstats
path: root/mod/dfrn_confirm.php
diff options
context:
space:
mode:
Diffstat (limited to 'mod/dfrn_confirm.php')
-rw-r--r--mod/dfrn_confirm.php96
1 files changed, 63 insertions, 33 deletions
diff --git a/mod/dfrn_confirm.php b/mod/dfrn_confirm.php
index e2094b1f3..4088178c0 100644
--- a/mod/dfrn_confirm.php
+++ b/mod/dfrn_confirm.php
@@ -123,9 +123,12 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
$dfrn_confirm = $contact['confirm'];
$aes_allow = $contact['aes_allow'];
- $network = ((strlen($contact['issued-id'])) ? 'dfrn' : 'stat');
+ $network = ((strlen($contact['issued-id'])) ? NETWORK_DFRN : NETWORK_OSTATUS);
- if($network === 'dfrn') {
+ if($contact['network'])
+ $network = $contact['network'];
+
+ if($network === NETWORK_DFRN) {
/**
*
@@ -298,19 +301,19 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
*
*/
- require_once("Photo.php");
+ require_once('include/Photo.php');
$photos = import_profile_photo($contact['photo'],$uid,$contact_id);
logger('dfrn_confirm: confirm - imported photos');
- if($network === 'dfrn') {
+ if($network === NETWORK_DFRN) {
- $new_relation = REL_VIP;
- if(($relation == REL_FAN) || ($duplex))
- $new_relation = REL_BUD;
+ $new_relation = CONTACT_IS_FOLLOWER;
+ if(($relation == CONTACT_IS_SHARING) || ($duplex))
+ $new_relation = CONTACT_IS_FRIEND;
- if(($relation == REL_FAN) && ($duplex))
+ if(($relation == CONTACT_IS_SHARING) && ($duplex))
$duplex = 0;
$r = q("UPDATE `contact` SET `photo` = '%s',
@@ -337,21 +340,29 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
);
}
else {
- // $network !== 'dfrn'
-
- $notify = '';
- $poll = '';
-
- $arr = lrdd($contact['url']);
- if(count($arr)) {
- foreach($arr as $link) {
- if($link['@attributes']['rel'] === 'salmon')
- $notify = $link['@attributes']['href'];
- if($link['@attributes']['rel'] === NAMESPACE_FEED)
- $poll = $link['@attributes']['href'];
+
+ // $network !== NETWORK_DFRN
+
+ $network = (($contact['network']) ? $contact['network'] : NETWORK_OSTATUS);
+ $notify = (($contact['notify']) ? $contact['notify'] : '');
+ $poll = (($contact['poll']) ? $contact['poll'] : '');
+
+ if((! $contact['notify']) || (! $contact['poll'])) {
+ $arr = lrdd($contact['url']);
+ if(count($arr)) {
+ foreach($arr as $link) {
+ if($link['@attributes']['rel'] === 'salmon')
+ $notify = $link['@attributes']['href'];
+ if($link['@attributes']['rel'] === NAMESPACE_FEED)
+ $poll = $link['@attributes']['href'];
+ }
}
}
+ $new_relation = $contact['rel'];
+ if($network === NETWORK_DIASPORA && $duplex)
+ $new_relation = CONTACT_IS_FRIEND;
+
$r = q("DELETE FROM `intro` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($intro_id),
intval($uid)
@@ -368,7 +379,8 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
`poll` = '%s',
`blocked` = 0,
`pending` = 0,
- `network` = 'stat'
+ `network` = '%s',
+ `rel` = %d
WHERE `id` = %d LIMIT 1
",
dbesc($photos[0]),
@@ -379,6 +391,8 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
dbesc(datetime_convert()),
dbesc($notify),
dbesc($poll),
+ dbesc($network),
+ intval($new_relation),
intval($contact_id)
);
}
@@ -401,7 +415,13 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
$r = q("SELECT `hide-friends` FROM `profile` WHERE `uid` = %d AND `is-default` = 1 LIMIT 1",
intval($uid)
);
- if((count($r)) && ($r[0]['hide-friends'] == 0) && (is_array($contact)) && isset($new_relation) && ($new_relation == REL_BUD)) {
+ if((count($r)) && ($r[0]['hide-friends'] == 0) && (is_array($contact)) && isset($new_relation) && ($new_relation == CONTACT_IS_FRIEND)) {
+
+ if($r[0]['network'] === NETWORK_DIASPORA) {
+ require_once('include/diaspora.php');
+ $ret = diaspora_share($user[0],$r[0]);
+ logger('mod_follow: diaspora_share returns: ' . $ret);
+ }
require_once('include/items.php');
@@ -528,12 +548,22 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
dbesc($decrypted_source_url),
intval($local_uid)
);
-
if(! count($ret)) {
- // this is either a bogus confirmation (?) or we deleted the original introduction.
- $message = t('Contact record was not found for you on our site.');
- xml_status(3,$message);
- return; // NOTREACHED
+ if(strstr($decrypted_source_url,'http:'))
+ $newurl = str_replace('http:','https:',$decrypted_source_url);
+ else
+ $newurl = str_replace('https:','http:',$decrypted_source_url);
+
+ $ret = q("SELECT * FROM `contact` WHERE `url` = '%s' AND `uid` = %d LIMIT 1",
+ dbesc($newurl),
+ intval($local_uid)
+ );
+ if(! count($r)) {
+ // this is either a bogus confirmation (?) or we deleted the original introduction.
+ $message = t('Contact record was not found for you on our site.');
+ xml_status(3,$message);
+ return; // NOTREACHED
+ }
}
$relation = $ret[0]['rel'];
@@ -592,11 +622,11 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
logger('dfrn_confirm: request - photos imported');
- $new_relation = REL_FAN;
- if(($relation == REL_VIP) || ($duplex))
- $new_relation = REL_BUD;
+ $new_relation = CONTACT_IS_SHARING;
+ if(($relation == CONTACT_IS_FOLLOWER) || ($duplex))
+ $new_relation = CONTACT_IS_FRIEND;
- if(($relation == REL_VIP) && ($duplex))
+ if(($relation == CONTACT_IS_FOLLOWER) && ($duplex))
$duplex = 0;
$r = q("UPDATE `contact` SET
@@ -639,7 +669,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
if((count($r)) && ($r[0]['notify-flags'] & NOTIFY_CONFIRM)) {
push_lang($r[0]['language']);
- $tpl = (($new_relation == REL_BUD)
+ $tpl = (($new_relation == CONTACT_IS_FRIEND)
? get_intltext_template('friend_complete_eml.tpl')
: get_intltext_template('intro_complete_eml.tpl'));
@@ -672,7 +702,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
// somebody arrived here by mistake or they are fishing. Send them to the homepage.
- goaway($a->get_baseurl());
+ goaway(z_root());
// NOTREACHED
}