1
0
Fork 0
mirror of synced 2024-08-20 20:51:40 +12:00

chore: fix template

This commit is contained in:
loks0n 2024-06-26 09:42:01 +01:00
parent 0d987045bf
commit 6353de6f10
4 changed files with 31 additions and 14 deletions

View file

@ -3,9 +3,9 @@
<p>{{body}}</p>
<ol>
<li>{{device}}</li>
<li>{{ipAddress}}</li>
<li>{{country}}</li>
<li>{{listDevice}}</li>
<li>{{listIpAddress}}</li>
<li>{{listCountry}}</li>
</ol>
<p>{{footer}}</p>

View file

@ -21,9 +21,9 @@
"emails.sessionAlert.subject": "New session alert for {{project}}",
"emails.sessionAlert.hello":"Hello {{user}}",
"emails.sessionAlert.body": "We're writing to inform you that a new session has been initiated on your {{b}}{{project}}{{/b}} account, on {{b}}{{dateTime}}{{/b}}. \nHere are the details of the new session: ",
"emails.sessionAlert.device": "Device: {{b}}{{agentDevice}}{{/b}}",
"emails.sessionAlert.ipAddress": "IP Address: {{b}}{{ipAddress}}{{/b}}",
"emails.sessionAlert.country": "Country: {{b}}{{country}}{{/b}}",
"emails.sessionAlert.listDevice": "Device: {{b}}{{agentDevice}}{{/b}}",
"emails.sessionAlert.listIpAddress": "IP Address: {{b}}{{ipAddress}}{{/b}}",
"emails.sessionAlert.listCountry": "Country: {{b}}{{country}}{{/b}}",
"emails.sessionAlert.footer": "If you didn't request the sign in, you can safely ignore this email. If you suspect unauthorized activity, please secure your account immediately.",
"emails.sessionAlert.thanks": "Thanks,",
"emails.sessionAlert.signature": "{{project}} team",
@ -43,7 +43,7 @@
"emails.recovery.subject": "Password Reset",
"emails.recovery.hello": "Hello {{user}}",
"emails.recovery.body": "Follow this link to reset your {{b}}{{project}}{{/b}} password.",
"emails.recovery.footer": "If you didnt ask to reset your password, you can ignore this message.",
"emails.recovery.footer": "If you didn't ask to reset your password, you can ignore this message.",
"emails.recovery.thanks": "Thanks",
"emails.recovery.signature": "{{project}} team",
"emails.invitation.subject": "Invitation to %s Team at %s",

View file

@ -73,9 +73,9 @@ function sendSessionAlert(Request $request, Locale $locale, Document $user, Docu
$message
->setParam('{{hello}}', $locale->getText("emails.sessionAlert.hello"))
->setParam('{{body}}', $locale->getText("emails.sessionAlert.body"))
->setParam('{{device}}', $locale->getText("emails.sessionAlert.device"))
->setParam('{{ipAddress}}', $locale->getText("emails.sessionAlert.ipAddress"))
->setParam('{{country}}', $locale->getText("emails.sessionAlert.country"))
->setParam('{{listDevice}}', $locale->getText("emails.sessionAlert.listDevice"))
->setParam('{{listIpAddress}}', $locale->getText("emails.sessionAlert.listIpAddress"))
->setParam('{{listCountry}}', $locale->getText("emails.sessionAlert.listCountry"))
->setParam('{{footer}}', $locale->getText("emails.sessionAlert.footer"))
->setParam('{{signature}}', $locale->getText("emails.sessionAlert.signature"));
@ -129,6 +129,7 @@ function sendSessionAlert(Request $request, Locale $locale, Document $user, Docu
$emailVariables = [
'direction' => $locale->getText('settings.direction'),
'dateTime' => DateTime::format(new \DateTime(), 'Y-m-d H:i:s'),
'user' => $user->getAttribute('name'),
'project' => $project->getAttribute('name'),
'agentDevice' => $agentDevice['deviceBrand'] ?? $agentDevice['deviceBrand'] ?? 'UNKNOWN',

View file

@ -1196,9 +1196,11 @@ class AccountCustomClientTest extends Scope
*/
public function testSessionAlert($data): void
{
$email = $data['email'] ?? '';
$password = $data['password'] ?? '';
$email = uniqid() . 'session-alert@appwrite.io';
$password = 'password123';
$name = 'Session Alert Tester';
// Enable session alerts
$response = $this->client->call(Client::METHOD_PATCH, '/projects/' . $this->getProject()['$id'] . '/auth/session-alerts', array_merge([
'origin' => 'http://localhost',
'content-type' => 'application/json',
@ -1210,6 +1212,21 @@ class AccountCustomClientTest extends Scope
$this->assertEquals(200, $response['headers']['status-code']);
// Create a new account
$response = $this->client->call(Client::METHOD_POST, '/account', array_merge([
'origin' => 'http://localhost',
'content-type' => 'application/json',
'x-appwrite-project' => $this->getProject()['$id'],
]), [
'userId' => ID::unique(),
'email' => $email,
'password' => $password,
'name' => $name,
]);
$this->assertEquals(201, $response['headers']['status-code']);
// Create a session for the new account
$response = $this->client->call(Client::METHOD_POST, '/account/sessions/email', array_merge([
'origin' => 'http://localhost',
'content-type' => 'application/json',
@ -1221,12 +1238,11 @@ class AccountCustomClientTest extends Scope
$this->assertEquals(201, $response['headers']['status-code']);
// Check if an email alert was sent
// Check the alert email
$lastEmail = $this->getLastEmail();
$this->assertEquals($email, $lastEmail['to'][0]['address']);
$this->assertStringContainsString('New session alert', $lastEmail['subject']);
$this->assertStringContainsString($response['body']['$id'], $lastEmail['text']); // Session ID
$this->assertStringContainsString($response['body']['ip'], $lastEmail['text']); // IP Address
$this->assertStringContainsString($response['body']['osName'], $lastEmail['text']); // OS Name
$this->assertStringContainsString($response['body']['clientType'], $lastEmail['text']); // Client Type