Commit Graph

990 Commits

Author SHA1 Message Date
Son NK 3545ae7d97 improve intro 2020-09-12 14:32:55 +02:00
Son NK 76175dc517 update batch import wording 2020-09-11 16:49:39 +02:00
Son NK f664243e42 add batch-import page 2020-09-10 20:14:55 +02:00
Son NK a0b50762ee remove "how to use" on custom domain page 2020-09-08 13:51:46 +02:00
Son NK 7b6e58ef95 always show the "how to send email" help 2020-09-08 13:51:00 +02:00
Son NK 2d395f99bb make sure to remove whitespace in alias 2020-09-02 09:56:16 +02:00
Son NK 6629b8687b set cookie setup_done=true on the setup_done page 2020-09-01 20:47:57 +02:00
Son NK e4c4797cdb do not mark a domain as unverified if it fails the MX check 2020-08-31 17:11:18 +02:00
Son NK e117726cd9 send alert email when a mailbox is an email alias 2020-08-30 19:06:50 +02:00
Son NK fdedc24358 black new version 2020-08-27 10:20:48 +02:00
Son NK f213469e9f display nb-reply, nb-forward on alias contact page 2020-08-26 11:45:07 +02:00
Son Nguyen Kim 637bc569eb
Merge pull request #260 from FabioWidmer/improvements-1
Improvements for Self Hosting & More
2020-08-24 20:16:59 +02:00
Son NK 9237f43c19 use warning log level for tampered alias 2020-08-24 19:58:21 +02:00
Son NK 30fe09185f create get_alias_infos_with_pagination_v3 - reduce nb queries used in get_alias_infos_with_pagination_v2 2020-08-21 19:51:48 +02:00
Son NK c77b0c07b4 fix alias sorting 2020-08-20 10:11:41 +02:00
Son NK b8e0ee424c pass userId to Paddle 2020-08-20 09:44:45 +02:00
Son NK 7e345e4db3 fix typo 2020-08-19 10:03:07 +02:00
Son NK 7f34dc1a20 remove auto email fill-up on paddle 2020-08-19 09:22:54 +02:00
Son NK 359eec23c0 take into account spam email during reply phase on refused email page 2020-08-15 16:58:11 +02:00
Son NK f9300009e5 refactor: rename forward -> contact 2020-08-15 16:56:16 +02:00
Fabio Widmer 9226492f83
More self hosting improvements 2020-08-14 16:23:29 +02:00
Son NK 4434ad62dd handle the case 2 users want to use the same email address 2020-08-13 11:00:48 +02:00
Son NK b395c2ebd0 use warning log for FIDO error 2020-08-12 12:48:51 +02:00
Son NK 1f0ef13ff2 do not require user to re-enter TOTP code when cancelling TOTP 2020-08-05 12:30:56 +02:00
Son NK f17608df50 add link back to home page in recovery page 2020-08-05 12:28:20 +02:00
Son NK 6cb589350b avoid adding a built-in domain as custom domain 2020-08-04 21:07:45 +02:00
Son NK f2fb599664 Optimize Alias.get_contacts() to retrieve the latest reply for each contact in a single query 2020-08-04 11:37:59 +02:00
Son NK 918b18870f show mailboxes that a catch-all alias belongs to 2020-08-01 12:41:48 +02:00
Son NK f5bc166f39 able to choose mailboxes for a domain 2020-08-01 12:31:02 +02:00
Son NK ec8f120085 small fixes in directory.py 2020-08-01 12:22:52 +02:00
Son NK 68eeb2e121 add rel="noopener" for target="_blank" link 2020-07-30 10:09:10 +02:00
Son NK 6437ee46e0 use LOG.exception instead of LOG.error to provide stacktrace 2020-07-17 12:59:07 +02:00
Son NK 515b3510a8 use warning when user is out of quota 2020-07-15 19:14:37 +02:00
Son NK 1bbc416ec1 fix the case public domain is also a custom domain for a specific user: check for public domain first. 2020-07-05 11:45:00 +02:00
Son NK f9cb40aa5b user can choose a random alias domain in a list of public domains 2020-07-04 23:29:06 +02:00
Son NK 5ed39b47ca add setup-done page 2020-07-04 19:42:48 +02:00
Son NK df96773959 show nb paid user on referral page 2020-07-02 08:48:59 +02:00
Son NK abe9768db4 user can update the random alias domain 2020-06-25 13:04:27 +02:00
Son NK 1a22d0cf9b fix domain can be null in self-hosting
# Conflicts:
#	app/api/views/new_custom_alias.py
#	app/dashboard/views/custom_alias.py
2020-06-15 15:58:05 +02:00
Son NK 4ee38823b8 make sure to strip and lower email 2020-06-11 23:35:24 +02:00
Son NK d85b32d56f prettify contact manager page 2020-06-07 13:41:59 +02:00
Son NK 08f4891492 use breadcrumb for contact header 2020-06-07 13:41:59 +02:00
Son NK 7b2d86552b fix popup display when edit contact 2020-06-07 13:41:59 +02:00
Son NK f708ee6bb2 improve wordings in alias contact manager page 2020-06-07 13:41:59 +02:00
Son NK afe975b8c3 User can add PGP key to for a contact 2020-06-07 13:40:24 +02:00
Son NK e5b60d9251 prettify directory page 2020-06-05 23:25:37 +02:00
Son NK bc01479a72 user can update directory mailboxes 2020-06-05 22:13:35 +02:00
Son NK 18b530fe6f Able to set mailboxes when creating directory 2020-06-05 22:12:21 +02:00
Son NK 50a7442d02 update notification email 2020-06-03 21:37:44 +02:00
Son NK ecab3ea6ed take into account the case premium user obtains a lifetime license
- do not show subscription expired date
- show lifetime plan message on settings page
2020-06-03 21:32:15 +02:00
Son NK d76aad3f17 format 2020-06-03 20:05:05 +02:00
Son NK 89dd8663ce fix alias is None 2020-06-03 20:04:54 +02:00
Son Nguyen Kim 1e00ea300a
Merge pull request #214 from FozzieHi/reword
Reword some sentences.
2020-05-29 19:59:39 +02:00
George a9460f120b
Change 2FA text 2020-05-29 13:51:56 +01:00
George d10a993e9d
Fix typo 2020-05-29 13:46:50 +01:00
George b9fd211acb
Fix lifetime user message 2020-05-29 13:46:06 +01:00
George 007768a5bb
User is able to view recovery codes. 2020-05-29 13:34:14 +01:00
George c28484130b
Fix 2FA message 2020-05-29 13:33:14 +01:00
George 1c57dca4f3
Fix 2FA message 2020-05-29 13:32:55 +01:00
George 8635b37281
Add catch-all domains 2020-05-29 13:32:15 +01:00
George 9af4a6949a
Fix API key wording 2020-05-29 13:31:20 +01:00
Son NK 683b3e54d8 remove User.can_use_fido column: anyone can setup FIDO 2020-05-28 20:38:29 +02:00
George 6f78802c0a
Rename text box requirements. 2020-05-27 21:52:45 +01:00
George 972f651eca
Reword pricing page. 2020-05-27 19:45:29 +01:00
George aa8a8fafff
Change plan text. 2020-05-27 19:34:25 +01:00
Son NK 7a708ec41b Fix fido setup not working on Firefox
- disable form automatic submit when entering
- replace button by span to avoid automatic submit when clicking on the button on firefox
- check if key name is not empty
2020-05-27 20:28:31 +02:00
George 8c6cce9051
Change plan wording. 2020-05-27 19:04:16 +01:00
George fd58557f19
Reword the settings page. 2020-05-27 18:48:05 +01:00
George 299e51cc08
Reword some sentences. 2020-05-27 18:23:33 +01:00
Son NK eb6bfdd56f only show upgrade button to "free" lifetime user 2020-05-27 00:20:09 +02:00
Son NK b65328afe7 workaround browser cache for webauthn.js 2020-05-25 00:10:12 +02:00
Son NK c68fad741b Improve how to use directory 2020-05-24 23:55:49 +02:00
Son NK 22c5513909 fix ForeignKeyViolation 2020-05-24 20:35:52 +02:00
Sibren Vasse 097ac771b0 Prevent OTP replay attacks by invalidating last token 2020-05-24 19:23:16 +02:00
Son Nguyen Kim eb60028b1f
Merge pull request #199 from developStorm/webauthn-multiple-keys
Support Multiple Keys for WebAuthn
2020-05-24 18:56:42 +02:00
Son NK 44fbffb679 add how to use for contact page 2020-05-23 23:21:00 +02:00
Son NK 0b1131a412 improve wording 2020-05-23 23:20:47 +02:00
Son NK c47fb44c1e Pagination for contact page 2020-05-23 22:34:46 +02:00
Son NK b01c91423f display notifications. user can mark a notification as read. 2020-05-23 19:54:06 +02:00
Son NK dfb427e6da format 2020-05-23 19:50:36 +02:00
Son NK 9bb17533c1 no need to check for deletedAlias when changing mailbox or user email 2020-05-23 19:50:04 +02:00
Son NK adce27b88b Add DomainDeletedAlias.get_by check when creating custom alias 2020-05-23 19:49:40 +02:00
Son NK 2f087de061 can update mailbox email 2020-05-23 16:40:28 +02:00
Son NK 722bff319e add POST /api/mailboxes: create a new mailbox 2020-05-23 16:17:42 +02:00
Son NK 40ec9f44a4 check if an alias is domain trash before creating it 2020-05-23 11:51:35 +02:00
Son NK a3ff19dac4 create custom domain trash page 2020-05-23 11:48:43 +02:00
Son NK 281331bc51 use warning level for "Alias creation time expired" error 2020-05-21 20:05:54 +02:00
Son NK 32a9bd9095 make sure to use lowercase for mailbox email 2020-05-20 18:16:18 +02:00
Son NK 93d972df09 make sure to use lowercase for alias email 2020-05-20 18:12:14 +02:00
devStorm 4fd7bf40ab
use dt filter 2020-05-18 14:05:03 -07:00
devStorm 7bd97e13b0
fido_model -> fidos 2020-05-18 13:55:38 -07:00
devStorm ea914e0378
Rename FIDO->Fido 2020-05-18 13:54:05 -07:00
devStorm 7d1a744fe2
typo 2020-05-18 13:47:42 -07:00
devStorm 5c3d2c19c8
module level and can be prefixed 2020-05-18 13:46:13 -07:00
devStorm c0a751ff13
Put button inside the form 2020-05-18 13:45:02 -07:00
Son NK 300ece2440 pycharm format 2020-05-18 19:15:20 +02:00
Son NK e22f5d1c63 Improve wordings 2020-05-18 19:14:52 +02:00
devStorm 0a59dd5638
Activate key on enter 2020-05-18 05:27:57 -07:00
devStorm d91fbb563a
Remove debug keys 2020-05-18 05:11:54 -07:00
devStorm 45023cd775
Copywriting consistency 2020-05-18 05:10:19 -07:00
devStorm b64ed7ad63
key management page 2020-05-18 05:07:06 -07:00
devStorm 6ea17b4feb
remove debug code for sudo 2020-05-18 03:03:14 -07:00
devStorm 6509053fa8
named key 2020-05-18 02:55:41 -07:00
devStorm 0cdd0b3b07
black 2020-05-18 02:15:52 -07:00
devStorm f79eb90d2a
sudo mode 2020-05-18 02:14:40 -07:00
devStorm 35f0c094fe
black 2020-05-18 01:04:45 -07:00
devStorm 2b8febe0b9
black 2020-05-18 00:06:24 -07:00
devStorm 9fb91c83e7
more setup 2020-05-18 00:01:27 -07:00
devStorm f2f6e13af7
DB & Setup ready for multi-keys 2020-05-17 22:05:37 -07:00
Sibren Vasse e905e151ca Create user setting for replacing reverse alias (default: false) 2020-05-17 19:40:46 +02:00
Son NK 12b76dd33b Merge branch 'master' into alias-disable-pgp 2020-05-17 10:46:44 +02:00
Son NK 043ecd4fac redirect user to recovery codes page after MFA setup. Remove all recovery codes when user is no more MFA. 2020-05-17 10:11:38 +02:00
Son NK 3f7842ed3e create /recovery_code page 2020-05-17 10:05:55 +02:00
Son NK 13bb9810b6 use can disable PGP on an alias 2020-05-16 20:51:07 +02:00
Son NK 5e6454e6de use a different class for alias toggle 2020-05-16 20:51:07 +02:00
Son NK 62ed7def00 fix wording 2020-05-16 20:50:27 +02:00
Sibren Vasse a5f24e0227 Add more From: sender formatting options 2020-05-16 18:44:31 +02:00
Son NK a4d17e7afc use multiple-select instead of bootstrap-select 2020-05-16 12:17:26 +02:00
Son NK 362d101bab Merge branch 'master' into multiple-mailboxes
# Conflicts:
#	app/dashboard/templates/dashboard/custom_alias.html
#	email_handler.py
#	templates/emails/com/newsletter/mobile-darkmode.html
2020-05-16 11:28:25 +02:00
Son Nguyen Kim d97b52184e
Merge pull request #186 from SibrenVasse/dark_flash
Frontend improvements
2020-05-15 23:37:30 +02:00
Son NK 7ed77a66b2 format 2020-05-15 23:18:42 +02:00
Son NK 2978bfb281 Fix user cannot change personal email back and better naming.
Happens when user
- changes their personal email
- wants to change back: they can't as this email is already used as mailbox
2020-05-15 23:18:30 +02:00
Son NK 0b652cf3f8 remove AliasMailbox.user_id column 2020-05-15 16:35:57 +02:00
Sibren Vasse 012bc52694 Fix formatting 2020-05-15 13:42:48 +02:00
Sibren Vasse e44d92705c Add missing last_page check (index) Move disabled class to correct element (alias_log) 2020-05-15 13:42:48 +02:00
Sibren Vasse cb269a1bbe Change pagination style 2020-05-15 13:42:48 +02:00
Sibren Vasse c7530947d3 On domain check fail, update database 2020-05-14 15:05:04 +02:00
Son NK 591fee301e prettify dns page 2020-05-11 23:23:08 +02:00
Son NK 70e842789e make pages compatible with dark-theme 2020-05-11 23:22:15 +02:00
Son NK cbfeee4e28 display list of mailboxes in alias contact manager 2020-05-10 20:09:54 +02:00
Son NK 8f35290a21 fix overflow error when there are several mailboxes 2020-05-10 20:09:54 +02:00
Son NK bc55b98e12 display mailbox that a bounce affects 2020-05-10 20:09:54 +02:00
Son NK e704497b0f make sure prefix is not empty before submitting 2020-05-10 20:09:54 +02:00
Son NK e52f2ca6de Support multiple mailboxes in custom alias page 2020-05-10 20:09:54 +02:00
Son NK b375f87d2c User can update multiple mailboxes 2020-05-10 20:09:54 +02:00
doanguyen 7ef78c991f Dark mode implementation
* Using CSS variable as a solution
* The new darkmode css is now live in another file so that upgarding
dashboard.css doesn't affect the darkmode itself
* Used a naive darkmode controller by client javascript. No persistance
state is stored in the backend at the moment
2020-05-10 16:52:14 +02:00
Son NK 8244fa01e7 only show advanced options when spf_available 2020-05-10 09:21:55 +02:00
Son NK 0bfd6b3ec7 remove deleted_alias page 2020-05-10 09:20:08 +02:00
Son NK 178515dbde alert user when spf fails 2020-05-09 23:00:30 +02:00
Son NK 4e4eda4efa display enforce-SPF option. Change wording. 2020-05-09 22:29:32 +02:00
Son NK b95b758692 Optimize imports 2020-05-09 20:49:38 +02:00
Son Nguyen Kim b95d815e5c
Merge pull request #168 from simple-login/global-trash
Global trash
2020-05-09 18:08:51 +02:00
Son Nguyen Kim 5fa2a86f23
Merge pull request #170 from developStorm/webauthn-patch
🐛 WebAuthn bug fixes
2020-05-09 18:05:34 +02:00
Son NK 295c2fd03f Hide the SPF toggle 2020-05-09 17:34:59 +02:00
Son NK 2d8f056e11 Fix wording 2020-05-09 17:26:26 +02:00
Son Nguyen Kim e23887bb37
Merge pull request #164 from SibrenVasse/spf
Enforce SPF
2020-05-09 14:37:09 +02:00
Sibren Vasse 001079bdc5 Enforce SPF 2020-05-09 14:15:08 +02:00
devStorm d236f906ad
🐛 WebAuthn bug fixes
- User may not have name
- user_verification should be discouraged to work on iOS
2020-05-08 14:21:38 -07:00
Son NK 75a28c53cf fix grammar mistake 2020-05-08 13:40:21 +02:00
Son NK ad194c46f2 remove lifetime licence in pricing page 2020-05-08 12:38:42 +02:00
Son NK 2f5a03dcad make sure to add alias into global trash when deleting it 2020-05-07 22:27:27 +02:00
Son NK c85ea1538e Allow the same mailbox used by different user 2020-05-07 21:47:11 +02:00
Son NK 806f7016ae fix: wrongly set alias custom_domain when custom_domain is in EMAIL_ALIAS 2020-05-07 20:48:11 +02:00
Son NK 4709237b92 only user with can_use_fido can use fido 2020-05-07 17:58:24 +02:00
Son NK 84c529c867 optimize import 2020-05-07 17:49:29 +02:00
Son Nguyen Kim e35fb631cf
Merge pull request #159 from developStorm/master
Implement WebAuthn
2020-05-07 17:47:06 +02:00
devStorm e4895b52a0
fix SITE_URL 2020-05-07 05:34:17 -07:00
devStorm f7e3320242
model - fido_enabled 2020-05-07 05:32:52 -07:00
devStorm 9b8340f3e0
Black formatted 2020-05-07 02:53:28 -07:00
devStorm 0052dad13e
Do not show full error msg to user 2020-05-07 02:48:56 -07:00
devStorm 282cbe25a3
Calculate RP_ID in config 2020-05-07 02:39:30 -07:00
devStorm c38b3c768c
fix SimpleLogin brand name 2020-05-07 02:34:19 -07:00
devStorm 3ab3f819b7
Make RP_ID a constant 2020-05-07 02:33:24 -07:00
devStorm b8b1313db9
typo 'infomation' 2020-05-07 02:31:42 -07:00
Son NK 35b1972730 increase the expired alias creation session to 600 secs 2020-05-06 10:10:47 +02:00
Son NK d9e9a54082 add more info in "alias expire" error 2020-05-06 10:09:17 +02:00
Son NK e9d03d1d4b Handle the case where a deleted mailbox verification link is clicked 2020-05-06 10:06:05 +02:00
devStorm 370b71ebd3
Setting page options 2020-05-05 05:28:27 -07:00
devStorm 650d6e35f0
FIDO login middleware 2020-05-05 05:03:29 -07:00
Son NK 103418dff7 Strip off http:// or https:// prefix in domain 2020-05-05 12:46:32 +02:00
Son NK 3eb904c882 set max length for domain 2020-05-05 12:46:11 +02:00
devStorm 286b1143ca
Store sign count 2020-05-05 03:16:52 -07:00
devStorm 705941b8b8
Unlink security key 2020-05-05 02:20:52 -07:00
devStorm a32b69078f
Key registration (Backend) 2020-05-05 01:58:42 -07:00
devStorm 3ce4dfb371
Security key setup page (front-end) 2020-05-05 01:32:49 -07:00
Sibren Vasse 0e4799030d Add default alias name to custom domain 2020-05-03 19:35:02 +02:00
Son NK 4ca6b02047 fix DKIM cname check 2020-05-03 12:48:42 +02:00
Son NK 753e82d490 Add DMARC 2020-05-03 12:01:31 +02:00
Son NK 6a42673229 remove the copy button, use CNAME for DKIM 2020-05-03 11:19:14 +02:00
Son NK 625def2367 use 2-column layout for api key, domain, directory, mailbox 2020-05-03 10:48:21 +02:00
Son NK 8a147e36a7 create how-to-use section for api key, domain, directory, mailbox 2020-05-03 10:47:29 +02:00
Son NK fe73005d49 fix referral display on mobile 2020-05-03 10:46:35 +02:00
Son NK eff0eb9e32 can delete referral 2020-05-02 18:14:09 +02:00
Son NK 1667356742 User can update/create referral name 2020-05-02 18:11:10 +02:00
Son NK 9874422700 refactor custom_alias: create available_suffixes() 2020-05-02 12:34:11 +02:00
Son NK 8467d2b934 fix <select>: add "form-control" class on all <select> 2020-05-02 12:28:20 +02:00
Son NK 0edcc25289 refactor verify_prefix_suffix: remove user_custom_domains param 2020-05-02 12:27:54 +02:00
Son NK db92003e5f Anti tamper: avoid submitting any suffix 2020-05-02 12:15:03 +02:00
Son NK 9a4df685da remove referral section from Settings 2020-05-01 18:32:35 +02:00
Son NK ef58b935d4 remove unused code 2020-04-30 22:39:31 +02:00
Son NK 7277c30735 use bootbox instead of notie 2020-04-30 22:37:39 +02:00
Son NK b750c6e011 prettify some pages 2020-04-28 20:25:40 +02:00
Son NK 0bb311464c remove custom-select as it's not displayed properly 2020-04-28 20:23:24 +02:00
Son NK cc6293d698 Order mailbox by created order 2020-04-28 20:22:37 +02:00
Son NK d46e8e52a4 Order directory by created order 2020-04-28 20:09:57 +02:00
Son NK d453c83974 order api key by created order 2020-04-28 20:08:45 +02:00
Son NK e1d8c55a66 add mention of MyDigiPassword to the 2FA app list 2020-04-28 19:52:18 +02:00
Son NK fd90811e85 Prettify alias contact manager 2020-04-27 19:58:55 +02:00
Son NK 01cc07b9fe change the general stats: display #alias, forward, reply, block 2020-04-27 09:30:08 +02:00
Son NK 23c17b8cff Fix filker reset when going to next page 2020-04-27 09:29:27 +02:00
Son NK 131a0473fd Move alias activity details into collapsed section 2020-04-26 18:53:00 +02:00
Son NK 76b4611bc2 Show global stats 2020-04-26 18:49:23 +02:00
Son NK c350bca488 collapsible filters 2020-04-26 18:24:43 +02:00
Son NK 18d1b59845 add vuejs to package.json 2020-04-26 17:51:47 +02:00
Son NK 7b2e4da87f Support alias filter 2020-04-26 13:04:27 +02:00
Son NK 12714ae601 Add Only enabled alias sorting option 2020-04-26 12:31:10 +02:00
Son NK 4c64393df1 Add other sorting options: A-Z, Z-A, new-old, old-new 2020-04-26 12:25:12 +02:00
Son NK 7021fd650b User can update alias name 2020-04-26 10:41:08 +02:00
Son NK 04713eff3d show alias creation date in "more" section if not shown yet 2020-04-26 10:02:10 +02:00
Son NK ee7e783f2a keep sort param when redirecting back to index 2020-04-25 15:31:20 +02:00
Son NK a2666cc4fe remove "set-mailbox" form post 2020-04-25 15:30:19 +02:00
Son NK 1a081f87c4 Remove "set-note" post form 2020-04-25 15:28:25 +02:00
Son NK fb9dc23529 remove form POST switch-email-forwarding 2020-04-25 15:26:07 +02:00
Son NK bbcd4fc355 remove "trigger-email" 2020-04-25 15:21:35 +02:00
Son NK af431c3d8b Handle alias can be None when deleting 2020-04-25 15:16:46 +02:00
Son NK 97544ac760 Update mailbox using ajax
refactor: return Mailbox in User.mailboxes()
2020-04-25 13:49:40 +02:00
Son NK 203eba9917 use Ajax for save note 2020-04-25 13:49:39 +02:00
Son NK 36aee86590 support sorting: Oldest Alias to Newest, 2020-04-25 13:49:39 +02:00
Son NK ca6350cc27 optimize import in all files 2020-04-25 13:49:39 +02:00
Son NK 95b71435f9 refactoring: use get_alias_infos_with_pagination_v2 2020-04-25 13:49:39 +02:00
Son NK 72f3e47c3c remove show_intro_test_send_email, highlight from AliasInfo 2020-04-25 13:49:39 +02:00
Son NK 5839c637f6 use pagination for alias 2020-04-25 13:49:39 +02:00
Son NK 4727249958 do not use alias_info.highlight 2020-04-25 13:49:39 +02:00
Son NK 6c1b39bc04 remove AliasInfo.latest_activity 2020-04-25 13:49:39 +02:00
Son NK 0c73a36773 disable/enable the send-email button when alias is enabled/disabled 2020-04-25 13:43:32 +02:00
Son NK 187d8c0ef2 put alias button to left, search to right 2020-04-25 13:43:14 +02:00
Son NK f34b9f6ca6 Prettify alias page: use collapsible layout 2020-04-25 13:42:53 +02:00
Son NK c61213fae9 use ajax to switch on/off alias 2020-04-25 13:42:53 +02:00
Son NK 7d35baddd4 do not ask for confirmation when enable/disable alias 2020-04-24 09:47:25 +02:00
Son NK ba105f076e Fix "new" badge appear on alias modification 2020-04-24 09:45:49 +02:00
Son NK f7f1e7f358 replace user.next_bill_date() by sub.next_bill_date.strftime("%Y-%m-%d") 2020-04-19 10:54:05 +02:00
Son NK 746cd2eb66 Use FIRST_ALIAS_DOMAIN in directory and custom alias 2020-04-15 22:52:30 +02:00
Son NK c17ecba202 add more logging 2020-04-15 21:34:22 +02:00
Son NK 5f784d683a Prettify 2020-04-15 09:16:42 +02:00
Son NK b838157ad5 User who has lifetime licence or giveaway manual subscriptions can decide to upgrade to a paid plan 2020-04-13 20:50:48 +02:00
Son NK 3d10fab3a6 Make sure to show intro to user only once 2020-04-13 13:23:17 +02:00
Son NK 6f59e7ea37 Update pricing page 2020-04-12 20:15:02 +02:00
Son NK e44860329b Make sure user cannot create more than 50 directories 2020-04-12 20:14:49 +02:00
Son NK b041591133 Prettify Settings 2020-04-12 19:43:46 +02:00
Son NK 9b91f4a4a4 support changing plan 2020-04-12 19:43:07 +02:00
Son NK 70c294bee0 Remove lifetime licence mention for students/professors/... 2020-04-12 11:59:23 +02:00
Son NK 6e1ac4b0e8 Add copy to clipboard in DNS setting 2020-04-11 20:01:47 +02:00
Son NK a0cdf3ae95 allow user having manual sub or canceled sub to upgrade to lifetime 2020-04-11 10:47:32 +02:00
Son NK 89c41f972c Add id to settings section 2020-04-09 23:01:29 +02:00
Son NK bb2476203f User can create referrals 2020-04-09 22:39:39 +02:00
Son NK 7ed317e334 Show alias creation date when no activity 2020-04-05 20:05:49 +02:00
Son NK cfdaf659f9 Make UI more consistent 2020-04-05 19:59:48 +02:00
Son NK b19dfc6ef4 Use forward/reply/blocked icon on alias page 2020-04-05 19:42:30 +02:00
Son NK e83f11342d prettify alias activity page 2020-04-05 19:28:57 +02:00
Son NK 460c306712 Order alias by latest activity instead of alias creation date. Show the latest activity & contact 2020-04-05 19:03:17 +02:00
Son NK bf0f8a913a remove AliasInfo.id 2020-04-05 16:57:47 +02:00
Son NK b0c3634e72 use dataclass for AliasInfo, remove note 2020-04-05 16:57:28 +02:00
Son NK 67d6ce1cea rename 2020-04-05 16:33:43 +02:00
Son NK 425fdc66c6 Move methods to api/serializer.py 2020-04-05 16:32:38 +02:00
Son NK f15488f96b refactor: move get_alias_infos_with_pagination, get_alias_info to alias.py 2020-04-05 16:21:13 +02:00
Son NK 2619333cc6 remove uses of website_from 2020-04-05 15:39:48 +02:00
Son NK fbcac59c7f Set contact name when adding contact via contact manager 2020-04-05 12:29:00 +02:00
Son NK 9c22bf479a rename 2020-04-05 12:19:37 +02:00
Son NK 6258ef0c11 Only display website_email instead of website_from in contact manager, alias log and refused emails 2020-04-05 12:02:08 +02:00
Son NK f7e5ab1e34 reaname 2020-04-04 19:21:31 +02:00
Son NK 4d8040c80d Add reverse_alias to GET /api/aliases/:alias_id/activities 2020-04-04 19:18:07 +02:00
Son NK 1c5d6e3299 rename 2020-04-04 19:11:10 +02:00
Son NK 0c2bce6931 Add PGP Encryption to pricing page 2020-04-03 23:39:27 +02:00
Son NK 5ff8ae00e5 only lower the email part when creating new contact 2020-04-02 21:30:36 +02:00
Son NK 7f85ec30bd Improve contact manager: lowercase the contact address before adding 2020-04-01 20:31:47 +02:00
Son NK ca5e3ac477 Refactoring: better naming 2020-03-30 21:46:52 +02:00
Son NK 7c0e4b369a fix contact not highlighted after creation 2020-03-30 21:41:18 +02:00
Son NK 33fd40f6ce User can choose which sender format they prefer 2020-03-28 22:36:19 +01:00
Son NK bf98fa00b7 Fix alias display 2020-03-22 23:30:55 +01:00
Son NK 5d0b4d4aca Fix: filter email log by current user 2020-03-20 11:39:45 +01:00
Son NK 6e54b4fed8 make sure to set user_id when creating contact 2020-03-20 09:54:38 +01:00
Son NK abd2278c24 make sure to set File.user_id 2020-03-20 09:52:00 +01:00
Son NK a529943dc4 Only premium user can add PGP key 2020-03-19 19:15:42 +01:00
Son Nguyen Kim 44e2e175ef
Merge pull request #115 from simple-login/rename
Rename
2020-03-19 10:39:05 +01:00
Son NK aaf254a26d order alias by creation date 2020-03-17 21:47:11 +01:00
Son NK a521002b2c Fix duplicate results 2020-03-17 20:16:20 +01:00
Son NK a465b1d3ca rename get_alias_info -> get_alias_infos 2020-03-17 19:59:48 +01:00
Son NK ac27ea5847 Improve UI 2020-03-17 12:06:26 +01:00
Son NK 2d90d35647 rename gen_email_id -> alias_id 2020-03-17 12:01:18 +01:00
Son NK 4f281bdbbb rename GenEmail -> Alias, gen_email to alias whenever possible 2020-03-17 11:51:40 +01:00
Son NK bea870ef8b rename ForwardEmailLog to EmailLog 2020-03-17 11:10:50 +01:00
Son NK f2d630e597 rename forward_id to contact_id 2020-03-17 11:05:53 +01:00
Son NK 17974de746 rename ForwardEmail to Contact 2020-03-17 10:56:59 +01:00
Son Nguyen Kim 269bca8ff3
Merge pull request #114 from simple-login/pgp-for-everyone
Open PGP to everyone
2020-03-17 09:53:42 +01:00
Son NK cc6e8a00a5 Wording: rename refused email to Quarantine 2020-03-17 09:43:12 +01:00
Son NK ea43b8f685 Open PGP to everyone 2020-03-17 09:22:29 +01:00
Son NK 027cbb10d9 use parseaddr instead of get_email_part 2020-03-15 22:32:48 +01:00
Son NK eb3063a57f Improve wording 2020-03-15 18:06:57 +01:00
Son NK 45d560fd70 fix 2020-03-15 12:14:43 +01:00
Son NK e21e27eefa Hide download for deleted refused emails 2020-03-15 11:14:58 +01:00
Son NK c3b85115ca Add refused-email view 2020-03-14 16:19:56 +01:00
Son NK 28c6c68a80 Use a better mailbox validation page 2020-03-14 14:45:37 +01:00
Son NK e713efee98 reformat 2020-03-13 10:34:41 +01:00
Son NK 417009b3be return note in GET /api/aliases 2020-03-11 12:16:45 +01:00
Son NK 9d25d099e1 use mailbox_already_used instead of email_already_used 2020-03-09 14:01:27 +01:00
Son NK fefc8cab71 Merge branch 'master' into staging 2020-03-09 13:55:10 +01:00
Son Nguyen Kim e4f3cb8e86
Merge pull request #102 from simple-login/cancel-sub
Cancel sub
2020-03-09 13:38:33 +01:00
Son NK 3be593ed09 prettify mailbox detail page 2020-03-09 13:35:32 +01:00
Son NK 86c1c8e54f fix button word-break: use flex 2020-03-09 10:42:58 +01:00
Son NK 3ef7285288 reduce logging level 2020-03-09 09:48:33 +01:00
Son NK 1c5c5896f8 Handle SMTPRecipientsRefused in send_email 2020-03-09 09:22:40 +01:00
Son NK b05daecd28 Handle unsign can generate other exceptions 2020-03-09 09:17:40 +01:00
Son NK aadda7cb0d handle the case new_email can be None if user cancels change in the meantime 2020-03-09 09:14:21 +01:00
Son NK 743170e983 Add more guide on mailbox detail 2020-03-09 09:09:22 +01:00
Son NK c1c3224a41 Merge branch 'cancel-sub' into staging 2020-03-08 23:13:23 +01:00
Son NK 911c38710e Only user with can_use_pgp on can use GPG 2020-03-08 23:12:35 +01:00
Son NK 5d5131f32c display 🗝 for PGP-enabled mailbox 2020-03-08 22:59:46 +01:00
Son NK 6200d4d1a0 redirect user to mailbox detail page when creating new mailbox 2020-03-08 22:59:19 +01:00
Son NK 486df7fefc set mailbox.pgp_finger_print when adding PGP key 2020-03-08 12:51:53 +01:00
Son NK 24fd19d6d9 user can set/remove pgp key 2020-03-08 12:30:48 +01:00
Son NK 1acbf173ea Handle subscription cancel directly 2020-03-08 10:28:13 +01:00
Son NK fac833b8e6 support the case user wants to re-add their real email as mailbox 2020-03-08 10:05:13 +01:00
Son NK a6f4059d5d make sure to set mailbox_id when creating GenEmail 2020-03-05 17:03:07 +01:00
Son NK ca70d26285 black format 2020-03-05 11:00:58 +01:00
Son NK 85321313c1 add a warning on payment page for canceled user 2020-03-05 10:22:53 +01:00
Son NK 3492935f95 Canceled user can upgrade again: the payment method is changed immediately though 2020-03-05 09:13:28 +01:00
Son NK 83d32244a5 remove Beta tag on mailboxes 2020-03-05 08:56:47 +01:00
Son NK f8ad733b91 display next_bill_date on billing page for canceled subscription 2020-03-05 08:11:35 +01:00
Son NK 7e4eb9e0db use MAILBOX_SECRET instead of FLASK_SECRET 2020-02-29 18:18:52 +07:00
Son NK 330bf91d95 remove unused code 2020-02-29 18:15:50 +07:00
Son NK f395841770 only premium plan can add additional mailbox 2020-02-29 18:12:55 +07:00
Son NK aeed62e95b All users use full-mailbox
- remove can_use_multiple_mailbox col
- remove full_mailbox col
2020-02-29 00:03:35 +07:00
Son NK 66654a3635 prettify alias page 2020-02-28 22:39:15 +07:00
Son NK f74beb2227 Improve deleted alias page 2020-02-23 17:36:45 +07:00
Son Nguyen Kim 321b81d794
Merge pull request #92 from simple-login/manual-sub
Manual sub
2020-02-23 17:07:53 +07:00
Son NK 77baf60ca4 Show user current plan in settings 2020-02-23 17:02:49 +07:00
Son NK 9958e1ab8e only full mailbox user can set default mailbox 2020-02-23 16:17:09 +07:00
Son NK f20930ac4e Assign random alias to default mailbox if user is full mailbox 2020-02-23 15:51:40 +07:00
Son NK 1fcbe32990 Can set a mailbox as default 2020-02-23 15:51:26 +07:00
Son NK 7febe6e15b cannot delete default mailbox 2020-02-23 15:41:53 +07:00
Son NK 0a5113962f remove autofocus on directory & mailbox 2020-02-23 15:10:59 +07:00
Son NK 3c2762dfad only show mailbox when mailbox email != user email 2020-02-23 14:40:37 +07:00
Son NK 362032b803 full_mailbox user can use mailbox 2020-02-23 14:09:57 +07:00
Son NK 731d898774 Handle mailbox change 2020-02-23 14:08:55 +07:00
Son NK aa784a0593 use red text for delete button 2020-02-23 14:04:20 +07:00
Son NK 571ff03115 handle case where mailbox_email is the same as user email 2020-02-23 14:04:00 +07:00
Son NK e4bb85ac87 Full-mailbox User can change alias mailbox 2020-02-23 13:58:09 +07:00
Son NK a467830a23 Add custom-select class to select element 2020-02-23 13:53:02 +07:00
Son NK bc0dc0265d Show mailbox when creating alias for user who has full_mailbox enabled 2020-02-23 13:41:59 +07:00
Son NK 70802bff17 Create User.mailboxes() 2020-02-23 13:41:27 +07:00
Son Nguyen Kim 773e24dd9a
Merge pull request #90 from simple-login/handle-bounced
Handle bounced
2020-02-22 22:37:11 +07:00
Son NK 332b4559f3 Prettify unsubscribe page 2020-02-22 22:10:09 +07:00
Son NK dddea7c54f fix formatting 2020-02-22 21:10:31 +07:00
Son NK f80de382fe Prettify alias log 2020-02-22 21:09:07 +07:00
Son NK 74d1f87db0 disable bounced email in alias log 2020-02-22 13:27:22 +07:00
Son NK a9a5f145aa fix showing unverified mailbox when creating new alias 2020-02-21 21:59:13 +07:00
Son NK 8639265946 allow user to show/hide api-key 2020-02-19 23:45:08 +07:00
Son NK c4765a28d6 pycharm format 2020-02-19 23:44:48 +07:00
Son NK f1c7c83dc3 prettify help section in custom alias 2020-02-18 11:59:03 +07:00
Son NK ab2aa2bfbb strip contact email before adding 2020-02-18 11:54:51 +07:00
Son NK b806d843e5 prettify custom alias page: show limits on the alias prefix 2020-02-18 11:54:35 +07:00
Son NK 8f8857704a Add deleted alias page 2020-02-15 21:47:27 +07:00
Son NK 8bbecb2cd1 Delete wrongly-aligned notification on mobile. Improve wordings 2020-02-15 21:38:28 +07:00
Son NK fd5e162d9b format alias-log 2020-02-15 21:37:24 +07:00
Son NK 0ced6bbb4f Prettify billing page 2020-02-15 21:22:46 +07:00
Son NK 83c2bb2b23 fix change email in settings 2020-02-14 09:34:19 +07:00
Son NK 641f8dfe9e Improve settings design 2020-02-13 17:05:34 +07:00
Son NK 5c4f46fdc2 Separate email change in setting screen 2020-02-13 16:57:17 +07:00
Son NK eec2020f0f only user with can_use_multiple_mailbox enabled can use this feature 2020-02-11 22:43:32 +07:00
Son NK 890bf1b3ed Add Mailbox to pricing, remove beta badge from directory 2020-02-10 23:52:41 +07:00
Son NK 144c7fcc6c fix verification email should be sent to mailbox 2020-02-10 23:50:18 +07:00
Son NK fc167b8b41 Display alias mailbox on alias page 2020-02-10 23:23:02 +07:00
Son NK b76a71819a User can choose mailbox when creating a new alias 2020-02-10 23:19:42 +07:00
Son NK b5d961a498 Take into account mailbox in contact manager and improve wording. 2020-02-10 23:18:19 +07:00
Son NK 8a531f6c86 User can add/delete/verify mailbox 2020-02-10 23:17:05 +07:00
Son NK 821372fdfd add email_already_used() and use it when creating user 2020-02-10 23:16:30 +07:00
Son NK 4cd8697abc use case-insensitive query when searching for alias 2020-02-08 22:00:40 +07:00
Son NK dd02a50bad Improve wordings
- forgot password page
- login page
- activation email
- reset password email
2020-02-06 11:37:10 +07:00
Son NK 98487aba10 take into account "note" in search 2020-02-05 17:38:23 +07:00
Son NK 11b04d5e4a user can update note in alias list page 2020-02-05 17:38:02 +07:00
Son NK 145bed893f user can set note when creating custom alias 2020-02-05 17:36:06 +07:00
Son NK 6fe689dc17 use store instead of localStorage to detect whether the intro has been shown 2020-02-05 14:33:00 +07:00
Son NK 1e4bab765d use PAGE_LIMIT in alias_log 2020-02-04 23:28:05 +07:00
Son NK 40cac56986 GET /api/aliases 2020-02-04 23:26:59 +07:00
Son NK f3c61f9a61 use left-join when fetching alias 2020-02-04 23:00:55 +07:00
Son NK cb2c6af4e4 npm qrious 2020-02-04 16:53:25 +07:00
Son NK cbcf93a9d9 put more space for alias 2020-02-02 21:16:00 +07:00
Son NK a30397a88f Improve alias page UI
- use 1 column layout for alias page when screen is <lg
- reduce space between search bar and header
- move alias switch to the right
2020-02-02 20:50:56 +07:00
Son NK c1a162e68b fix formating 2020-02-02 20:28:22 +07:00
Son NK cb24f5cac1 make user.name optional in settings 2020-02-02 20:27:18 +07:00
Son NK 2ca97368f8 Handle trial period
- user can upgrade to lifetime if in trial or free
- free or trial user can buy a subscription
- user has all features when in trial
2020-01-30 10:53:17 +07:00
Son NK 9f95edf203 Move billing button to setting page 2020-01-30 00:29:00 +07:00
Son Nguyen Kim d1baca67ff
Merge pull request #61 from simple-login/custom-alias-oauth-authorize
Custom alias oauth authorize
2020-01-30 00:04:22 +07:00
Son Nguyen Kim db5bd7d196
Merge pull request #59 from simple-login/fix-alias-log
Fix alias log
2020-01-29 23:59:26 +07:00
Son NK cce330a442 check if alias is not deleted before in custom-alias page 2020-01-29 23:57:20 +07:00
Son NK 9e2adb42c6 Order alias log by recency 2020-01-29 10:42:46 +07:00
Son NK fc22593bf6 avoid email loop
Prevent user from adding a domain that they are using for their personal email.
2020-01-28 15:16:26 +07:00
Son NK bc6daab595 display domains that can be used on directory 2020-01-26 22:29:35 +07:00
Son NK 99ffd6149d use can_be_used_as_personal_email when user registers or change emails 2020-01-26 19:51:43 +07:00
Son NK 8c14c25cec order alias by most recent ones 2020-01-23 20:19:58 +01:00
Son NK d6020d5fa0 pass highlight_gen_email_id via url query instead of session. Remove HIGHLIGHT_GEN_EMAIL_ID 2020-01-23 20:15:47 +01:00
Son NK 8c91d64c77 fix not setting custom_domain id when creating alias 2020-01-23 11:45:52 +01:00
Son NK 539bf56e97 improve custom alias check 2020-01-22 23:03:52 +01:00
Son NK 3f2f2cabf4 always use dropdown list for alias suffix 2020-01-22 22:51:52 +01:00
Son NK b5357d0f4e Handle the case where a previous deleted alias is re-created via catch-all or directory feature 2020-01-22 22:48:30 +01:00
Son NK 0c2b2ce60e fix styling 2020-01-22 14:08:00 +01:00
Son NK da8b110839 small fix 2020-01-22 14:05:42 +01:00
Son NK 8e7f5e56d6 add "your domain" to user's owned domain 2020-01-22 14:04:38 +01:00
Son NK bdf75951f1 support ALIAS_DOMAINS
- use verify_prefix_suffix() in /api/alias/custom/new
-
2020-01-22 10:24:17 +01:00
Son NK f7f8c6769d Improve custom alias help text 2020-01-22 10:24:17 +01:00
Son NK c969e6919a Use the same design as on extension for custom alias: domains are presented in a dropdown list 2020-01-22 10:24:17 +01:00
Son Nguyen Kim 204ccd34c9
Merge pull request #37 from simple-login/disable-suffix-option
Disable suffix option
2020-01-20 13:35:22 +01:00
Son NK cfd3f5db8f Add more help message to api-key and custom-domain 2020-01-20 11:16:04 +01:00
Son NK f56ba95b4d disable alias suffix by setting DISABLE_ALIAS_SUFFIX 2020-01-20 09:23:17 +01:00
Son NK 6f925170c5 Give more info on the directory 2020-01-19 22:34:31 +01:00
Son NK 6f414ba405 Support + and # as directory separator 2020-01-19 22:06:36 +01:00
Son Nguyen Kim 70e16bb415
Merge pull request #31 from simple-login/canceled-premium
Canceled premium
2020-01-19 14:57:45 +01:00
Son NK d2501e5961 make sure to "strip" custom domain before adding to DB 2020-01-19 14:09:13 +01:00
Son NK 13283b6327 Support cancelled premium users in custom domain & directory
- Freemium user can see custom domain and directory but could not add new.
- user who has added custom domain or directory before could delete them
2020-01-16 22:21:19 +01:00
Son NK e2974cdd60 make card responsive in alias log 2020-01-12 22:23:18 +01:00
Son NK 110b296f73 use alias_id instead of alias in contact manager page 2020-01-12 22:23:05 +01:00
Son NK f860471d50 fix slash in url: use alias_id instead of alias 2020-01-11 21:48:25 +01:00
Son NK 47bf6646fc Load our paddle.js if their CDN doesn't work 2020-01-10 18:36:31 +01:00
Son Nguyen Kim cdd69b381e
Merge pull request #27 from simple-login/staging
Fix postfix-python bouncing problem
2020-01-10 13:27:32 +01:00
doanguyen ef2e390df3 Merge branch 'staging' of https://github.com/simple-login/app into staging 2020-01-10 11:28:08 +01:00
doanguyen f8bd3800c3 better looking random button 2020-01-10 11:26:18 +01:00
Son NK 6778537083 only allow lowercase for alias 2020-01-09 20:43:03 +01:00
Son NK a9e7b53161 make sure directory is lowercase only 2020-01-09 20:38:02 +01:00
Son NK 851ddce5a5 Merge remote-tracking branch 'origin/master' into directory
# Conflicts:
#	email_handler.py
2020-01-09 10:37:33 +01:00
Son NK ecce1eff99 remove support for directory+anything@EMAIL_DOMAIN 2020-01-08 22:09:46 +01:00
Son NK cdae3c5309 add Directory page to add/delete directory 2020-01-08 21:38:01 +01:00
doanguyen f0c66d279b
Merge branch 'master' into staging 2020-01-08 21:10:57 +01:00
doanguyen fd31b77b06 Polish the interface 2020-01-08 19:49:26 +01:00
Son Nguyen Kim 634861e279
Merge pull request #22 from simple-login/alias-dashboard
Alias dashboard
2020-01-08 16:29:22 +01:00
Son NK d9f2ec214f add @ warning when setup DNS 2020-01-07 22:13:12 +01:00
Son NK aa10cdb3ee If domain is not verified, clicking on 🚫 brings user to DNS page 2020-01-07 21:53:00 +01:00
doanguyen d804a28c07 fix the format, again 2020-01-07 00:02:12 +01:00
doanguyen 6a99fd30c4 fix some minor bugs 2020-01-06 23:58:24 +01:00
Son NK ca37ce5e5a add id to notification section in setting 2020-01-06 19:41:05 +01:00
doanguyen 5af974fc5d alias log dashboard 2020-01-05 22:49:48 +01:00
Son NK 5053d343d1 Split lifetime licence to a separate page 2020-01-03 22:40:44 +01:00
Son NK abb2584a38 Prettify pricing page 2020-01-03 11:51:44 +01:00
Son NK df0e706bdd Fix scrolling in dns page 2020-01-03 11:51:18 +01:00
Son NK c9d58692bf Prettify some pages 2020-01-02 22:39:53 +01:00
Son NK f986371ff5 make sure to scroll to the same position in DNS page 2020-01-02 22:39:08 +01:00
Son NK ab3fe8a626 Flash errors when MX, SPF or DKIM fail 2020-01-02 22:22:09 +01:00
Son NK 3edd5f0b82 Show something when there's no DNS record 2020-01-02 22:21:54 +01:00
Son NK 9704219576 Fix product tour wording 2020-01-02 22:12:03 +01:00
Son NK 2a05e320e1 remove beta on send email button 2020-01-02 22:05:34 +01:00
Son NK 553777bc05 Move intro button to footer 2020-01-02 12:14:49 +01:00
Son NK 21cdb973f0 Improve intro 2020-01-02 12:14:39 +01:00
Son NK 4c4c4a81b8 autofocus mfa token input 2020-01-01 23:52:25 +01:00
Son NK ee3c75244e Fix custom domain has been added before 2020-01-01 23:51:40 +01:00
Son NK 3c05230bd3 User can use lifetime coupon 2020-01-01 20:04:39 +01:00
Son NK 026fe4addd get_subscription should only return *active* subscription. 2020-01-01 19:46:35 +01:00
Son Nguyen Kim eceee66bfe
Merge pull request #14 from simple-login/alias-log
Alias log
2020-01-01 19:02:23 +01:00
doanguyen e5b6cb8461 forget to remove the import 2019-12-31 20:22:46 +01:00
doanguyen 1162495b36 remove dataclasses completely, remove the slots magic 2019-12-31 20:20:17 +01:00
doanguyen a20f790fda add py36 2019-12-31 20:08:59 +01:00
Son NK 652e623111 make sure that user cannot use any suffix 2019-12-31 17:11:42 +01:00