X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fdfrn_confirm.php;h=13353a3641c1424acb90f64c5840092b6a2c3e6b;hb=85a6e9634a480f094d3acbce9aa0ce0aa1e6b29c;hp=4a5fe1114f50cf39a4f91b5875f4c0c75d836e10;hpb=b94cb8d234d70bc534ad1cef767b9f62d10eef26;p=friendica.git diff --git a/mod/dfrn_confirm.php b/mod/dfrn_confirm.php index 4a5fe1114f..13353a3641 100644 --- a/mod/dfrn_confirm.php +++ b/mod/dfrn_confirm.php @@ -2,6 +2,7 @@ // There are two possible entry points. + function dfrn_confirm_post(&$a,$handsfree = null) { if(is_array($handsfree)) { @@ -48,6 +49,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { $dfrn_id = $handsfree['dfrn_id']; $intro_id = $handsfree['intro_id']; $duplex = $handsfree['duplex']; + logger('dfrn_confirm: Confirm in handsfree mode'); } else { $dfrn_id = ((x($_POST,'dfrn_id')) ? notags(trim($_POST['dfrn_id'])) : ""); @@ -56,6 +58,9 @@ function dfrn_confirm_post(&$a,$handsfree = null) { $cid = intval($_POST['contact_id']); } + logger('dfrn_confirm: Confirming request for dfrn_id (issued) ' . $dfrn_id); + + // The other person will have been issued an ID when they first requested friendship. // Locate their record. At this time, their record will have both pending and blocked set to 1. // There won't be any dfrn_id if this is a network follower, so use the contact_id instead. @@ -79,8 +84,9 @@ function dfrn_confirm_post(&$a,$handsfree = null) { $dfrn_confirm = $contact['confirm']; $aes_allow = $contact['aes_allow']; + $network = ((strlen($contact['issued-id'])) ? 'dfrn' : 'stat'); - if($contact['network'] === 'dfrn') { + if($network === 'dfrn') { // Generate a key pair for all further communications with this person. // We have a keypair for every contact, and a site key for unknown people. @@ -147,10 +153,14 @@ function dfrn_confirm_post(&$a,$handsfree = null) { if($duplex == 1) $params['duplex'] = 1; + logger('dfrn_confirm: Confirm: posted data: ' . print_r($params,true), LOGGER_DATA); + // POST all this stuff to the other site. $res = post_url($dfrn_confirm,$params); + logger('dfrn_confirm: Confirm: received data: ' . $res, LOGGER_DATA); + // Now figure out what they responded. Try to be robust if the remote site is // having difficulty and throwing up errors of some kind. @@ -230,13 +240,18 @@ function dfrn_confirm_post(&$a,$handsfree = null) { require_once("Photo.php"); $photos = import_profile_photo($contact['photo'],$uid,$contact_id); + + logger('dfrn_confirm: confirm - imported photos'); - if($contact['network'] === 'dfrn') { + if($network === 'dfrn') { $new_relation = REL_VIP; if(($relation == REL_FAN) || ($duplex)) $new_relation = REL_BUD; + if(($relation == REL_FAN) && ($duplex)) + $duplex = 0; + $r = q("UPDATE `contact` SET `photo` = '%s', `thumb` = '%s', `micro` = '%s', @@ -265,7 +280,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { $notify = ''; $poll = ''; - // $contact['network'] !== 'dfrn' + // $network !== 'dfrn' $arr = lrdd($contact['url']); if(count($arr)) { @@ -282,6 +297,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { intval($uid) ); + $r = q("UPDATE `contact` SET `photo` = '%s', `thumb` = '%s', `micro` = '%s', @@ -291,7 +307,8 @@ function dfrn_confirm_post(&$a,$handsfree = null) { `notify` = '%s', `poll` = '%s', `blocked` = 0, - `pending` = 0 + `pending` = 0, + `network` = 'stat' WHERE `id` = %d LIMIT 1 ", dbesc($photos[0]), @@ -340,7 +357,10 @@ function dfrn_confirm_post(&$a,$handsfree = null) { $aes_key = $_POST['aes_key']; $duplex = $_POST['duplex']; $version_id = (float) $_POST['dfrn_version']; + + logger('dfrn_confirm: requestee contacted: ' . $node); + logger('dfrn_confirm: request: POST=' . print_r($_POST,true), LOGGER_DATA); // If $aes_key is set, both of these items require unpacking from the hex transport encoding. @@ -413,8 +433,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { } $r = q("SELECT * FROM `contact` WHERE `dfrn-id` = '%s' LIMIT 1", - dbesc($decrypted_dfrn_id), - intval($local_uid) + dbesc($decrypted_dfrn_id) ); if(count($r)) { $message = t('The ID provided by your system is a duplicate on our system. It should work if you try again.'); @@ -448,13 +467,19 @@ function dfrn_confirm_post(&$a,$handsfree = null) { $photos = import_profile_photo($photo,$local_uid,$dfrn_record); + logger('dfrn_confirm: request - photos imported'); + $new_relation = REL_FAN; if(($relation == REL_VIP) || ($duplex)) $new_relation = REL_BUD; + if(($relation == REL_VIP) && ($duplex)) + $duplex = 0; + $r = q("UPDATE `contact` SET `photo` = '%s', `thumb` = '%s', + `micro` = '%s', `rel` = %d, `name-date` = '%s', `uri-date` = '%s', @@ -466,6 +491,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { ", dbesc($photos[0]), dbesc($photos[1]), + dbesc($photos[2]), intval($new_relation), dbesc(datetime_convert()), dbesc(datetime_convert()), @@ -481,6 +507,8 @@ function dfrn_confirm_post(&$a,$handsfree = null) { // Otherwise everything seems to have worked and we are almost done. Yay! // Send an email notification + logger('dfrn_confirm: request: info updated'); + $r = q("SELECT * FROM `contact` LEFT JOIN `user` ON `contact`.`uid` = `user`.`uid` WHERE `contact`.`id` = %d LIMIT 1", intval($dfrn_record) @@ -502,7 +530,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { ); $res = mail($r[0]['email'], t("Connection accepted at ") . $a->config['sitename'], - $email_tpl, 'From: ' . t('Administrator') . '@' . $_SERVER[SERVER_NAME] ); + $email_tpl, 'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] ); if(!$res) { // pointless throwing an error here and confusing the person at the other end of the wire. }