Skip to content

Commit 4ce3eed

Browse files
authored
fix(domaincache-and-domainaliases): ZMS-259 add wildcard address check when adding domain to mongodb cache (#859)
* add wildcard address check when adding domain to mongodb cache. insert alias domains into cache too * domainaliases use insertMany instead of sequential insertOne
1 parent 897b4b3 commit 4ce3eed

File tree

3 files changed

+22
-4
lines changed

3 files changed

+22
-4
lines changed

lib/api/addresses.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -533,7 +533,10 @@ module.exports = (db, server, userHandler, settingsHandler) => {
533533
try {
534534
r = await db.users.collection('addresses').insertOne(addressData);
535535
try {
536-
await db.database.collection('domaincache').insertOne({ domain: addressData.address.split('@')[1] });
536+
const domain = addressData.address.split('@')[1];
537+
if (domain && !domain.includes('*')) {
538+
await db.users.collection('domaincache').insertOne({ domain });
539+
}
537540
} catch {
538541
// ignore
539542
}
@@ -1731,7 +1734,10 @@ module.exports = (db, server, userHandler, settingsHandler) => {
17311734
r = await db.users.collection('addresses').insertOne(addressData);
17321735

17331736
try {
1734-
await db.database.collection('domaincache').insertOne({ domain: addressData.address.split('@')[1] });
1737+
const domain = addressData.address.split('@')[1];
1738+
if (domain && !domain.includes('*')) {
1739+
await db.users.collection('domaincache').insertOne({ domain });
1740+
}
17351741
} catch {
17361742
// ignore
17371743
}

lib/api/domainaliases.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,12 @@ module.exports = (db, server) => {
262262
domain,
263263
created: new Date()
264264
});
265+
266+
try {
267+
await db.users.collection('domaincache').insertMany([{ domain: alias }, { domain }]);
268+
} catch {
269+
// ignore
270+
}
265271
} catch (err) {
266272
res.status(500);
267273
return res.json({

lib/user-handler.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1611,7 +1611,10 @@ class UserHandler {
16111611
await this.users.collection('addresses').insertOne(addressData, { writeConcern: 'majority' });
16121612

16131613
try {
1614-
await this.users.collection('domaincache').insertOne({ domain: addressData.address.split('@')[1] });
1614+
const domain = addressData.address.split('@')[1];
1615+
if (domain && !domain.includes('*')) {
1616+
await this.users.collection('domaincache').insertOne({ domain });
1617+
}
16151618
} catch {
16161619
// ignore
16171620
}
@@ -3684,7 +3687,10 @@ class UserHandler {
36843687
}
36853688

36863689
try {
3687-
await this.users.collection('domaincache').insertOne({ domain: address.address.split('@')[1] });
3690+
const domain = address.address.split('@')[1];
3691+
if (domain && !domain.includes('*')) {
3692+
await this.users.collection('domaincache').insertOne({ domain });
3693+
}
36883694
} catch {
36893695
// ignore
36903696
}

0 commit comments

Comments
 (0)