diff --git a/src/Model/Contact.php b/src/Model/Contact.php index 1354bbdb89..644662e4ec 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -345,9 +345,14 @@ class Contact extends BaseObject $fields = ['term-date' => NULL_DATE, 'archive' => false]; dba::update('contact', $fields, ['id' => $contact['id']]); - if ($contact['url'] != '') { + if (!empty($contact['url'])) { dba::update('contact', $fields, ['nurl' => normalise_link($contact['url'])]); } + + if (!empty($contact['batch'])) { + $condition = ['batch' => $contact['batch'], 'contact-type' => ACCOUNT_TYPE_RELAY]; + dba::update('contact', $fields, $condition); + } } /** diff --git a/src/Protocol/PortableContact.php b/src/Protocol/PortableContact.php index d5e9d8f8c6..20f5cb0b02 100644 --- a/src/Protocol/PortableContact.php +++ b/src/Protocol/PortableContact.php @@ -1418,7 +1418,13 @@ class PortableContact dba::delete('gserver-tag', ['gserver-id' => $gserver['id']]); if ($data->scope == 'tags') { + // Avoid duplicates + $tags = []; foreach ($data->tags as $tag) { + $tags[$tag] = $tag; + } + + foreach ($tags as $tag) { dba::insert('gserver-tag', ['gserver-id' => $gserver['id'], 'tag' => $tag]); } }