]> git.mxchange.org Git - friendica.git/commitdiff
cleaned up mess created when both people request friendship and one approves as duplex
authorfriendica <info@friendica.com>
Wed, 29 Feb 2012 01:32:44 +0000 (17:32 -0800)
committerfriendica <info@friendica.com>
Wed, 29 Feb 2012 01:32:44 +0000 (17:32 -0800)
mod/dfrn_confirm.php

index 5a24f00893b493e34ea1fff755375b6126bf3622..0bc3ea7df597550f96286b8210fc6925da788876 100644 (file)
@@ -107,7 +107,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                 *
                 */
 
-               $r = q("SELECT * FROM `contact` WHERE ( ( `issued-id` != '' AND `issued-id` = '%s' ) OR ( `id` = %d AND `id` != 0 ) ) AND `uid` = %d LIMIT 1",
+               $r = q("SELECT * FROM `contact` WHERE ( ( `issued-id` != '' AND `issued-id` = '%s' ) OR ( `id` = %d AND `id` != 0 ) ) AND `uid` = %d AND `duplex` = 0 LIMIT 1",
                        dbesc($dfrn_id),
                        intval($cid),
                        intval($uid)
@@ -116,6 +116,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                if(! count($r)) {
                        logger('dfrn_confirm: Contact not found in DB.'); 
                        notice( t('Contact not found.') . EOL );
+                       notice( t('This may occasionally happen if contact was requested by both persons and it has already been approved.') . EOL );
                        return;
                }
 
@@ -631,6 +632,15 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                        xml_status(3,$message);
                }
 
+               // It's possible that the other person also requested friendship.
+               // If it is a duplex relationship, ditch the issued-id if one exists. 
+
+               if($duplex) {
+                       $r = q("UPDATE `contact` SET `issued-id` = '' WHERE `id` = %d LIMIT 1",
+                               intval($dfrn_record)
+                       );
+               }
+
                // We're good but now we have to scrape the profile photo and send notifications.