]> git.mxchange.org Git - friendica.git/blobdiff - mod/dfrn_notify.php
Merge branch 'fabrixxm-master'
[friendica.git] / mod / dfrn_notify.php
index 39d882411076c703661ab1e56a9de5913ac0ede6..f904b06bc5e742740fa2df84782ca520e141c22e 100644 (file)
@@ -11,6 +11,7 @@ function dfrn_notify_post(&$a) {
        $challenge    = ((x($_POST,'challenge'))    ? notags(trim($_POST['challenge'])) : '');
        $data         = ((x($_POST,'data'))         ? $_POST['data']                    : '');
        $key          = ((x($_POST,'key'))          ? $_POST['key']                     : '');
+       $dissolve     = ((x($_POST,'dissolve'))     ? intval($_POST['dissolve'])        :  0);
 
        $direction = (-1);
        if(strpos($dfrn_id,':') == 1) {
@@ -51,6 +52,8 @@ function dfrn_notify_post(&$a) {
        }
                 
 
+
+
        $r = q("SELECT `contact`.*, `contact`.`uid` AS `importer_uid`, 
                `contact`.`pubkey` AS `cpubkey`, `contact`.`prvkey` AS `cprvkey`, `user`.* FROM `contact` 
                LEFT JOIN `user` ON `contact`.`uid` = `user`.`uid` 
@@ -65,17 +68,24 @@ function dfrn_notify_post(&$a) {
                //NOTREACHED
        }
 
+       // $importer in this case contains the contact record for the remote contact joined with the user record of our user. 
+
        $importer = $r[0];
 
        logger('dfrn_notify: received notify from ' . $importer['name'] . ' for ' . $importer['username']);
        logger('dfrn_notify: data: ' . $data, LOGGER_DATA);
 
-       if($importer['readonly']) {
-               // We aren't receiving stuff from this person. But we will quietly ignore them
-               // rather than a blatant "go away" message.
-               logger('dfrn_notify: ignoring');
+       if($dissolve == 1) {
+
+               /**
+                * Relationship is dissolved permanently
+                */
+
+               require_once('include/Contact.php'); 
+               contact_remove($importer['id']);
+               logger('relationship dissolved : ' . $importer['name'] . ' dissolved ' . $importer['username']);
                xml_status(0);
-               //NOTREACHED
+
        }
 
        if(strlen($key)) {
@@ -95,6 +105,17 @@ function dfrn_notify_post(&$a) {
                logger('rino: decrypted data: ' . $data, LOGGER_DATA);
        }
 
+
+
+
+       if($importer['readonly']) {
+               // We aren't receiving stuff from this person. But we will quietly ignore them
+               // rather than a blatant "go away" message.
+               logger('dfrn_notify: ignoring');
+               xml_status(0);
+               //NOTREACHED
+       }
+
        // Consume notification feed. This may differ from consuming a public feed in several ways
        // - might contain email
        // - might contain remote followup to our message