diff --git a/config/default.json5 b/config/default.json5 index a1cc4ad..40ac57e 100644 --- a/config/default.json5 +++ b/config/default.json5 @@ -36,6 +36,8 @@ allow_invalid_tls: true, from: 'contact@rainbox.email', from_name: 'Rainbox Email', + // Unlimited + max_public_identities_per_user: -1, }, view: { cache: false, diff --git a/config/test.json5 b/config/test.json5 index 2bbf940..3bcf7c7 100644 --- a/config/test.json5 +++ b/config/test.json5 @@ -6,4 +6,7 @@ database: "rainbox_email_test", create_database_automatically: true }, + mail: { + max_public_identities_per_user: 1, + }, } diff --git a/src/controllers/AccountMailboxController.ts b/src/controllers/AccountMailboxController.ts index ed24308..3b1bc9e 100644 --- a/src/controllers/AccountMailboxController.ts +++ b/src/controllers/AccountMailboxController.ts @@ -66,7 +66,7 @@ export default class AccountMailboxController extends Controller { }, req.body); const actualPublicAddressesCount = await mailIdentityComponent.getPublicAddressesCount(); const maxPublicAddressesCount = mailIdentityComponent.getMaxPublicAddressesCount(); - if (actualPublicAddressesCount >= maxPublicAddressesCount) { + if (maxPublicAddressesCount >= 0 && actualPublicAddressesCount >= maxPublicAddressesCount) { req.flash('error', 'You have reached maximum public email addresses.'); res.redirect(Controller.route('account-mailbox')); return; diff --git a/src/models/UserMailIdentityComponent.ts b/src/models/UserMailIdentityComponent.ts index edf6730..0449fb6 100644 --- a/src/models/UserMailIdentityComponent.ts +++ b/src/models/UserMailIdentityComponent.ts @@ -3,6 +3,7 @@ import User from "swaf/auth/models/User"; import {ManyModelRelation, OneModelRelation} from "swaf/db/ModelRelation"; import MailIdentity from "./MailIdentity"; import MailDomain from "./MailDomain"; +import config from "config"; export default class UserMailIdentityComponent extends ModelComponent { public main_mail_identity_id?: number = undefined; @@ -27,7 +28,7 @@ export default class UserMailIdentityComponent extends ModelComponent { }); public getMaxPublicAddressesCount(): number { - return 1; + return config.get('mail.max_public_identities_per_user'); } public async getPublicAddressesCount(): Promise {