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 | |
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')
-rw-r--r-- | models/settings.js | 24 | ||||
-rw-r--r-- | models/users.js | 34 |
2 files changed, 28 insertions, 30 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); diff --git a/models/users.js b/models/users.js index edf1a203..7b484f92 100644 --- a/models/users.js +++ b/models/users.js @@ -383,24 +383,22 @@ if (Meteor.isServer) { board.addMember(user._id); user.addInvite(boardId); - if (Settings.findOne().mailUrl()) { - try { - const params = { - user: user.username, - inviter: inviter.username, - board: board.title, - url: board.absoluteUrl(), - }; - const lang = user.getLanguage(); - Email.send({ - to: user.emails[0].address.toLowerCase(), - from: Accounts.emailTemplates.from, - subject: TAPi18n.__('email-invite-subject', params, lang), - text: TAPi18n.__('email-invite-text', params, lang), - }); - } catch (e) { - throw new Meteor.Error('email-fail', e.message); - } + try { + const params = { + user: user.username, + inviter: inviter.username, + board: board.title, + url: board.absoluteUrl(), + }; + const lang = user.getLanguage(); + Email.send({ + to: user.emails[0].address.toLowerCase(), + from: Accounts.emailTemplates.from, + subject: TAPi18n.__('email-invite-subject', params, lang), + text: TAPi18n.__('email-invite-text', params, lang), + }); + } catch (e) { + throw new Meteor.Error('email-fail', e.message); } return { username: user.username, email: user.emails[0].address }; }, |