]> git.mxchange.org Git - friendica.git/commitdiff
Bugfix: Sometimes the self contact seems to destroy itself
authorMichael <heluecht@pirati.ca>
Sun, 29 Jan 2017 13:57:03 +0000 (13:57 +0000)
committerMichael <heluecht@pirati.ca>
Sun, 29 Jan 2017 13:57:03 +0000 (13:57 +0000)
include/Contact.php
mod/dfrn_request.php

index 15b6813714f2bff59863bb98256c4c39def94956..362bce1bac52fa341b912b756792b4c5c9671f4c 100644 (file)
@@ -60,11 +60,13 @@ function user_remove($uid) {
 
 function contact_remove($id) {
 
-       $r = q("select uid from contact where id = %d limit 1",
+       // We want just to make sure that we don't delete our "self" contact
+       $r = q("SELECT `uid` FROM `contact` WHERE `id` = %d AND NOT `self` LIMIT 1",
                intval($id)
        );
-       if((! dbm::is_result($r)) || (! intval($r[0]['uid'])))
+       if((! dbm::is_result($r)) || (! intval($r[0]['uid']))) {
                return;
+       }
 
        $archive = get_pconfig($r[0]['uid'], 'system','archive_removed_contacts');
        if($archive) {
@@ -571,7 +573,7 @@ function get_contact($url, $uid = 0, $no_update = false) {
        }
 
        if ((count($contact) > 1) AND ($uid == 0) AND ($contactid != 0) AND ($url != ""))
-               q("DELETE FROM `contact` WHERE `nurl` = '%s' AND `id` != %d",
+               q("DELETE FROM `contact` WHERE `nurl` = '%s' AND `id` != %d AND NOT `self`",
                        dbesc(normalise_link($url)),
                        intval($contactid));
 
index 6480f2c756c9125d80ef6155ad9a12461ec6f70e..52b5eb9f90f076a7fb1508e4393d7fe783e3405b 100644 (file)
@@ -301,7 +301,7 @@ function dfrn_request_post(App $a) {
                if (dbm::is_result($r)) {
                        foreach ($r as $rr) {
                                if(! $rr['rel']) {
-                                       q("DELETE FROM `contact` WHERE `id` = %d",
+                                       q("DELETE FROM `contact` WHERE `id` = %d AND NOT `self`",
                                                intval($rr['cid'])
                                        );
                                }
@@ -326,7 +326,7 @@ function dfrn_request_post(App $a) {
                if (dbm::is_result($r)) {
                        foreach ($r as $rr) {
                                if(! $rr['rel']) {
-                                       q("DELETE FROM `contact` WHERE `id` = %d",
+                                       q("DELETE FROM `contact` WHERE `id` = %d AND NOT `self`",
                                                intval($rr['cid'])
                                        );
                                }