Adrià Casajús
a539428607
Fix: If default domain is premium for free users do not offer it as an option ( #1763 )
...
* Fix: If default domain is premium for free users do not offer it as an option
* Refactored into simpler logic
---------
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-06-01 10:46:25 +02:00
Adrià Casajús
9d9e5fcab6
Fix: If the default domain is hidden do not return it ( #1761 )
...
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-05-31 17:59:49 +02:00
Adrià Casajús
ff33392398
Fix: use incorrect model to access profile picture path ( #1760 )
...
(cherry picked from commit e875f1dd40fe726f6e83aaa833f65eb9e10f7e94)
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-05-31 17:21:30 +02:00
Adrià Casajús
85964f283e
Add timeout to any outbound connection ( #1756 )
...
* Add timeout to any outbound connection
* Change log message to error
---------
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-05-31 14:19:43 +02:00
Carlos Quintana
d30183bbda
fix: remove user password from export user data ( #1758 )
2023-05-31 09:40:20 +02:00
Adrià Casajús
ed66c7306b
Fix typo ( #1755 )
...
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-05-29 17:50:41 +02:00
Adrià Casajús
07bb658310
Show the default domain for creating aliases even if it's not requested by a partner ( #1754 )
...
* Show the default domain in the suffixes even if it's not allowed
* Simplify logic
* Reformat
* Simplified logic
* Remove unused function
* Added test to validate suffixes
* Ensure we catch prefixes in test
---------
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-05-29 16:40:04 +02:00
Adrià Casajús
e43a2dd34d
Have subscription callback whenever a subscription changes ( #1748 )
...
* Have subscription callback whenever a subscription changes
* Fixed tests
---------
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-05-26 15:33:55 +02:00
Adrià Casajús
3de83f2f05
Add toggle to check if a user is premium without the partner subscription ( #1739 )
...
* Add toggle to check if a user is premium without the partner subscription
* fix test
* Parter created users do not have a newsletter alias id
---------
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-05-15 12:34:58 +02:00
Adrià Casajús
e4d4317988
Various fixes ( #1733 )
...
* Reset all password tokens on password reset
* Added csrf validation on email change request and validation
* Return the same wether is a valid email or not
---------
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-05-10 15:31:30 +02:00
Adrià Casajús
6dfb6bb3e4
Revert "Add code verification for creating mailboxes ( #1725 )" ( #1727 )
...
This reverts commit a5e7da10dd
.
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-05-09 18:04:04 +02:00
Adrià Casajús
a5e7da10dd
Add code verification for creating mailboxes ( #1725 )
...
* Add code verification for creating mailboxes
* Added validation checks
* Use exceptions
* Added delete to the mailbox utils
* Fix test
* Update package.lock
* Fix delete error
---------
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-05-09 16:35:58 +02:00
Adrià Casajús
5ddbca05b2
Check users aren't using an alias as their link email address for partner links ( #1724 )
...
(cherry picked from commit 93e24cb4239b812d46f119a982edd12de2406802)
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-05-08 18:47:10 +02:00
Adrià Casajús
7cb7b48845
Ensure coupons are only used once ( #1718 )
...
* Ensure coupons are only used once
* Update test to handle redirect
---------
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-05-03 16:18:46 +02:00
Son Nguyen Kim
6276ad4419
Stats endpoint ( #1716 )
...
* update some dependencies: newrelic, gevent
that isn't compatible with python 3.11 on mac
* update package-lock using npm 9.6.4 and node 20.0
* Add GET /api/stats
* update pytest
---------
Co-authored-by: Son Nguyen Kim <son@Sons-MacBook-Air-2.local>
2023-05-03 10:15:47 +02:00
Adrià Casajús
bec8cb2292
Alias domain as contact domain ( #1689 )
...
* Use the alias domain for contacts
* Check there are not duplicate emails
* Check also in trash
* Use helper
* Set VERP for the forward phase to the contact domain
* Add pgp_fingerprint as index for contacts
* Removed check trash
* Only use reply domains for sl domains
* Configure via db wether the domain can be used as a reverse_domain
* Fix: typo
* reverse logic
* fix migration
* fix test
---------
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
Co-authored-by: Son <nguyenkims@users.noreply.github.com>
2023-04-20 12:14:53 +02:00
Adrià Casajús
7f23533c64
Fix sever typo ( #1701 )
...
* Fix: typo
* Limit the name to 100 chars
* Fix migration
---------
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-04-20 11:06:59 +02:00
Adrià Casajús
62fecf1190
Add end_at index to PartnerSubscription ( #1696 )
...
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-04-15 20:49:59 +02:00
Adrià Casajús
796c0c5aa1
Add alias indexes in the tables that refer to alias to speedup the alias deletion process ( #1693 )
...
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-04-14 19:08:52 +02:00
Adrià Casajús
5a56b46650
Add pgp_fingerprint as index for contacts ( #1692 )
...
(cherry picked from commit 350d246d32
)
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-04-14 18:29:06 +02:00
Adrià Casajús
71fd5e2241
Reduce rate limit on password forgot route ( #1683 )
...
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-04-06 15:55:37 +02:00
Adrià Casajús
97cbff5dc9
Fix: add missing alias options ( #1682 )
...
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-04-06 12:42:18 +02:00
Adrià Casajús
b6f79ea3a6
Refactor alias options and add it to more methods ( #1681 )
...
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-04-06 11:07:13 +02:00
Adrià Casajús
43b91cd197
Create Partner only domains ( #1665 )
...
* Add Partner only domains
* Add hidden domain to the test and revert to default domains after the tests
* Send what to show in each call
* Fix: Pass none instead of false
* Removed flag from partnerusr
---------
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-04-04 15:21:51 +02:00
Son Nguyen Kim
03e5083d97
use {word1}_{word2}{digits} as random alias address instead of {word1}{word2}{digits} ( #1673 )
2023-04-04 08:46:29 +02:00
Son Nguyen Kim
1f9d784382
Use a shorter suffix in case of custom domain ( #1670 )
2023-03-28 22:33:28 +02:00
Son Nguyen Kim
b081b6a16a
track "visit pricing" and "upgraded" event ( #1662 )
2023-03-23 21:11:05 +01:00
Son Nguyen Kim
66039c526b
use PreserveOriginal as default ( #1652 )
2023-03-22 15:47:40 +01:00
Adrià Casajús
f722cae8d6
Add multiple registration warning message ( #1653 )
...
* Add multiple registration warning message
* Add alert
---------
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-03-22 15:35:33 +01:00
Son Nguyen Kim
b6286e3c1b
Fix recreate alias from trash ( #1641 )
...
* no need to check for a deleted alias that belongs to user domain
* fix config.SAVE_UNSENT_DIR not set
2023-03-17 15:39:59 +01:00
Son Nguyen Kim
b470ab3396
reset transfer token ( #1638 )
2023-03-17 11:47:11 +01:00
Adrià Casajús
66388e72e0
Feat: Use only sfw words with a number suffix ( #1625 )
...
* Feat: Use only sfw words with a number suffix
* Updated also custom aliases to have a number suffix
* do not use _ as separator
* use _ as separator for words-based suffix
---------
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
Co-authored-by: Son <nguyenkims@users.noreply.github.com>
2023-03-13 19:55:16 +01:00
Adrià Casajús
432fb3fcf7
Fix: Send different exception for users with an alias as email ( #1630 )
...
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-03-13 14:57:00 +01:00
Adrià Casajús
44e0dd8635
Break using an alias as a mailbox loop in the email_handler.py ( #1624 )
...
* Do not allow to use email alias as account email when linking
* Add missing status
* Remove TODO
* Also break contact as email loop
* Better test names
* Allow a reverse alias to send an email to an alias
* Ident fix
* Removed invalid test
---------
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-03-13 13:01:00 +01:00
Adrià Casajús
3fcb37f246
Reformat base64 encoded messages to shorter lines ( #1575 )
...
* Reformat base64 encoded messages to shorter lines
* Remove storing debug versions
* Add example test email
* Update linelength to 76
* Revert changes in pre-commit
---------
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-02-21 15:28:06 +01:00
Son Nguyen Kim
62ba2844f3
add admin page for InvalidMailboxDomain ( #1573 )
...
* add admin page for InvalidMailboxDomain
* show creation and modification date for InvalidMailboxDomain
2023-02-15 10:38:18 +01:00
Carlos Quintana
9143a0f6bc
fix: ensure contact name fits within db limits ( #1568 )
2023-02-10 10:07:43 +01:00
Adrià Casajús
48ae859e1b
Fix: Set the smtp default port in config to allow connect to port 25 with TLS ( #1564 )
...
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-02-06 16:53:10 +01:00
Son Nguyen Kim
170082e2c1
after deleting an alias, user should stay on the same page ( #1546 )
...
* after deleting an alias, user should stay on the same page
* Fix delete alias mlec (#1547 )
* Specify how to create the certificates if they don't exist in readme (#1533 )
* Remove id= from get 🩹
* Add flash message level 🩹
* Rename transfer_mailbox back to new_mailbox in the create-mailbox part 🩹
Co-authored-by: rubencm <rubencm@gmail.com>
* Fix delete alias mlec (#1552 )
* Specify how to create the certificates if they don't exist in readme (#1533 )
* Remove id= from get 🩹
* Add flash message level 🩹
* Rename transfer_mailbox back to new_mailbox in the create-mailbox part 🩹
* Linting files to pass test 🎨
Co-authored-by: rubencm <rubencm@gmail.com>
Co-authored-by: mlec <42201667+mlec1@users.noreply.github.com>
Co-authored-by: rubencm <rubencm@gmail.com>
2023-01-25 13:16:10 +01:00
Adrià Casajús
4f2b624cc7
Set the proper link for unsub newsletter ( #1503 )
...
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-01-17 11:56:00 +01:00
Adrià Casajús
81eb56e213
Tranfer aliases to a new mailbox when deleting mailboxes ( #1534 )
...
* Set up npm clean install instead of npm install in order to keep the version of npm packages 🎨
* Add option to transfer the alias to a new mailbox when a mailbox is deleted
* Moved alias transfer to job
* Lint
* Update forms
* Revert dockerfile change
Co-authored-by: ewen <ewen.coppens@a1.digital>
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-01-17 11:55:34 +01:00
Adrià Casajús
d874acfe2c
Fix: Add CSRF validation to api key management page ( #1523 )
...
* Fix: Add CSRF validation to api key management page
* Added csrf to subdomain creation
* Added CSRF to totp cancel
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-01-12 12:34:47 +01:00
Adrià Casajús
0ab53ad49a
Fix: Use timed signers to avoid leaving permanent links ( #1524 )
...
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-01-12 12:34:14 +01:00
Adrià Casajús
92de307c75
Added parallel limiting to creating custom domains, directories, mailboxes and subdomains ( #1525 )
...
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-01-11 22:08:52 +01:00
Adrià Casajús
38c93e7f85
Fix: typo in the message ( #1522 )
...
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2023-01-11 22:05:31 +01:00
Carlos Quintana
f2a840016b
chore: allow redis to support rediss ( #1526 )
2023-01-11 16:25:35 +01:00
Adrià Casajús
9378b8a17d
Fix: Return email in the get_communication_email always and search for the alias when needed ( #1497 )
...
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-12-19 09:23:53 +01:00
Adrià Casajús
3f84a63e6d
Extend validity of totp tokens for up to a minute. ( #1494 )
...
* Feat: Allow TOTP for up to one minute in the future and in the past
* Feat: Allow TOTP for up to one minute in the future and in the past
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-12-16 17:54:46 +01:00
Adrià Casajús
5e48d86efa
Canonicalize emails from google and proton before registering users ( #1493 )
...
* Revert "Revert "Use canonical email when registering users (#1458 )" (#1474 )"
This reverts commit c8ab1c747e
.
* Only canonicalize gmail and proton
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-12-14 11:50:36 +01:00
Adrià Casajús
9dcf063337
Rate limit changing user settings ( #1491 )
...
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-12-13 18:48:44 +01:00
Adrià Casajús
73c0429cad
Fix: Set oneclick link for unsubscribe of the newsletter for tx emails ( #1465 )
...
* Feat: Add unsub oneclick to the base transactional email template
* Format
* Removed unused
* Format
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-12-13 16:59:14 +01:00
Adrià Casajús
21e9fce3ba
Set the admin view to show 100 entries by default ( #1490 )
...
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-12-13 16:58:27 +01:00
Adrià Casajús
c8ab1c747e
Revert "Use canonical email when registering users ( #1458 )" ( #1474 )
...
* Revert "Use canonical email when registering users (#1458 )"
This reverts commit f728b0175a
.
* missing chang
* typo
2022-12-08 10:57:46 +01:00
Adrià Casajús
7e360bcbd9
Fix: Add mising csrf validation for contact pgp key modification ( #1463 )
...
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-12-02 15:13:38 +01:00
Adrià Casajús
327b672f24
Set the user name on creation to the original email ( #1462 )
...
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-12-01 13:07:36 +01:00
Adrià Casajús
0996378537
Revert "Keep the dirty email after registering ( #1459 )" ( #1460 )
...
This reverts commit 0664e3b80c
.
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-12-01 09:19:15 +01:00
Adrià Casajús
0664e3b80c
Keep the dirty email after registering ( #1459 )
...
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-11-30 18:38:48 +01:00
Adrià Casajús
f728b0175a
Use canonical email when registering users ( #1458 )
...
* Use canonical email for registration, check both when checking if user exists
* Fix test
* Set pagesize to 100
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-11-30 17:19:55 +01:00
Adrià Casajús
53ef99562c
Add unsub link to newsletters ( #1455 )
...
* Add unsub link to newsletters
* Remove debug statement
* Updated unsub link
* Update unsub style
* Format
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-11-28 15:08:46 +01:00
Adrià Casajús
3c36f37a12
Feat: Add enable/disable options in the admin panel ( #1450 )
...
* Feat: Add enable/disable options in the admin panel
* Fix duplicate method
* Black format
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-11-28 10:39:18 +01:00
Spitfireap
b849d1cfa7
Simpler csv export ( #1383 )
...
* Export alias in csv
* reformating
* template
* Improved contributing script and doc
* Updated test
* removed csv export from GDPR export archive
* added test for new route
* fix trailing space
* moved test to new utils file
2022-11-23 13:51:08 +01:00
Son Nguyen Kim
989358af34
Fix empty authorized address ( #1423 )
...
* not allow empty authorized address
* check authorized address before adding
* use github for flake8
* fix test
2022-11-15 16:04:31 +01:00
Adrià Casajús
4661972f97
Fix: When re-sending emails if they trigger exceptions move out of failed dir ( #1411 )
...
* Fix: When re-sending emails if they trigger exceptions move out of failed dir
* Use proper timeout
* Lint
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-11-10 13:24:46 +01:00
Son Nguyen Kim
25743da161
Dmarc transactional ( #1402 )
...
* make sure transactional email use the same domain for header from and envelope from
* fix import
2022-11-04 14:22:28 +01:00
Adrià Casajús
5bbf6a2654
Fix: Only override postfix port when enabling TLS if the port is set to be 25 ( #1401 )
...
* Fix: Only override postfix port when enabling TLS if the port is set to be 25
* Add connection timeout
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-11-04 11:13:19 +01:00
Adrià Casajús
dace2b1233
Fix: Do not re-re-deliver unsent mails on failure to re-deliver ( #1397 )
...
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-11-03 17:48:09 +01:00
Adrià Casajús
90d60217a4
Feat: Re-deliver mails ( #1394 )
...
* Feat: Send undelivered emails
* Add cron job
* Added to the crontab
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-11-02 15:51:14 +01:00
Adrià Casajús
3bc976c322
Feature: Add app name to each db connection ( #1393 )
...
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-11-02 15:41:48 +01:00
Son Nguyen Kim
36d1626972
Notify another mailbox about an email sent by a mailbox to a reverse alias ( #1381 )
...
* Notify another mailbox about an email sent by a mailbox to a reverse alias
* keep reverse alias in CC and To header
* use alias as From to hint that the email is sent from the alias
* keep original subject, improve wording
* only add DKIM if custom domain has DKIM enabled
2022-10-30 19:59:42 +01:00
Son Nguyen Kim
02f42821c5
fix 21004 error ( #1380 )
2022-10-27 14:03:11 +02:00
Adrià Casajús
a5056b3fcc
Fix: Use source ip if user is not authenticated ( #1379 )
...
* Fix: Use source ip if user is not authenticated
* Fix lint
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-10-27 13:37:45 +02:00
Adrià Casajús
f6463a5adc
Change: Do not sleep on exclusive zones ( #1375 )
...
* Change: Do not sleep on exclusive zones
* Update test
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-10-27 10:40:33 +02:00
Adrià Casajús
7f9ce5641f
Feat: Added parallel limiter to prevent sqlalchemy transaction issues ( #1360 )
...
* Feat: Added parallel limiter to prevent sqlalchemy transaction issues
* Remove logs
* Moved initialization to its own file
* Throw exception
* Added test
* Add redis to gh actions
* Added v6 to the name
* Removed debug prints
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-10-27 10:07:02 +02:00
Adrià Casajús
d324e2fa79
Fix: Add csrf verification to directory updates ( #1358 )
...
* Fix: Add csrf verification to directory updates
* Update templates/dashboard/directory.html
* Added csrf for delete account form
* Fix tests
* Added CSRF check for settings page
* Added csrf to batch import
* Added CSRF to alias dashboard and alias transfer
* Added csrf to contact manager
* Added csrf to mailbox
* Added csrf for mailbox detail
* Added csrf to domain detail
* Lint
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-10-27 10:04:47 +02:00
Son Nguyen Kim
2f769b38ad
Apple in app fix ( #1369 )
...
* error log if issue with apple sub
* use the right secret when polling apple sub
2022-10-25 19:45:53 +02:00
Son Nguyen Kim
35470613d3
add DailyMetric and Metric as admin page, remove EmailLog admin page ( #1352 )
2022-10-15 19:10:39 +02:00
Son Nguyen Kim
c71824c68e
Init daily metric ( #1351 )
...
* Add DailyMetric model
* increment nb_new_web_non_proton_user
* fix test
* fix test
2022-10-14 17:35:34 +02:00
Son Nguyen Kim
1fc75203f2
Improve test: disable rate limit during test and avoid conflicts between tests ( #1349 )
...
* disable rate limit during test, avoid conflict between tests
* fix test
2022-10-14 16:37:49 +02:00
Son Nguyen Kim
7b24cdd98a
Revert "remove deduct_limit as it has no effect ( #1347 )" ( #1348 )
...
This reverts commit 851ba0a99a
.
2022-10-13 22:00:45 +02:00
Son Nguyen Kim
851ba0a99a
remove deduct_limit as it has no effect ( #1347 )
...
* remove deduct_limit as it has no effect
- disable rate limit during test
- randomize data in test
- support non-empty db in test
* fix more test
2022-10-13 18:55:22 +02:00
Adrià Casajús
72277211bb
For unauthenticated sessions only store them in redis for 5m ( #1345 )
...
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-10-13 15:55:08 +02:00
Adrià Casajús
d5ca316e41
Have custom domains set up multiple dkim records to be able to rotate keys ( #1334 )
...
* Have custom domains set up multiple dkim records to be able to rotate keys
* Apply suggestions from code review
* Some PR comments
* Keep dkim enabled if it is already
* Format
* PR updates
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-10-11 07:17:37 +02:00
Son Nguyen Kim
1c5a547cd0
do not quarantine an email if fails DMARC but has a small rspamd score ( #1337 )
...
* do not quarantine an email if fails DMARC but has a small rspamd score
* use 0 when cannot parse rspamd score
* use -1 as default value
2022-10-10 10:13:07 +02:00
Son Nguyen Kim
5088604bb8
Replace reverse alias ( #1335 )
...
* replace any reverse alias by real address for all contacts
* improve logging
* fix comment
* Request contacts in batches of 100 to avoid loading the db
* Fix typo
* Added tests for the contact replacement
* Increase batch size to 1k
* Revert and use only reply_email and website_email
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-10-10 10:00:19 +02:00
Adrià Casajús
faeddc365c
Display recovery codes for mfa only once ( #1317 )
...
* Recovery codes can only be shown after adding a 2FA code and cannot be seen afterwards
* Added recovery codes fix
* Updated models and script
* Formatting
* Format
* Added base code
* Updated wording
* Set the config by default
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-10-03 12:32:45 +02:00
Adrià Casajús
faaff7e9b9
Handle failed payments subscriptions in paddle ( #1327 )
...
* Handle failed payments subscriptions in paddle
* Added tests
* Remove unused import
* Remove unused import
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-09-30 17:51:06 +02:00
Carlos Quintana
fa50c23a43
Allow RedisSessionStore to connect to sentinel ( #1307 )
...
* Allow RedisSessionStore to connect to sentinel
* Reuse flask_limiter redis storage
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-09-23 10:23:07 +02:00
Son Nguyen Kim
72a130e225
do not add mime-version header if already present ( #1302 )
2022-09-22 13:46:32 +02:00
Adrià Casajús
b5aff490ef
Store session in redis if redis is enabled ( #1288 )
...
* Store sesions in redis to prevent saving old cookies
* Format
* Rename sid to session_id
* Logout session completely
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-09-21 11:11:17 +02:00
Adrià Casajús
9c86e1a820
Fix: Use email directly for DomainDeletedAlias ( #1273 )
...
* Fix: Use email directly for DomainDeletedAlias
* Add handling for reply phase
* Use the first mailbox of the domain for deleted domain aliase
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-09-08 14:54:32 +02:00
Son Nguyen Kim
753a28e886
handle case msg is string in replace() ( #1271 )
...
should fix https://sentry.io/organizations/simplelogin/issues/3563106404/?alert_rule_id=2478639&alert_timestamp=1662404226476&alert_type=email&environment=production&project=1868546&referrer=alert_email
2022-09-07 10:22:11 +02:00
Son Nguyen Kim
6595d34276
shouldn't count processed batch import ( #1268 )
2022-09-05 15:38:12 +02:00
Son Nguyen Kim
192d03fd68
make sure sl_formataddr always return str ( #1269 )
2022-09-05 15:38:04 +02:00
Son Nguyen Kim
313a928070
Create sl_formataddr to handle unicode for built-in formataddr ( #1265 )
...
* Create sl_formataddr to handle unicode for built-in formataddr
* fix circular import
2022-09-05 08:40:24 +02:00
Son Nguyen Kim
cea139b7d5
Improve handling when pgp key is invalid ( #1264 )
...
* remove unused email statuses
* add more logging
* use text_header if html_header not set
* improve email
* add a header about PGP failure when forward emails can't be encrypted
* remove unused email status
2022-09-02 11:47:04 +02:00
Son Nguyen Kim
25773448c2
admin can go directly to paddle ( #1263 )
2022-09-02 10:39:53 +02:00
Son Nguyen Kim
f69c9583fb
fix proton partner error when self host ( #1255 )
...
* fix proton partner error when self host
* fix test
* fix test
* remove a@b.c
2022-09-01 14:59:16 +02:00
Son Nguyen Kim
9eacd980ef
include_sender_in_reverse_alias set to true for new users ( #1244 )
2022-08-23 11:24:49 +02:00
Carlos Quintana
ba06852dc2
Do not crash if action is unknown ( #1231 )
2022-08-12 15:02:00 +02:00
Carlos Quintana
7eb44a5947
Fixes for connect with proton on mobile ( #1230 )
...
* Fixes for connect with proton on mobile
* Added a test
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-08-12 13:17:21 +02:00
Carlos Quintana
596dd0b1ee
Support next with Proton Link ( #1226 )
...
* Support next with Proton Link
* Add support for double next
* Fix bug on account relink
2022-08-11 10:38:44 +02:00
Adrià Casajús
3a75686898
Generate a web session from an api key ( #1224 )
...
* Create a token to exchange for a cookie
* Added Route to exchange token for cookie
* add missing migration
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-08-10 18:48:32 +02:00
Carlos Quintana
a9549c11d7
Rate limiting depending on user authenticated status ( #1221 )
...
* Rate limiting depending on user authenticated status
* Update app/extensions.py
Co-authored-by: Adrià Casajús <acasajus@users.noreply.github.com>
* Add rate_limiting tests
Co-authored-by: Adrià Casajús <acasajus@users.noreply.github.com>
2022-08-09 14:57:21 +02:00
Son Nguyen Kim
a88a8ff2be
add more logging ( #1223 )
2022-08-09 10:01:55 +02:00
Son Nguyen Kim
6c6deedf47
Stop paddle sub ( #1216 )
...
* admin can stop a paddle sub
* show admin menu if user is admin
2022-08-04 09:20:07 +02:00
Son Nguyen Kim
d72226aa19
show proton sub info on admin ( #1207 )
2022-08-01 20:49:05 +02:00
Carlos Quintana
a04152a37f
Do not allow SVG image uploads ( #1198 )
2022-07-29 08:52:51 +02:00
Adrià Casajús
25fde11a86
Refactor alias suffix ( #1194 )
...
* Extract suffix generation and validation to a module
* Updated tests
* Make custom alias use signed suffixes
* Added the signature check to the module
* Fix invalid route
* Move more suffix related stuff
* Fix tests
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-07-27 17:40:22 +02:00
Adrià Casajús
bd044304f0
Added rate limit to resend activation email ( #1192 )
...
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-07-26 14:57:26 +02:00
Adrià Casajús
f4c5198055
Remove ResetCodes after email change ( #1191 )
...
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-07-26 14:43:31 +02:00
Son Nguyen Kim
97805173cb
remove envs used for proton beta link ( #1189 )
...
* remove envs used for proton beta link
* remove is_connect_with_proton_enabled()
2022-07-26 12:38:18 +02:00
Carlos Quintana
827e3a1acb
Implement mode for Login with Proton ( #1186 )
2022-07-26 09:55:24 +02:00
Son Nguyen Kim
6322e03996
admin can manage newsletter and test sending it ( #1177 )
...
* admin can manage newsletter and test sending it
* add comments
* comment
* doc
* not userID not specified, send the newsletter to current user
* automatically match textarea height to content when editing newsletter
* increase text height and limit img size to 100% in email template
* admin can send newsletter to a specific address
2022-07-22 11:24:53 +02:00
Carlos Quintana
7db3ec246e
Mitigate open redirect with OAuth ( #1176 )
...
* Mitigate open redirect with OAuth
* Fix tests
2022-07-21 14:23:08 +02:00
Adrià Casajús
3fa9db9bb7
Change default unsub behaviour to disable alias by default ( #1174 )
...
* Change default unsub behaviour to disable alias by default
* Alter default valut for unsub_behaviouur
* Added comments to the migration
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-07-20 11:57:34 +02:00
Adrià Casajús
06c1c7f2f7
Restrict the number of free alias for new free users ( #1155 )
...
* Restrict the number of free alias for new free users
* Fix test
* Make flag reverse
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-07-20 11:09:22 +02:00
Adrià Casajús
f3d47a1eaa
Allow users to keep the original unsub behaviour ( #1148 )
...
* Feature: Preserve original unsubscribe request
* Updated tests
* Updated settings
* PR comments
* reduced prefix length
* Include migrate users for new unsub behaviour
* PR comments
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-07-19 17:25:21 +02:00
Adrià Casajús
afb2ab3758
Allow to configure mem storage from config ( #1166 )
...
* Allow to configure memory storage from config
* format
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-07-19 08:25:59 +02:00
Son Nguyen Kim
36547bd82d
Update wording ( #1163 )
...
* rename file
* update wording when adding mailbox
* rename
2022-07-17 15:02:17 +02:00
Adrià Casajús
2837350204
Limit amount of imports ( #1161 )
...
* Limit amount of imports
* Review suggestions
* Format
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-07-16 18:17:15 +02:00
Adrià Casajús
bcd4383e05
Sanitize the highlight contact id ( #1160 )
...
* Sanitize also parameter
* Formatting
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-07-15 17:48:42 +02:00
Adrià Casajús
67be5ba050
Enforce int params in routes ( #1159 )
...
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-07-15 17:10:00 +02:00
Son Nguyen Kim
f367acbeaf
Add next bill date on admin UI ( #1154 )
...
* add subscription next bill date on admin
* small refactor: remove unused param
2022-07-12 18:17:39 +02:00
Adrià Casajús
f75bdd006a
Fix: Allow internal link independent of enable log in with proton ( #1151 )
...
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-07-11 09:41:20 +02:00
Adrià Casajús
82d0f44cab
Fix: Check if required session headers exist ( #1145 )
...
* Check session keys exist
* Update message
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-07-05 22:26:48 +02:00
Adrià Casajús
494005eaa5
Fix: Add weird encodings to the list ( #1146 )
...
(cherry picked from commit cfed4061e7bf3e34c52518b905065055acb8858e)
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-07-05 12:19:14 +02:00
Carlos Quintana
38d305da23
Bypass 2FA if Login with Proton ( #1142 )
...
* Bypass 2FA if Login with Proton
* Fix formatting of template
2022-07-04 16:24:49 +02:00
Adrià Casajús
c2bb6488e4
Allow to login with proton to enter sudo mode ( #1141 )
...
* Allow to login with proton to enter sudo mode
* Updated wording
* lint
* Only enabled if the user has the account linked
* Add exit-sudo route for tests
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-07-04 16:09:36 +02:00
Carlos Quintana
e2f9ea4ae1
Capture exception on Login with Proton ( #1140 )
2022-07-04 15:40:17 +02:00
Son Nguyen Kim
6d86e64d65
show msg on /internal/integrations/proton ( #1139 )
...
* show msg on /internal/integrations/proton
* highlight the connect with Proton section
* djlint
2022-07-04 15:39:12 +02:00
Adrià Casajús
38c9138cdb
Fix: When logging with parter create accounts with lowercase emails ( #1137 )
...
* Fix: When logging with parter create accounts with lowercase emails
* Sanitize emails instead of just lowercase them
* linting
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-07-04 11:51:43 +02:00
Son Nguyen Kim
66a2152ea3
Compute Proton metrics ( #1135 )
...
* compute nb_proton_premium
* compute nb_proton_user
2022-07-04 11:40:29 +02:00
Son Nguyen Kim
02b39f98b7
fix cron job ( #1134 )
2022-07-04 11:05:42 +02:00
Son Nguyen Kim
8799691f99
allow admin to disable spoofing check on an alias ( #1133 )
2022-07-04 11:05:13 +02:00
Adrià Casajús
aabcc8e72a
Feature: Add delete account route for the api ( #1132 )
...
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-07-02 16:45:58 +02:00
Adrià Casajús
88dd07e48d
Feature: Use new job status to retry killed jobs ( #1130 )
...
* Feature: Use new job status to retry killed jobs
* Set attermpts and time via config
* Update timing condition
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-07-01 11:14:53 +02:00
Adrià Casajús
8b89a428e0
Fix: clear next in the session before triggering a login ( #1129 )
...
* Fix: clear next in the session before triggering a login
* Format
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-06-30 15:41:50 +02:00
Adrià Casajús
21feced342
Refactor unsubscribe handling ( #1090 )
...
* Refactor unsubscribe email handling
* MR comments
* Moved all unsub logic to the encoder
* remove unused
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-06-30 11:40:01 +02:00
Carlos Quintana
d06470a3c6
Activate users created with account link ( #1124 )
2022-06-29 16:55:20 +02:00
Carlos Quintana
9abb8aa47f
Validate user uploaded image ( #1123 )
...
* Validate user uploaded image
* Fix test/data path detection
2022-06-29 15:04:55 +02:00
Son Nguyen Kim
f6a7ee981a
do not send double subscription email ( #1118 )
...
* do not send double subscription email
* remove unused import
* remove unused test
2022-06-28 17:51:44 +02:00
Son Nguyen Kim
75c710a6ab
small refactoring ( #1120 )
2022-06-28 17:21:23 +02:00
Adrià Casajús
aac493ad2f
Update docs and error message for sudo route ( #1117 )
...
* Update docs and error message for sudo route
* Fix
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-06-28 14:40:06 +02:00
Carlos Quintana
07b7f40371
Fix prompt user to upgrade to proton account ( #1116 )
2022-06-28 12:36:21 +02:00
Son Nguyen Kim
89062edc06
show cancel status in "Current plan" section ( #1114 )
...
* show cancel status in "Current plan" section
* do not show upgrade button for canceled paddle sub
2022-06-28 11:58:04 +02:00
Carlos Quintana
dd0598a4dd
Send welcome email when user created by login with proton ( #1115 )
...
* Send welcome email when user created by login with proton
* Add dedicated test to user.created_by_partner
2022-06-28 11:57:21 +02:00
Adrià Casajús
5fa41d6ccf
Add state management to job ( #1113 )
...
* Add state management to job
* Add migration
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-06-28 09:22:48 +02:00
Carlos Quintana
686f4f3f68
Always check redirect_uri for oauth ( #1111 )
...
* Always check redirect_uri for oauth
* Fix OAuth tests
2022-06-27 13:20:18 +02:00
Carlos Quintana
f58c4a9a50
Show premium subscription managed by partner ( #1112 )
2022-06-27 13:17:30 +02:00
Adrià Casajús
de31e6d072
Allow to set sudo mode for api requests ( #1108 )
...
* Allow to set sudo mode for api requests
* Rebase migration on top of master
* PR comments
* Added missing migration
* Removed unused import
* Apply suggestions from code review
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-06-23 14:26:36 +02:00