Skip to content

Commit dd18be0

Browse files
authored
Merge pull request #431 from jozefrebjak/develop
feat: add request info to all emails
2 parents 7e90fda + 2dd99db commit dd18be0

File tree

15 files changed

+170
-12
lines changed

15 files changed

+170
-12
lines changed

src/Authentication/Actions/Email2FA.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
use CodeIgniter\HTTP\IncomingRequest;
88
use CodeIgniter\HTTP\RedirectResponse;
9+
use CodeIgniter\I18n\Time;
910
use CodeIgniter\Shield\Authentication\Authenticators\Session;
1011
use CodeIgniter\Shield\Entities\User;
1112
use CodeIgniter\Shield\Entities\UserIdentity;
@@ -72,11 +73,15 @@ public function handle(IncomingRequest $request)
7273
return redirect()->route('auth-action-show')->with('error', lang('Auth.need2FA'));
7374
}
7475

76+
$ipAddress = $request->getIPAddress();
77+
$userAgent = (string) $request->getUserAgent();
78+
$date = Time::now()->toDateTimeString();
79+
7580
// Send the user an email with the code
7681
$email = emailer()->setFrom(setting('Email.fromEmail'), setting('Email.fromName') ?? '');
7782
$email->setTo($user->email);
7883
$email->setSubject(lang('Auth.email2FASubject'));
79-
$email->setMessage(view(setting('Auth.views')['action_email_2fa_email'], ['code' => $identity->secret]));
84+
$email->setMessage(view(setting('Auth.views')['action_email_2fa_email'], ['code' => $identity->secret, 'ipAddress' => $ipAddress, 'userAgent' => $userAgent, 'date' => $date]));
8085

8186
if ($email->send(false) === false) {
8287
throw new RuntimeException('Cannot send email for user: ' . $user->email . "\n" . $email->printDebugger(['headers']));

src/Authentication/Actions/EmailActivator.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use CodeIgniter\HTTP\IncomingRequest;
99
use CodeIgniter\HTTP\RedirectResponse;
1010
use CodeIgniter\HTTP\Response;
11+
use CodeIgniter\I18n\Time;
1112
use CodeIgniter\Shield\Authentication\Authenticators\Session;
1213
use CodeIgniter\Shield\Entities\User;
1314
use CodeIgniter\Shield\Entities\UserIdentity;
@@ -43,11 +44,18 @@ public function show(): string
4344

4445
$code = $this->createIdentity($user);
4546

47+
/** @var IncomingRequest $request */
48+
$request = service('request');
49+
50+
$ipAddress = $request->getIPAddress();
51+
$userAgent = (string) $request->getUserAgent();
52+
$date = Time::now()->toDateTimeString();
53+
4654
// Send the email
4755
$email = emailer()->setFrom(setting('Email.fromEmail'), setting('Email.fromName') ?? '');
4856
$email->setTo($userEmail);
4957
$email->setSubject(lang('Auth.emailActivateSubject'));
50-
$email->setMessage(view(setting('Auth.views')['action_email_activate_email'], ['code' => $code]));
58+
$email->setMessage(view(setting('Auth.views')['action_email_activate_email'], ['code' => $code, 'ipAddress' => $ipAddress, 'userAgent' => $userAgent, 'date' => $date]));
5159

5260
if ($email->send(false) === false) {
5361
throw new RuntimeException('Cannot send email for user: ' . $user->email . "\n" . $email->printDebugger(['headers']));

src/Controllers/MagicLinkController.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
use App\Controllers\BaseController;
88
use CodeIgniter\Events\Events;
9+
use CodeIgniter\HTTP\IncomingRequest;
910
use CodeIgniter\HTTP\RedirectResponse;
1011
use CodeIgniter\I18n\Time;
1112
use CodeIgniter\Shield\Authentication\Authenticators\Session;
@@ -90,11 +91,18 @@ public function loginAction()
9091
'expires' => Time::now()->addSeconds(setting('Auth.magicLinkLifetime'))->format('Y-m-d H:i:s'),
9192
]);
9293

94+
/** @var IncomingRequest $request */
95+
$request = service('request');
96+
97+
$ipAddress = $request->getIPAddress();
98+
$userAgent = (string) $request->getUserAgent();
99+
$date = Time::now()->toDateTimeString();
100+
93101
// Send the user an email with the code
94102
$email = emailer()->setFrom(setting('Email.fromEmail'), setting('Email.fromName') ?? '');
95103
$email->setTo($user->email);
96104
$email->setSubject(lang('Auth.magicLinkSubject'));
97-
$email->setMessage(view(setting('Auth.views')['magic-link-email'], ['token' => $token]));
105+
$email->setMessage(view(setting('Auth.views')['magic-link-email'], ['token' => $token, 'ipAddress' => $ipAddress, 'userAgent' => $userAgent, 'date' => $date]));
98106

