if (!DBA::isResult($contact)) {
$contact = DBA::selectFirst('contact', [], ['id' => $contact_id, 'uid' => 0]);
}
+
+ // Don't display contacts that are about to be deleted
+ if (($contact['network'] == Protocol::PHANTOM)) {
+ $contact = false;
+ }
}
if (DBA::isResult($contact)) {
$sql_extra = " AND `blocked` = 0 ";
}
+ $sql_extra .= sprintf(" AND `network` != '%s' ", Protocol::PHANTOM);
+
$search = x($_GET, 'search') ? notags(trim($_GET['search'])) : '';
$nets = x($_GET, 'nets' ) ? notags(trim($_GET['nets'])) : '';
$condition = [];
switch ($direction) {
case (-1):
- $condition = ["`issued-id` = ? OR `dfrn-id` = ?", $dfrn_id, $dfrn_id];
+ $condition = ["(`issued-id` = ? OR `dfrn-id` = ?) AND `uid` = ?", $dfrn_id, $dfrn_id, $user['uid']];
break;
case 0:
- $condition = ['issued-id' => $dfrn_id, 'duplex' => true];
+ $condition = ['issued-id' => $dfrn_id, 'duplex' => true, 'uid' => $user['uid']];
break;
case 1:
- $condition = ['dfrn-id' => $dfrn_id, 'duplex' => true];
+ $condition = ['dfrn-id' => $dfrn_id, 'duplex' => true, 'uid' => $user['uid']];
break;
default:
System::xmlExit(3, 'Invalid direction');
$condition = [];
switch ($direction) {
case (-1):
- $condition = ["`issued-id` = ? OR `dfrn-id` = ?", $dfrn_id, $dfrn_id];
+ $condition = ["(`issued-id` = ? OR `dfrn-id` = ?) AND `uid` = ?", $dfrn_id, $dfrn_id, $user['uid']];
$my_id = $dfrn_id;
break;
case 0:
- $condition = ['issued-id' => $dfrn_id, 'duplex' => true];
+ $condition = ['issued-id' => $dfrn_id, 'duplex' => true, 'uid' => $user['uid']];
$my_id = '1:' . $dfrn_id;
break;
case 1:
- $condition = ['dfrn-id' => $dfrn_id, 'duplex' => true];
+ $condition = ['dfrn-id' => $dfrn_id, 'duplex' => true, 'uid' => $user['uid']];
$my_id = '0:' . $dfrn_id;
break;
default:
$pub_key = trim($importer['cpubkey']);
$dplx = intval($importer['duplex']);
- if (($dplx && strlen($prv_key)) || (strlen($prv_key) && !strlen($pub_key))) {
+ if (!empty($prv_key) && empty($pub_key)) {
openssl_private_encrypt($hash, $challenge, $prv_key);
openssl_private_encrypt($id_str, $encrypted_id, $prv_key);
} elseif (strlen($pub_key)) {
}
}
- if (($contact['duplex'] && strlen($contact['pubkey']))
- || ($owner['page-flags'] == Contact::PAGE_COMMUNITY && strlen($contact['pubkey']))
- || ($contact['rel'] == Contact::SHARING && strlen($contact['pubkey']))
- ) {
+ if (empty($contact['prvkey']) && !empty($contact['pubkey'])) {
openssl_public_decrypt($sent_dfrn_id, $final_dfrn_id, $contact['pubkey']);
openssl_public_decrypt($challenge, $postvars['challenge'], $contact['pubkey']);
} else {
class RemoveContact {
public static function execute($id) {
- // Only delete if the contact is archived
- $condition = ['archive' => true, 'network' => Protocol::PHANTOM, 'id' => $id];
+ // Only delete if the contact is to be deleted
+ $condition = ['network' => Protocol::PHANTOM, 'id' => $id];
$r = DBA::exists('contact', $condition);
if (!DBA::isResult($r)) {
return;