aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar André Oliveira <37463445+SpecialAro@users.noreply.github.com>2023-10-27 00:21:08 +0100
committerLibravatar GitHub <noreply@github.com>2023-10-27 00:21:08 +0100
commit3945548b602ae1ba91dc231869d27dab7f2f10fc (patch)
treee62a39568f31792e8382c66ef7cd07b8af310b82
parentBump actions/setup-node from 3 to 4 (#83) (diff)
downloadferdium-server-3945548b602ae1ba91dc231869d27dab7f2f10fc.tar.gz
ferdium-server-3945548b602ae1ba91dc231869d27dab7f2f10fc.tar.zst
ferdium-server-3945548b602ae1ba91dc231869d27dab7f2f10fc.zip
Fix recovery emails (#85)
* Fix recovery emails * Update sender to random smtp for tests
-rw-r--r--.env.test7
-rw-r--r--app/Models/User.ts15
-rw-r--r--config/mail.ts6
3 files changed, 25 insertions, 3 deletions
diff --git a/.env.test b/.env.test
index c522ba5..a37df8a 100644
--- a/.env.test
+++ b/.env.test
@@ -4,3 +4,10 @@ NODE_ENV=test
4ASSETS_DRIVER=fake 4ASSETS_DRIVER=fake
5SESSION_DRIVER=memory 5SESSION_DRIVER=memory
6APP_KEY=IDU2cMbrvS6iv5841YmFJSjnIqT1X1Nx 6APP_KEY=IDU2cMbrvS6iv5841YmFJSjnIqT1X1Nx
7
8MAIL_CONNECTION=smtp
9SMTP_HOST=smtp.freesmtpservers.com
10SMTP_PORT=25
11MAIL_SSL=false
12MAIL_REQUIRE_TLS=false
13MAIL_SENDER=random@random.host
diff --git a/app/Models/User.ts b/app/Models/User.ts
index 0ed4627..0b8e688 100644
--- a/app/Models/User.ts
+++ b/app/Models/User.ts
@@ -14,6 +14,9 @@ import randtoken from 'rand-token';
14import Token from './Token'; 14import Token from './Token';
15import Workspace from './Workspace'; 15import Workspace from './Workspace';
16import Service from './Service'; 16import Service from './Service';
17import Mail from '@ioc:Adonis/Addons/Mail';
18import { url } from 'Config/app';
19import { mailFrom } from 'Config/dashboard';
17 20
18export default class User extends BaseModel { 21export default class User extends BaseModel {
19 @column({ isPrimary: true }) 22 @column({ isPrimary: true })
@@ -66,6 +69,18 @@ export default class User extends BaseModel {
66 public async forgotPassword(): Promise<void> { 69 public async forgotPassword(): Promise<void> {
67 const token = await this.generateToken(this, 'forgot_password'); 70 const token = await this.generateToken(this, 'forgot_password');
68 71
72 await Mail.send(message => {
73 message
74 .from(mailFrom)
75 .to(this.email)
76 .subject('[Ferdium] Password Recovery')
77 .htmlView('emails/reset_password', {
78 username: this.username,
79 appUrl: url,
80 token: token,
81 });
82 });
83
69 await Event.emit('forgot:password', { 84 await Event.emit('forgot:password', {
70 user: this, 85 user: this,
71 token, 86 token,
diff --git a/config/mail.ts b/config/mail.ts
index 1210592..3f688ce 100644
--- a/config/mail.ts
+++ b/config/mail.ts
@@ -18,7 +18,7 @@ export default mailConfig({
18 | a mailer 18 | a mailer
19 | 19 |
20 */ 20 */
21 mailer: 'smtp', 21 mailer: Env.get('MAIL_CONNECTION', 'smtp'),
22 22
23 /* 23 /*
24 |-------------------------------------------------------------------------- 24 |--------------------------------------------------------------------------
@@ -50,8 +50,8 @@ export default mailConfig({
50 secure: JSON.parse(Env.get('MAIL_SSL', 'false')), 50 secure: JSON.parse(Env.get('MAIL_SSL', 'false')),
51 requireTLS: JSON.parse(Env.get('MAIL_REQUIRE_TLS', 'false')), 51 requireTLS: JSON.parse(Env.get('MAIL_REQUIRE_TLS', 'false')),
52 auth: { 52 auth: {
53 user: Env.get('SMTP_USERNAME'), 53 user: Env.get('MAIL_USERNAME'),
54 pass: Env.get('SMTP_PASSWORD'), 54 pass: Env.get('MAIL_PASSWORD'),
55 type: 'login', 55 type: 'login',
56 }, 56 },
57 maxConnections: 5, 57 maxConnections: 5,