X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fdfrn_confirm.php;h=89b09ef77e8aa8d55418fc36383bd5128ab143ba;hb=a95000d9f58ca1e355540da46fb2bcbad9f81c97;hp=f0c86910bd731a0e4ab218fec9c2d6bce41ab1f0;hpb=fcf6651299418f834076649f1fad4833476aad76;p=friendica.git diff --git a/mod/dfrn_confirm.php b/mod/dfrn_confirm.php index f0c86910bd..89b09ef77e 100644 --- a/mod/dfrn_confirm.php +++ b/mod/dfrn_confirm.php @@ -71,12 +71,14 @@ function dfrn_confirm_post(&$a,$handsfree = null) { $dfrn_id = $handsfree['dfrn_id']; $intro_id = $handsfree['intro_id']; $duplex = $handsfree['duplex']; + $hidden = ((array_key_exists('hidden',$handsfree)) ? intval($handsfree['hidden']) : 0 ); } else { $dfrn_id = ((x($_POST,'dfrn_id')) ? notags(trim($_POST['dfrn_id'])) : ""); $intro_id = ((x($_POST,'intro_id')) ? intval($_POST['intro_id']) : 0 ); $duplex = ((x($_POST,'duplex')) ? intval($_POST['duplex']) : 0 ); $cid = ((x($_POST,'contact_id')) ? intval($_POST['contact_id']) : 0 ); + $hidden = ((x($_POST,'hidden')) ? intval($_POST['hidden']) : 0 ); } /** @@ -122,12 +124,13 @@ function dfrn_confirm_post(&$a,$handsfree = null) { $site_pubkey = $contact['site-pubkey']; $dfrn_confirm = $contact['confirm']; $aes_allow = $contact['aes_allow']; + + $network = ((strlen($contact['issued-id'])) ? NETWORK_DFRN : NETWORK_OSTATUS); - $network = ((strlen($contact['issued-id'])) ? 'dfrn' : 'stat'); if($contact['network']) $network = $contact['network']; - if($network === 'dfrn') { + if($network === NETWORK_DFRN) { /** * @@ -300,13 +303,13 @@ 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 = CONTACT_IS_FOLLOWER; if(($relation == CONTACT_IS_SHARING) || ($duplex)) @@ -315,7 +318,8 @@ function dfrn_confirm_post(&$a,$handsfree = null) { if(($relation == CONTACT_IS_SHARING) && ($duplex)) $duplex = 0; - $r = q("UPDATE `contact` SET `photo` = '%s', + $r = q("UPDATE `contact` SET + `photo` = '%s', `thumb` = '%s', `micro` = '%s', `rel` = %d, @@ -325,6 +329,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { `blocked` = 0, `pending` = 0, `duplex` = %d, + `hidden` = %d, `network` = 'dfrn' WHERE `id` = %d LIMIT 1 ", dbesc($photos[0]), @@ -335,12 +340,15 @@ function dfrn_confirm_post(&$a,$handsfree = null) { dbesc(datetime_convert()), dbesc(datetime_convert()), intval($duplex), + intval($hidden), intval($contact_id) ); } else { - // $network !== 'dfrn' + // $network !== NETWORK_DFRN + + $network = (($contact['network']) ? $contact['network'] : NETWORK_OSTATUS); $notify = (($contact['notify']) ? $contact['notify'] : ''); $poll = (($contact['poll']) ? $contact['poll'] : ''); @@ -356,6 +364,16 @@ function dfrn_confirm_post(&$a,$handsfree = null) { } } + $new_relation = $contact['rel']; + $writable = $contact['writable']; + + if($network === NETWORK_DIASPORA) { + if($duplex) + $new_relation = CONTACT_IS_FRIEND; + if($new_relation != CONTACT_IS_FOLLOWER) + $writable = 1; + } + $r = q("DELETE FROM `intro` WHERE `id` = %d AND `uid` = %d LIMIT 1", intval($intro_id), intval($uid) @@ -372,7 +390,10 @@ function dfrn_confirm_post(&$a,$handsfree = null) { `poll` = '%s', `blocked` = 0, `pending` = 0, - `network` = 'stat' + `network` = '%s', + `writable` = %d, + `hidden` = %d, + `rel` = %d WHERE `id` = %d LIMIT 1 ", dbesc($photos[0]), @@ -383,6 +404,10 @@ function dfrn_confirm_post(&$a,$handsfree = null) { dbesc(datetime_convert()), dbesc($notify), dbesc($poll), + dbesc($network), + intval($writable), + intval($hidden), + intval($new_relation), intval($contact_id) ); } @@ -405,7 +430,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 == CONTACT_IS_FRIEND)) { + if((count($r)) && (! $hidden) && ($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'); @@ -422,6 +453,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { $arr['wall'] = 1; $arr['type'] = 'wall'; $arr['gravity'] = 0; + $arr['origin'] = 1; $arr['author-name'] = $arr['owner-name'] = $self[0]['name']; $arr['author-link'] = $arr['owner-link'] = $self[0]['url']; $arr['author-avatar'] = $arr['owner-avatar'] = $self[0]['thumb']; @@ -431,7 +463,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { $A = '[url=' . $self[0]['url'] . ']' . $self[0]['name'] . '[/url]'; $B = '[url=' . $contact['url'] . ']' . $contact['name'] . '[/url]'; $BPhoto = '[url=' . $contact['url'] . ']' . '[img]' . $contact['thumb'] . '[/img][/url]'; - $arr['body'] = sprintf( t('%1$s is now friends with %2$s'), $A, $B)."\n\n\n".$Bphoto; + $arr['body'] = sprintf( t('%1$s is now friends with %2$s'), $A, $B)."\n\n\n".$BPhoto; $arr['object'] = '' . ACTIVITY_OBJ_PERSON . '' . $contact['name'] . '' . '' . $contact['url'] . '/' . $contact['name'] . ''; @@ -542,7 +574,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { dbesc($newurl), intval($local_uid) ); - if(! count($r)) { + 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); @@ -557,6 +589,11 @@ function dfrn_confirm_post(&$a,$handsfree = null) { $foreign_pubkey = $ret[0]['site-pubkey']; $dfrn_record = $ret[0]['id']; + if(! $foreign_pubkey) { + $message = sprintf( t('Site public key not available in contact record for URL %s.'), $newurl); + xml_status(3,$message); + } + $decrypted_dfrn_id = ""; openssl_public_decrypt($dfrn_id,$decrypted_dfrn_id,$foreign_pubkey); @@ -624,7 +661,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { `blocked` = 0, `pending` = 0, `duplex` = %d, - `network` = 'dfrn' WHERE `id` = %d LIMIT 1 + `network` = '%s' WHERE `id` = %d LIMIT 1 ", dbesc($photos[0]), dbesc($photos[1]), @@ -634,6 +671,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { dbesc(datetime_convert()), dbesc(datetime_convert()), intval($duplex), + dbesc(NETWORK_DFRN), intval($dfrn_record) ); if($r === false) { // indicates schema is messed up or total db failure