diff options
author | Julen Landa Alustiza <julen@zokormazo.info> | 2017-04-01 21:46:09 +0200 |
---|---|---|
committer | Julen Landa Alustiza <julen@zokormazo.info> | 2017-04-01 21:46:09 +0200 |
commit | dfeeec308ac2c683cd3fc3f43f65efe71072af54 (patch) | |
tree | 291b5c1b39a3551f0a1fce67b90b58752d77852f /models/settings.js | |
parent | 823aea497b45652e1c57916a10094cb5b0fc3ef9 (diff) | |
download | wekan-dfeeec308ac2c683cd3fc3f43f65efe71072af54.tar.gz wekan-dfeeec308ac2c683cd3fc3f43f65efe71072af54.tar.bz2 wekan-dfeeec308ac2c683cd3fc3f43f65efe71072af54.zip |
Fix email settings loading:
MAIL_URL was overriden with database info all the time.
Now if MAIL_URL exists is not overwritten and if neither MAIL_URL nor
exists valid admin panel data MAIL_URL is not set.
MAIL_FROM was ignored. Same behaviour, env variable has bigger priority
than database configuration.
On both cases, althrought environment variable is set, updating admin-panel
mail settings will load new info and ignore the environment variable.
Remove some code that is not needed anymore
Diffstat (limited to 'models/settings.js')
-rw-r--r-- | models/settings.js | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/models/settings.js b/models/settings.js index e5b9783a..e9dce26d 100644 --- a/models/settings.js +++ b/models/settings.js @@ -27,7 +27,6 @@ Settings.attachSchema(new SimpleSchema({ 'mailServer.from': { type: String, optional: true, - defaultValue: 'Wekan', }, createdAt: { type: Date, @@ -66,14 +65,17 @@ if (Meteor.isServer) { const setting = Settings.findOne({}); if(!setting){ const now = new Date(); + const domain = process.env.ROOT_URL.match(/\/\/(?:www\.)?(.*)?(?:\/)?/)[1]; + const from = `Wekan <wekan@${domain}>`; const defaultSetting = {disableRegistration: false, mailServer: { - username: '', password: '', host: '', port: '', enableTLS: false, from: '', + username: '', password: '', host: '', port: '', enableTLS: false, from, }, createdAt: now, modifiedAt: now}; Settings.insert(defaultSetting); } const newSetting = Settings.findOne(); - process.env.MAIL_URL = newSetting.mailUrl(); - Accounts.emailTemplates.from = newSetting.mailServer.from; + if (!process.env.MAIL_URL && newSetting.mailUrl()) + process.env.MAIL_URL = newSetting.mailUrl(); + Accounts.emailTemplates.from = process.env.MAIL_FROM ? process.env.MAIL_FROM : newSetting.mailServer.from; }); Settings.after.update((userId, doc, fieldNames) => { // assign new values to mail-from & MAIL_URL in environment @@ -106,14 +108,12 @@ if (Meteor.isServer) { url: FlowRouter.url('sign-up'), }; const lang = author.getLanguage(); - if (Settings.findOne().mailUrl()) { - Email.send({ - to: icode.email, - from: Accounts.emailTemplates.from, - subject: TAPi18n.__('email-invite-register-subject', params, lang), - text: TAPi18n.__('email-invite-register-text', params, lang), - }); - } + Email.send({ + to: icode.email, + from: Accounts.emailTemplates.from, + subject: TAPi18n.__('email-invite-register-subject', params, lang), + text: TAPi18n.__('email-invite-register-text', params, lang), + }); } catch (e) { InvitationCodes.remove(_id); throw new Meteor.Error('email-fail', e.message); |