99107
if ($email->send(false) === false) {
100108
log_message('error', $email->printDebugger(['headers']));

src/Language/de/Auth.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,12 @@
6464
'userDoesNotExist' => 'Passwort wurde nicht geändert. Der Benutzer existiert nicht',
6565
'resetTokenExpired' => 'Tut mir leid. Ihr Reset-Token ist abgelaufen.',
6666

67+
// Email Globals
68+
'emailInfo' => 'Einige Informationen über die Person:',
69+
'emailIpAddress' => 'IP Adresse:',
70+
'emailDevice' => 'Gerät:',
71+
'emailDate' => 'Datum:',
72+
6773
// 2FA
6874
'email2FATitle' => 'Zwei-Faktor-Authentifizierung',
6975
'confirmEmailAddress' => 'Bestätigen Sie Ihre E-Mail-Adresse.',

src/Language/en/Auth.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,12 @@
6464
'userDoesNotExist' => 'Password was not changed. User does not exist',
6565
'resetTokenExpired' => 'Sorry. Your reset token has expired.',
6666

67+
// Email Globals
68+
'emailInfo' => 'Some information about the person:',
69+
'emailIpAddress' => 'IP Address:',
70+
'emailDevice' => 'Device:',
71+
'emailDate' => 'Date:',
72+
6773
// 2FA
6874
'email2FATitle' => 'Two Factor Authentication',
6975
'confirmEmailAddress' => 'Confirm your email address.',

src/Language/es/Auth.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,12 @@
6464
'userDoesNotExist' => 'No se ha cambiado la contraseña. No existe el usuario',
6565
'resetTokenExpired' => 'Lo sentimos. Tu token de reseteo ha caducado.',
6666

67+
// Email Globals
68+
'emailInfo' => 'Algunos datos sobre la persona:',
69+
'emailIpAddress' => 'Dirección IP:',
70+
'emailDevice' => 'Dispositivo:',
71+
'emailDate' => 'Fecha:',
72+
6773
// 2FA
6874
'email2FATitle' => 'Authenticación de Doble Factor',
6975
'confirmEmailAddress' => 'Confirma tu dirección de email.',

src/Language/fa/Auth.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,12 @@
7373
'userDoesNotExist' => 'رمز عبور تغییر نکرد. کاربر وجود ندارد.',
7474
'resetTokenExpired' => 'متاسفانه، توکن بازنشانی شما منقضی شده است.',
7575

76+
// Email Globals
77+
'emailInfo' => 'برخی از اطلاعات درخواست کننده:',
78+
'emailIpAddress' => 'آدرس ای پی:',
79+
'emailDevice' => 'دستگاه:',
80+
'emailDate' => 'زمان:',
81+
7682
// 2FA
7783
'email2FATitle' => 'احراز هویت دو عاملی',
7884
'confirmEmailAddress' => 'آدرس ایمیل خود را تایید کنید.',

src/Language/fr/Auth.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,12 @@
6464
'userDoesNotExist' => 'Le mot de passe n\'a pas été modifié. L\'utilisateur n\'existe pas',
6565
'resetTokenExpired' => 'Désolé. Votre jeton de réinitialisation a expiré.',
6666

67+
// Email Globals
68+
'emailInfo' => 'Quelques informations sur la personne:',
69+
'emailIpAddress' => 'Adresse IP:',
70+
'emailDevice' => 'Dispositif:',
71+
'emailDate' => 'Jour:',
72+
6773
// 2FA
6874
'email2FATitle' => 'Authentification à deux facteurs',
6975
'confirmEmailAddress' => 'Confirmer votre adresse email.',

src/Language/id/Auth.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,12 @@
6464
'userDoesNotExist' => 'Kata sandi tidak diubah. User tidak ditemukan',
6565
'resetTokenExpired' => 'Maaf, token setel ulang Anda sudah habis waktu.',
6666

67+
// Email Globals
68+
'emailInfo' => 'Beberapa informasi tentang seseorang:',
69+
'emailIpAddress' => 'Alamat IP:',
70+
'emailDevice' => 'Perangkat:',
71+
'emailDate' => 'Tanggal:',
72+
6773
// 2FA
6874
'email2FATitle' => 'Otentikasi Dua Faktor',
6975
'confirmEmailAddress' => 'Alamat email konfirmasi Anda.',

src/Language/ja/Auth.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,12 @@
6464
'userDoesNotExist' => 'パスワードは変更されていません。ユーザーは存在しません', // 'Password was not changed. User does not exist',
6565
'resetTokenExpired' => '申し訳ありません。リセットトークンの有効期限が切れました。', // 'Sorry. Your reset token has expired.',
6666

67+
// Email Globals
68+
'emailInfo' => '本人に関する情報:',
69+
'emailIpAddress' => 'IPアドレス:',
70+
'emailDevice' => 'デバイス:',
71+
'emailDate' => '日時:',
72+
6773
// 2FA
6874
'email2FATitle' => '二要素認証', // 'Two Factor Authentication',
6975
'confirmEmailAddress' => 'メールアドレスを確認してください。', // 'Confirm your email address.',

0 commit comments

Comments
 (0)