Commit graph

24 commits

Author SHA1 Message Date
Kailash Nadh
296245a1b3 Add 2FA TOTP support for authentication.
- Allow users to enable TOTP 2FA from the profile page by scanning a QR code.
- Create new `internal/tmptokens` in-memory token store for temp tokens for
  temporary login -> 2FA flow.
- Refactor reset methods to use this package instead of inline locked map.
2025-11-20 23:23:54 +05:30
Kailash Nadh
75998ca5f6 Add Forgot password reset flow to the admin. Closes #2753.
- `Forgot password` link+form on the login page.
- A temporary TTL'd token (in-memory) is e-emailed to the user if the account is active.
- Simple reset password page followed by an instant login+redirect to the admin dashboard.
2025-11-19 00:29:51 +05:30
Meysam
a2bfc0b77e
feat: add subscriber activity tracking UI in admin panel (#2756)
* feat: add subscriber activity tracking UI in admin panel
* Apply minor cosmetic fixes to the subscriber activity forum.

- Remove dead icon references
- Remove new i18n language strings and reuse existing ones
- Refresh i18n languages with new strings
- Tweak styles

---------

Co-authored-by: Kailash Nadh <kailash@nadh.in>
2025-11-18 22:22:16 +05:30
Kailash Nadh
cdf0a5c153 Add CORS configuration to security settings.
This patch adds a new CORS config textbox in Settings -> Security that allows
configuring CORS origin domains per line.

Closes #2724
2025-10-25 14:33:25 +05:30
Kailash Nadh
6d99316528 Auto-translate new i18n language strings. 2025-09-09 22:35:48 +05:30
Kailash Nadh
961116468b Refresh i18n language files. 2025-08-16 16:57:32 +05:30
Vivek R
c9c678c04f
Add support for OIDC user auto-creation (#2578)
This patch adds 3 new options to OIDC settings.

Toggle user auto-creation, and select default user/list roles
for auto-created users.

Co-authored-by: Kailash Nadh <kailash@nadh.in>
2025-07-20 16:11:45 +05:30
Kailash Nadh
1599957dca Add and auto-translate missing i18n strings in all language packs. 2025-04-28 21:16:30 +05:30
Kailash Nadh
b8f50eafa3 Add support for domain allowlists in addition to blocklists. Closes #2230.
This patch introduces a new `Domain allowlist` input in Settings -> Privacy UI
as a new tab alongside domain `Domain blocklist`. If any domains are entered
here, then only subscriptions/imports/additions of e-mails from those particular
domains are accepted. blocklist is mutually exclusive with allowlist when there
are values in the allowlist.
2025-03-29 23:31:34 +05:30
Kailash Nadh
ef8f31919d Remove obsolete language key and refresh i18n files. 2025-03-29 14:08:25 +05:30
Kailash Nadh
2defef3857 Refactor SMTP name to always have email- prefix for consistency. 2025-02-14 18:38:47 +05:30
lcd1232
d055cc5311
Add support for selecting SMTP per campaign (#2290)
This patch adds a new optional `name` field to SMTP server config on the UI.
When a name is given to an SMTP server, it's initialized as a standalone messenger
which shows up as a sub-group item under the main "email" messenger
on the campaign page.

Co-authored-by: Kailash Nadh <kailash@nadh.in>
2025-02-11 22:41:45 +05:30
Kailash Nadh
61c6b7e15a Add explicit Unschedule button on campaign UI. 2025-01-19 16:27:39 +05:30
Shaun Warman
cb8b54fd00
Add ForwardEmail (provider) bounce integration (#2016)
* Add ForwardEmail one-click SMTP form option.
* Add bounce webhook integration.

---------

Co-authored-by: Kailash Nadh <kailash@nadh.in>
2024-11-10 21:45:07 +05:30
Kailash Nadh
fd04fc1c3a Refresh i18n language files and add (GPT 3.5) auto-translations for new strings. 2024-10-27 17:38:51 +05:30
Kailash Nadh
39463d719d Refresh i18n langauge strings. 2024-10-13 18:58:28 +05:30
Kailash Nadh
f9120d9b80 Auto-translate one missing i18n key.. 2024-02-04 16:47:36 +05:30
Kailash Nadh
36e39e51b3 Auto-translate missing i18n scripts. 2024-02-04 16:26:54 +05:30
Kailash Nadh
74ef6f5033 Add a 'view' link on the lists page. Closes #1674. 2024-01-27 22:25:21 +05:30
Kailash Nadh
5a3664aee2 Add support for caching slow queries on large databases.
- Add materialized views for list -> subscriber counts, dashboard chart,
  and dashboard aggregate stats that slow down significantly on large
  databases (with millions or tens of millions of subscribers). These
  slow queries involve full table scan COUNTS().

- Add a toggle to enable caching slow results in Settings -> Performance.

- Add support for setting a cron string that crons and periodically
  refreshes aggregated stats in materialized views.

Closes #1019.
2024-01-27 15:51:12 +05:30
Kailash Nadh
d8ca26e747 Add a 'template reference' docs link next to campaign editor. Closes #1405. 2024-01-10 22:07:40 +05:30
Kailash Nadh
0d319ad9fd Add 'slug' (permalink) support for campaign archives. Closes #1394. 2024-01-09 23:34:08 +05:30
Kailash Nadh
a2629c2c31 Make all ID/UUID labels on the UI onclick -> clipboard copy. 2023-12-31 21:39:19 +05:30
Isaak Tsalicoglou
fa506643a4
Add i18n Greek translation (#1605) 2023-11-27 12:53:28 +05:30