]> git.mxchange.org Git - friendica.git/commitdiff
separate dfrn introductions from email when it comes to expiration of blocked requests
authorfriendica <info@friendica.com>
Mon, 12 Dec 2011 07:33:56 +0000 (23:33 -0800)
committerfriendica <info@friendica.com>
Mon, 12 Dec 2011 07:33:56 +0000 (23:33 -0800)
mod/dfrn_request.php

index 9755895ced0220cb398342798a0256f1dbab10c2..d7c918490f5c492c0e542b20d94f194283f3e624 100644 (file)
@@ -252,12 +252,41 @@ function dfrn_request_post(&$a) {
                 *
                 * Cleanup old introductions that remain blocked. 
                 * Also remove the contact record, but only if there is no existing relationship
+                * Do not remove email contacts as these may be awaiting email verification
+                */
+
+               $r = q("SELECT `intro`.*, `intro`.`id` AS `iid`, `contact`.`id` AS `cid`, `contact`.`rel` 
+                       FROM `intro` LEFT JOIN `contact` on `intro`.`contact-id` = `contact`.`id`
+                       WHERE `intro`.`blocked` = 1 AND `contact`.`self` = 0 
+                       AND `contact`.`network` != '%s'
+                       AND `intro`.`datetime` < UTC_TIMESTAMP() - INTERVAL 30 MINUTE ",
+                       dbesc(NETWORK_MAIL)
+               );
+               if(count($r)) {
+                       foreach($r as $rr) {
+                               if(! $rr['rel']) {
+                                       q("DELETE FROM `contact` WHERE `id` = %d LIMIT 1",
+                                               intval($rr['cid'])
+                                       );
+                               }
+                               q("DELETE FROM `intro` WHERE `id` = %d LIMIT 1",
+                                       intval($rr['iid'])
+                               );
+                       }
+               }
+
+               /**
                 *
+                * Cleanup any old email intros - which will have a greater lifetime
                 */
 
                $r = q("SELECT `intro`.*, `intro`.`id` AS `iid`, `contact`.`id` AS `cid`, `contact`.`rel` 
                        FROM `intro` LEFT JOIN `contact` on `intro`.`contact-id` = `contact`.`id`
-                       WHERE `intro`.`blocked` = 1 AND `contact`.`self` = 0 AND `intro`.`datetime` < UTC_TIMESTAMP() - INTERVAL 30 MINUTE ");
+                       WHERE `intro`.`blocked` = 1 AND `contact`.`self` = 0 
+                       AND `contact`.`network` = '%s'
+                       AND `intro`.`datetime` < UTC_TIMESTAMP() - INTERVAL 3 DAY ",
+                       dbesc(NETWORK_MAIL)
+               );
                if(count($r)) {
                        foreach($r as $rr) {
                                if(! $rr['rel']) {
@@ -271,6 +300,7 @@ function dfrn_request_post(&$a) {
                        }
                }
 
+
                $url = trim($_POST['dfrn_url']);
                if(! strlen($url)) {
                        notice( t("Invalid locator") . EOL );