$final_dfrn_id = '';
- if($contact['duplex'] && strlen($contact['prvkey'])) {
+
+
+ if(($contact['duplex'] && strlen($contact['prvkey'])) || ($owner['page-flags'] == PAGE_COMMUNITY)) {
openssl_private_decrypt($sent_dfrn_id,$final_dfrn_id,$contact['prvkey']);
openssl_private_decrypt($challenge,$postvars['challenge'],$contact['prvkey']);
}
$final_dfrn_id = substr($final_dfrn_id,2);
if($final_dfrn_id != $orig_id) {
+ if($debugging)
+ echo "Wrong ID - did not decode\n";
// did not decode properly - cannot trust this site
return 3;
}
$xml = post_url($contact['notify'],$postvars);
- if($debugging)
- echo $xml;
+ if($debugging) {
+ echo "SENDING: " . print_r($postvars,true) . "\n";
+ echo "RECEIVING: " . $xml;
+ }
$res = simplexml_load_string($xml);
$sql_extra = '';
switch($direction) {
case (-1):
- $sql_extra = sprintf(" AND `issued-id` = '%s' ", dbesc($dfrn_id));
+ $sql_extra = sprintf(" AND ( `issued-id` = '%s' OR `dfrn-id` = '%s' ) ", dbesc($dfrn_id), dbesc($dfrn_id));
break;
case 0:
$sql_extra = sprintf(" AND `issued-id` = '%s' AND `duplex` = 1 ", dbesc($dfrn_id));
$r = q("SELECT `contact`.*, `contact`.`uid` AS `importer_uid`, `user`.* FROM `contact`
LEFT JOIN `user` ON `contact`.`uid` = `user`.`uid`
- WHERE `contact`.`blocked` = 0 AND `contact`.`pending` = 0 $sql_extra LIMIT 1"
+ WHERE `contact`.`blocked` = 0 AND `contact`.`pending` = 0
+ AND `user`.`nickname` = '%s' $sql_extra LIMIT 1",
+ dbesc($a->argv[1])
);
if(! count($r)) {
$sql_extra = '';
switch($direction) {
case (-1):
- $sql_extra = sprintf(" AND `issued-id` = '%s' ", dbesc($dfrn_id));
+ $sql_extra = sprintf(" AND ( `issued-id` = '%s' OR `dfrn-id` = '%s' ) ", dbesc($dfrn_id), dbesc($dfrn_id));
$my_id = $dfrn_id;
break;
case 0:
break; // NOTREACHED
}
- $r = q("SELECT * FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 $sql_extra LIMIT 1");
+ $r = q("SELECT `contact`.*, `user`.`nickname` FROM `contact` LEFT JOIN `user` ON `user`.`uid` = `contact`.`uid`
+ WHERE `contact`.`blocked` = 0 AND `contact`.`pending` = 0 AND `user`.`nickname` = '%s' $sql_extra LIMIT 1",
+ dbesc($a->argv[1])
+ );
if(! count($r))
$status = 1;
$encrypted_id = '';
$id_str = $my_id . '.' . mt_rand(1000,9999);
- if(($r[0]['duplex']) && strlen($r[0]['pubkey'])) {
+ if((($r[0]['duplex']) && strlen($r[0]['pubkey'])) || (! strlen($r[0]['prvkey']))) {
openssl_public_encrypt($hash,$challenge,$r[0]['pubkey']);
openssl_public_encrypt($id_str,$encrypted_id,$r[0]['pubkey']);
}
else {
// Normal web request. Display our user's introduction form.
-
- $o = load_view_file("view/dfrn_request.tpl");
- $o = replace_macros($o,array('$nickname' => $a->argv[1]));
+ if($a->profile['page-flags'] == PAGE_NORMAL)
+ $tpl = load_view_file('view/dfrn_request.tpl');
+ else
+ $tpl = load_view_file('view/auto_request.tpl');
+ $o .= replace_macros($tpl,array('$nickname' => $a->argv[1]));
return $o;
}
$pageset_tpl = load_view_file('view/pagetypes.tpl');
$pagetype = replace_macros($pageset_tpl,array(
- '$normal' => (($profile['page-flags'] == PAGE_NORMAL) ? " checked=\"checked\" " : ""),
- '$soapbox' => (($profile['page-flags'] == PAGE_SOAPBOX) ? " checked=\"checked\" " : ""),
- '$community' => (($profile['page-flags'] == PAGE_COMMUNITY) ? " checked=\"checked\" " : ""),
- '$freelove' => (($profile['page-flags'] == PAGE_FREELOVE) ? " checked=\"checked\" " : ""),
+ '$normal' => (($a->user['page-flags'] == PAGE_NORMAL) ? " checked=\"checked\" " : ""),
+ '$soapbox' => (($a->user['page-flags'] == PAGE_SOAPBOX) ? " checked=\"checked\" " : ""),
+ '$community' => (($a->user['page-flags'] == PAGE_COMMUNITY) ? " checked=\"checked\" " : ""),
+ '$freelove' => (($a->user['page-flags'] == PAGE_FREELOVE) ? " checked=\"checked\" " : ""),
'$page_normal' => PAGE_NORMAL,
'$page_soapbox' => PAGE_SOAPBOX,
'$page_community' => PAGE_COMMUNITY,