Son Nguyen Kim
55dcd63654
support search on contact page
2021-07-14 18:57:25 +02:00
Son Nguyen Kim
ac1f56f206
add in the last 14 days mention on the contact page
2021-07-14 17:23:33 +02:00
Son Nguyen Kim
aa799fa339
Revert "Do not return contact alias activity on the contact manager page"
...
This reverts commit 45891bed36
.
# Conflicts:
# app/dashboard/views/alias_contact_manager.py
2021-07-14 17:21:07 +02:00
Son Nguyen Kim
25f0a71ea5
add 2 weeks mention on global stats
2021-07-14 17:15:46 +02:00
Son Nguyen Kim
253be7bad4
Revert "disable global stats to help the DB"
...
This reverts commit 7ce83c36b9
.
2021-07-14 15:55:03 +02:00
Son Nguyen Kim
189eb8427e
speed up should_disable()
2021-07-14 12:25:44 +02:00
Son Nguyen Kim
e26287a4c7
Revert "disable should_disable() for now"
...
This reverts commit fb88654d84
.
2021-07-14 12:23:02 +02:00
Son Nguyen Kim
b98e913304
fix contact page
2021-07-13 22:25:53 +02:00
Son Nguyen Kim
45891bed36
Do not return contact alias activity on the contact manager page
2021-07-13 19:27:45 +02:00
Son Nguyen Kim
fb88654d84
disable should_disable() for now
2021-07-13 17:24:28 +02:00
Son Nguyen Kim
7ce83c36b9
disable global stats to help the DB
2021-07-13 14:52:02 +02:00
Son Nguyen Kim
cbd6c96d01
preload Alias.hibp_breaches
2021-07-13 14:11:27 +02:00
Son Nguyen Kim
7ac2a02b27
join with EmailLog directly without passing by Contact
2021-07-13 14:11:14 +02:00
Son Nguyen Kim
4b9b3f18a2
add index for contact.reply_email col
2021-07-13 10:17:10 +02:00
Son Nguyen Kim
edab5dfac3
fix
2021-07-13 09:59:51 +02:00
Son Nguyen Kim
19c067fa17
add coupon admin
2021-07-13 08:55:04 +02:00
Son Nguyen Kim
601385a0c1
add coupon
2021-07-13 08:54:37 +02:00
Son Nguyen Kim
7a8b5d80ed
Create coupon model
2021-07-12 19:26:28 +02:00
Son Nguyen Kim
cc650f9fae
remove unused import
2021-07-12 18:56:43 +02:00
Son Nguyen Kim
99599bb09f
make sure user needs to go through MFA when resetting password
2021-07-12 18:56:09 +02:00
Son Nguyen Kim
0b063cb409
Add EmailLog.alias_id column
2021-07-11 12:27:30 +02:00
Son Nguyen Kim
fe1f8e9eb8
make the reverse-alias replacement visible
2021-07-11 09:07:25 +02:00
Son NK
f59651045d
use data-bouncer-message instead of title to display error message
2021-07-03 17:50:54 +02:00
Son NK
95d6fa3478
make sure user can create new alias to receive an alias transfer
2021-07-03 17:12:03 +02:00
Son NK
01815b9153
replace get_suffix() by User.get_random_alias_suffix()
2021-06-27 17:51:13 +02:00
Son NK
09d00df363
reformat imports
2021-06-27 17:50:36 +02:00
Raymond Nook
4469a64de6
Merge branch 'simple-login:master' into master
2021-06-24 02:57:17 -07:00
Son NK
6532e0de93
Return 550 instead of 421 when rate limited. Rename greylisting to rate limit
2021-06-24 09:47:01 +02:00
Son NK
e8cee6de80
increase greylisting threshold
2021-06-23 19:55:41 +02:00
Son NK
70b51b5002
return 550 instead of 421 in case of SMTPRecipientsRefused
2021-06-23 19:50:42 +02:00
Son NK
6fa267e92b
refactor: put all SMTP statuses into status.py
2021-06-23 19:47:06 +02:00
Son NK
b84eb13ab5
Discard ignored email
...
Create IgnoredEmail model
2021-06-22 17:52:24 +02:00
Raymond Nook
101c6c85ef
Merge branch 'simple-login:master' into master
2021-06-17 20:19:01 -07:00
Son
93991816c9
fix "Received" header is not str
2021-06-17 23:02:25 +02:00
Raymond Nook
e40c276a68
Merge branch 'master' into master
2021-06-05 22:57:27 -07:00
devStorm
e79959c330
🐛 imported but unused
2021-06-05 22:53:16 -07:00
Son NK
3308919906
Remove /alias/custom/new
2021-06-05 17:41:28 +02:00
Son NK
ef32998e99
Remove /alias/options, /v2/alias/options, /v3/alias/options
2021-06-05 17:41:18 +02:00
Son NK
a2ffc53c62
user can have manual subscription applied if their current subscription is canceled
2021-06-05 17:28:04 +02:00
Son NK
78df95395b
improve upgrade_channel
2021-06-05 17:20:42 +02:00
Son NK
79d0ef8906
Use Postfix queue-id as log message-id
2021-06-04 17:15:59 +02:00
Son NK
10414a6b96
flake8
2021-06-02 19:04:58 +02:00
Son NK
62683a221a
black
2021-06-02 18:48:35 +02:00
Son Nguyen Kim
b14d79c8f7
Merge pull request #496 from nbraud/pw_hash/refactor
...
Fix minor issues with password-handling, refactor
2021-06-02 18:33:56 +02:00
Son NK
eb2adc870a
make sure only premium user can create new mailbox via API
2021-06-02 17:17:28 +02:00
Son NK
3897f6b633
refactor handle_bounce()
2021-06-02 11:38:52 +02:00
Son NK
ed938dd86a
Add query2str
2021-05-30 19:58:46 +02:00
nicoo
586654e08e
app.pw_models: Refactor, use constant-time equality
2021-05-29 17:42:46 +02:00
Son NK
28285f28ac
Add index for AliasHibp
2021-05-28 19:59:26 +02:00
Son NK
aa667851e9
log user-agent in deprecated endpoint
2021-05-28 17:46:34 +02:00
nicoo
ecd74b801b
app.pw_models: Use unicode normalization
...
Per NIST [SP800-63B, §5.1.1.2] Memorized Secret Verifiers :
> the verifier SHOULD apply the Normalization Process for
> Stabilized Strings using either the NFKC or NFKD normalization
This is necessary for Unicode passwords to work reliably.
ASCII-only passwords aren't affected.
[SP800-63B, §5.1.1.2]: https://pages.nist.gov/800-63-3/sp800-63b.html#-5112-memorized-secret-verifiers
2021-05-27 22:16:07 +02:00
devStorm
e6192ece01
style
2021-05-26 22:34:50 -07:00
Raymond Nook
258d505cbf
Merge branch 'master' into master
2021-05-26 22:33:20 -07:00
devStorm
f7bef3941a
replace random_word with get_suffix(user)
2021-05-26 22:30:12 -07:00
nicoo
52d4d2abdb
app.models: minor refactor (extract pw auth)
2021-05-26 18:18:47 +02:00
Son NK
8cfd5e01dc
add alerts on /alias/custom/new and /v3/alias/options and below
2021-05-25 19:36:45 +02:00
Son NK
99d26a01cb
UI tweak
2021-05-25 18:30:14 +02:00
Son NK
388a425cac
Only show pagination control if there are previous/next page
2021-05-25 18:27:06 +02:00
Son NK
b23e3d94fd
make sure AliasHibp has cascade ondelete
2021-05-25 18:14:44 +02:00
Son NK
fb97f384e4
small UI tweak
2021-05-25 17:59:40 +02:00
Son NK
2f96322977
make sure BOUNCE_PREFIX_FOR_REPLY_PHASE can't be used as directory name or for creating aliases on-the-fly
2021-05-25 17:59:40 +02:00
Son NK
a918cc3670
Add BOUNCE_PREFIX_FOR_REPLY_PHASE
2021-05-25 17:59:40 +02:00
Son NK
159843a923
Add log for sl_sendmail
2021-05-24 12:04:22 +02:00
Son NK
ade07f9449
return empty name when name can't be decoded
2021-05-22 16:47:44 +02:00
Sylvia van Os
1ee941647f
Add direct link to HIBP pwned info
2021-05-21 12:08:00 +02:00
Son NK
d4e930c930
Remove nullsfirst as not compatible with sqlite. Add more logging
2021-05-19 12:46:55 +02:00
Son Nguyen Kim
b3f8fd6789
Merge pull request #472 from TheLastProject/feature/hibp
...
Add HIBP checks
2021-05-19 12:37:04 +02:00
Sylvia van Os
a08b0c05cc
Don't override id
2021-05-17 21:29:29 +02:00
Sylvia van Os
969616d671
Date compare in DB instead of model function
2021-05-17 18:20:35 +02:00
Sylvia van Os
bee468e055
Black
2021-05-15 18:04:50 +02:00
devStorm
4a0fc8380f
variable naming
2021-05-14 11:03:16 -07:00
Sylvia van Os
f67f5297f2
Add HIBP checks
2021-05-14 19:50:32 +02:00
Son NK
ef2eb7f959
add Paddle subscription_id in admin
2021-05-14 16:10:34 +02:00
devStorm
30183ac8c3
🐛 fix style
2021-05-13 19:34:54 -07:00
devStorm
5c74ad2dc0
⚠️ Remove word list check
2021-05-13 16:55:46 -07:00
devStorm
178ce34399
Enum, setting
2021-05-13 16:53:01 -07:00
devStorm
3fc250018d
basic implementation of random suffix
2021-05-13 16:13:19 -07:00
Son NK
edaf293398
Create admin pages for Referral and Payout
2021-05-10 15:51:39 +02:00
Son NK
93a8873192
show payouts on referral page
2021-05-10 13:03:44 +02:00
Son NK
229d2c644b
Add Payout model
2021-05-10 13:03:19 +02:00
Son NK
5317b8ab84
move the api key page back to menu
2021-05-05 18:51:15 +02:00
Son NK
e5926978c8
use bouncer on custom alias page
2021-04-30 11:45:00 +02:00
Son NK
ceacf8e3a7
support dot in alias prefix
2021-04-30 11:37:17 +02:00
Son NK
e74dbd7e98
increase monthly plan to $4
2021-04-23 12:08:27 +02:00
Son NK
c5697fbf3c
remove unused import
2021-04-23 12:07:49 +02:00
Son NK
7946879308
schedule account deletion
2021-04-23 11:50:26 +02:00
Son NK
f3b04b9d81
add more logging
2021-04-16 18:37:16 +02:00
Son NK
0039b4c301
disable an alias if the user has too many bounces recently
2021-04-16 17:57:25 +02:00
Son NK
cfb52a2eba
add price mention on billing page
2021-04-12 10:14:35 +02:00
Son NK
5040e7b74b
add filters for alias and mailbox admin
2021-04-12 10:07:17 +02:00
Son NK
9bfd9ebf07
fix
2021-04-09 12:46:51 +02:00
Son NK
aad1270e0d
free trial account can't create more than MAX_NB_EMAIL_FREE_PLAN aliases
2021-04-09 12:40:55 +02:00
Son NK
f45e7b53d0
create admin for Client
2021-04-06 19:46:38 +02:00
Son NK
f8540808bc
remove Client.published
2021-04-06 19:46:21 +02:00
Son NK
e42fb0816d
Improve SIWSL wording
2021-04-06 18:12:06 +02:00
Son NK
ea5281de95
automatically show how-to-use
2021-04-06 18:10:32 +02:00
Son NK
7c1af6a265
improve should_disable(): take into account repetitive bounces
2021-04-06 17:24:06 +02:00
Son NK
c715f87526
improve SIWSL UI
2021-04-06 12:06:46 +02:00
Son NK
9e4ff01b17
improve login, register UI
2021-04-06 12:06:11 +02:00
Son NK
af9597cf5a
improve copy when app isn't approved
2021-04-01 18:10:39 +02:00
Son NK
085dec069b
allow any redirect_uri if the app isn't approved
2021-04-01 18:04:45 +02:00
Son NK
03976ea1c2
improve copy in app approval
2021-04-01 18:04:35 +02:00
Son NK
9757b12b95
user can remove the app link
2021-04-01 14:20:13 +02:00
Son NK
efae1710c8
extract the app/website to a separate page
2021-04-01 14:09:16 +02:00
Son NK
3c4a1413e0
Remove ClientUser.nonce
2021-04-01 12:49:32 +02:00
Son NK
e6d8815ac5
take into account nonce in openid
2021-04-01 12:49:23 +02:00
Son NK
da17f51778
add AuthorizationCode.nonce
2021-04-01 12:35:21 +02:00
Son NK
313b442af7
do not display AppId
2021-04-01 12:32:14 +02:00
Son NK
36e7cf3fdc
add ClientUser.nonce
2021-04-01 12:31:37 +02:00
Son NK
46109770fc
prettify
2021-04-01 11:05:58 +02:00
Son NK
b13c65166f
Add OpenID Connect Discovery Document URL
2021-04-01 11:05:21 +02:00
Son NK
a90fa49636
add submit for approval for app
2021-04-01 10:52:51 +02:00
Son NK
c3d57ed6e4
reformat code
2021-04-01 10:50:53 +02:00
Son NK
7d4e1048af
show warning on authorize page for non-approved app
2021-04-01 10:50:37 +02:00
Son NK
bbfb69d774
Add Client approved, description columns
2021-04-01 10:50:11 +02:00
Son NK
eab4f5f7ac
prettify app page
2021-04-01 10:02:08 +02:00
Son NK
d5de99afe9
Restore /alias/custom/new as currently used by safari
2021-03-31 14:41:32 +02:00
Son NK
e31e19047c
improve admin
2021-03-30 19:08:41 +02:00
Son NK
1b41911598
remove social login from the login page
2021-03-29 16:06:58 +02:00
Son NK
9d5c2e3f80
display when subscription ends in admin
2021-03-26 12:14:48 +01:00
Son NK
26a087619c
support extend manual subscription in admin
2021-03-26 12:14:33 +01:00
Son NK
2270ccf35d
Add ENABLE_SPAM_ASSASSIN setting
2021-03-26 10:00:16 +01:00
Son NK
0bb8f9a227
make ALIAS_LIMIT configurable
2021-03-26 09:56:04 +01:00
Son NK
1cac625a90
restore /v2/alias/custom/new as used by browser extension
2021-03-25 19:18:50 +01:00
Son NK
92acf352b6
add limiter for random alias creation
2021-03-24 17:30:05 +01:00
Son NK
71389b7e09
add limiter on custom alias page
2021-03-24 16:52:05 +01:00
Son NK
acc285abf0
remove /alias/custom/new, /v2/alias/custom/new, refactor test
2021-03-24 16:39:49 +01:00
Son NK
0c62ac4b1f
set rate limit for creating alias endpoint
2021-03-24 16:26:42 +01:00
Son NK
84b4c11086
handle UnicodeEncodeError in encode()
2021-03-24 10:08:11 +01:00
Son NK
d59cee0bcc
improve welcome email
2021-03-23 18:47:16 +01:00
Son NK
1600e273dd
remove Metric2.name column
2021-03-23 10:30:57 +01:00
Son NK
ec1633d0d7
create Metric2 model
2021-03-23 10:23:40 +01:00
Son NK
7ab64d9768
add more logging
2021-03-22 15:52:48 +01:00
Son NK
f0fb5108f9
show a different message for custom domain alias when deleting
2021-03-18 14:45:18 +01:00
Son NK
8b234b63a5
add custom domain to AliasInfo
2021-03-18 14:44:51 +01:00
Son NK
8bb324e82b
propose users to disable an alias instead of deleting it
2021-03-18 14:21:26 +01:00
Son NK
91e805a637
move js part in index to a separate file
2021-03-18 12:34:08 +01:00
Son NK
1187b6dc99
update mailbox wording
2021-03-18 10:59:45 +01:00
Son NK
c87fe55898
POST /api/aliases/:alias_id/contacts: return 200 and existed=true
if contact is already added.
2021-03-17 20:29:34 +01:00
Son NK
48d7b66803
flake8
2021-03-17 11:05:26 +01:00
Son NK
66eb93fe53
fix sanitize header
2021-03-17 10:59:13 +01:00
Son NK
0848405d0c
add mention not allowing forward email address
2021-03-17 10:27:46 +01:00
Son NK
5cba2eaa38
sanitize header
2021-03-17 10:23:35 +01:00
Son NK
826e4455cf
refactor
2021-03-17 10:23:35 +01:00
Son NK
11789559f1
move spf_pass(), sl_sendmail() to email_utils.py
2021-03-17 10:23:35 +01:00
Son NK
d1d81e6a6d
move get_spam_score_async(), get_spam_score() to email/spam.py
2021-03-17 10:23:35 +01:00
Son NK
57b2e2d4ab
fix handle_batch_import
2021-03-16 10:54:00 +01:00
Son NK
9a1dc0240b
improve logging
2021-03-16 09:17:23 +01:00
Son NK
7ec0405709
improve message_id
2021-03-16 09:15:59 +01:00
Son NK
98264b14bc
replace linebreak in sanitize_email()
2021-03-15 19:42:28 +01:00
Son NK
6eb7ebc338
add message_id in log to keep track of an email processing
2021-03-15 19:41:42 +01:00
Son Nguyen Kim
ca4d097f14
Merge pull request #381 from TheLastProject/feature/importExportTests
...
Feature/import export tests
2021-03-15 15:17:58 +01:00
Sylvia van Os
cfe889f7b9
Format with black
2021-03-13 15:37:28 +01:00
Sylvia van Os
8800c29526
Complete import tests
2021-03-13 15:36:25 +01:00
Sylvia van Os
dcfd63eb0f
Working import tests
2021-03-13 00:13:33 +01:00
Sylvia van Os
44ae20816a
WIP: Import test
2021-03-10 23:08:33 +01:00
Son
cf6442cec2
Add PATCH /api/custom_domains/:custom_domain_id
2021-03-10 22:56:12 +01:00
Son
eb22a6302e
rename creation -> deletion for GET /api/custom_domains/:custom_domain_id/trash
2021-03-10 22:39:33 +01:00
Son
6c2daf1bb6
add mailboxes to GET /api/custom_domains
2021-03-10 22:37:26 +01:00
Sylvia van Os
c6646d5971
Add export test
2021-03-10 22:35:04 +01:00
Sylvia van Os
1915c8d09d
Export and import mailbox info with alias
2021-03-09 21:09:58 +01:00
Son NK
3c8ec8fcf2
make DKIM_PRIVATE_KEY_PATH optional
2021-03-08 15:18:03 +01:00
Son NK
819738f55c
remove unused DKIM_PUBLIC_KEY_PATH, DKIM_DNS_VALUE
2021-03-08 15:14:37 +01:00
Son NK
3512cc087e
remove unused import
2021-03-08 14:53:14 +01:00
Son Nguyen Kim
095e2ae0de
Merge pull request #377 from TheLastProject/feature/api_export
...
Add export endpoints
2021-03-08 12:18:28 +01:00
Son NK
3768429909
use log format that allows clickable link to code source in PyCharm
2021-03-08 12:07:45 +01:00
Sylvia van Os
3932ed2eb8
Add export endpoints
2021-03-06 21:56:42 +01:00
Son NK
39c92110cb
add more fields into /api/custom_domains
2021-03-06 20:43:50 +01:00
Son
863d8dcbe7
black
2021-03-06 18:10:41 +01:00
Son
23a0861790
Improve alias transfer. Use alias transfer_token. Add a limiter on /alias_transfer/receive
2021-03-06 18:08:42 +01:00
Son
29afc1b6b5
Add Alias.transfer_token col
2021-03-06 18:08:42 +01:00
Son
475eaa2bc0
inform user when his alias has been transferred
2021-03-06 18:08:42 +01:00
Son NK
9492aaccf5
Add EmailLog.auto_replied col
2021-03-06 17:44:46 +01:00
Son
80d80657d6
remove cloudwatch params
2021-03-06 16:09:27 +01:00
Son NK
193f8d8ccc
Handle UnicodeDecodeError in get_header_unicode()
2021-03-05 20:41:23 +01:00
Son NK
3af98026e3
refactor config: do not use eval()
2021-03-05 17:26:47 +01:00
Son NK
a65680b5ba
remove DEBUG param
2021-03-05 17:26:47 +01:00
Son NK
38790fdc84
get_alias_infos_with_pagination_v3: handle the case where an alias has 2 contacts that have no activity
2021-03-01 18:45:15 +01:00
Son NK
36a117d790
rename
2021-03-01 18:22:39 +01:00
Son NK
deef432c58
add extend trial on user admin page
2021-02-25 10:09:02 +01:00
Son NK
3aeaf6fe29
make include_sender_in_reverse_alias non nullable
2021-02-24 15:44:50 +01:00
Son NK
c9b246259d
can search on manual subscription admin page
2021-02-24 09:49:08 +01:00
Son NK
0f9cb13920
add admin page for manual subscription
2021-02-24 09:48:06 +01:00
Son NK
a2dad50d20
take into account apple sub
2021-02-23 19:40:40 +01:00
Son NK
d4ac2da96a
set some fields back to default
2021-02-17 13:08:02 +01:00
Son NK
9e486fc2c0
add alias transfer
2021-02-17 12:56:28 +01:00
Son NK
e19fff3a9a
Add Alias.original_owner_id column
2021-02-17 12:49:47 +01:00
Son NK
7efce95145
add warning for cloudflare when setup DNS
2021-02-15 20:21:55 +01:00
Son NK
219703cb04
replace monero by crypto
2021-02-15 16:40:19 +01:00
Son NK
7879b854a3
refactor
2021-02-15 16:39:23 +01:00
Son NK
e7063b6514
highlight reddit in welcome mail
2021-02-12 13:03:31 +01:00
Son NK
dc29c6f9d9
improve wording
2021-02-12 13:03:31 +01:00
Son
51a38be070
Add charity organization upgrade on admin
2021-02-03 18:54:42 +01:00
Son NK
25afe4831c
ignore amazonses.com encoding
2021-01-31 11:52:55 +01:00
Son NK
5f0930b291
handle header is None in get_header_unicode
2021-01-31 11:50:41 +01:00
Son NK
bbb6049351
Add POSTFIX_PORT_FORWARD
2021-01-28 13:49:40 +01:00
Son NK
b476e207fa
take into account ?next param in login
2021-01-27 10:11:48 +01:00
Son NK
66f3585253
Add LifetimeCoupon admin page
2021-01-27 10:08:49 +01:00
Son NK
e2f729206e
replace the iframe video by a link
2021-01-27 09:45:42 +01:00
Son NK
5bb0ae0234
Set user.sender_format_updated_at when user updates sender_format
2021-01-26 20:14:13 +01:00
Son NK
0354943ff4
Add User.sender_format_updated_at column
2021-01-26 20:13:51 +01:00
Son NK
e85cfebf92
do not show sender format that has full sender address
2021-01-26 19:55:56 +01:00
Son NK
6547d9420f
Use "John Wick - john at wick.com" as default sender format
2021-01-26 19:54:59 +01:00
Son NK
4cd49b66c2
use VERP for transactional email: remove SENDER, SENDER_DIR
2021-01-26 09:59:22 +01:00
Son NK
1013e8dd79
Create Bounce, TransactionalEmail models
2021-01-26 09:59:22 +01:00
Son NK
4a91db8e11
rename parse_email_log_id_from_bounce -> parse_id_from_bounce
2021-01-26 09:59:22 +01:00
Son NK
980942a1f9
create Metric model
2021-01-25 18:47:02 +01:00
Son NK
b0b74906a7
add confirm before changing the plan
2021-01-25 10:45:18 +01:00
Son NK
2bcd238250
Add hint for generic subject
2021-01-20 19:17:34 +01:00
Son NK
8e49fc40d4
fix
2021-01-20 13:28:23 +01:00
Son NK
202f28722e
make MAX_SPAM_SCORE, MAX_REPLY_PHASE_SPAM_SCORE configurable
2021-01-20 13:27:30 +01:00
Son NK
013a94d1e9
fix user delete profile pic
2021-01-19 10:47:48 +01:00
Son NK
da53b7fa00
Improve should_disable() to take into account last 7 days bounces
2021-01-19 10:45:39 +01:00
Son NK
7b9136d951
take into account user.profile_picture can be None
2021-01-19 09:15:43 +01:00
Son NK
264f41d466
Fix Paddle modal not showed up on mobile
2021-01-18 17:00:58 +01:00
Son
e75ede969a
Ctrl-enter submit the form on custom alias page
2021-01-16 19:56:30 +01:00
Son
8a74aee363
black
2021-01-16 10:55:14 +01:00
Son
f9161dba20
Handle "message/rfc822" in replace()
2021-01-16 10:45:50 +01:00
Son NK
fd0ba7030d
Add the condition of at least 3 months to referral program
2021-01-15 17:26:05 +01:00
Son NK
4bfe6d1ac9
handle name can be None in get_name_initial()
2021-01-15 11:21:45 +01:00
Son NK
c431abd917
take into account alias.cannot_be_disabled in should_disable
2021-01-13 11:03:30 +01:00
Son NK
79f22857b5
add mailbox admin page
2021-01-12 18:14:35 +01:00
Son NK
67de0e3c5b
set user as default admin page
2021-01-12 18:14:21 +01:00
Son NK
d6cc2a4bf3
Add AWS_REGION env var
2021-01-12 09:54:46 +01:00
Son NK
361945f3f8
add cash and monero upgrade in admin
2021-01-11 20:24:33 +01:00
Son NK
0e94c329d1
handle alias too long error
2021-01-11 15:45:41 +01:00
Son NK
13f3deb671
fix
2021-01-11 15:06:56 +01:00
Son NK
c83b146f14
Add BOUNCE_PREFIX, BOUNCE_SUFFIX config
2021-01-11 14:51:29 +01:00
Son NK
45ac548e2b
reserve bounce, bounces as directory name
2021-01-11 14:32:48 +01:00
Son NK
0ee0167b8e
fix test
2021-01-11 12:31:05 +01:00
Son NK
e9adb3270d
use sanitize_email instead of .lower().strip().replace(" ", "")
2021-01-11 12:29:40 +01:00
Son NK
01858ac452
sanitize contact email
2021-01-11 12:27:02 +01:00
Son NK
2293c6d2e3
improve admin
2021-01-11 12:04:37 +01:00
Son NK
cce08adb87
set "" as default name when creating new user
2021-01-11 10:25:37 +01:00
Son NK
435ced66bc
make User.name nullable
2021-01-11 10:24:00 +01:00
Son NK
ef7fae32b1
remove the "Hi {name}" from email template
2021-01-11 10:23:34 +01:00
Son NK
4293bba5ab
add edu upgrade to User admin page
2021-01-08 18:53:01 +01:00
Son NK
3ac159d073
use text/plain for text email instead of text/text
2021-01-04 15:11:12 +01:00
Son NK
8dbaf3cf56
Add EmailLog.spam_report column
2021-01-04 14:38:32 +01:00
Son NK
b942b44ec8
display bounce during reply phase on alias log page
2021-01-04 14:25:51 +01:00
Son NK
2b4dc3cdcc
when a custom domain is default and has random_prefix_generation enabled, use the random_prefix as the first choice
2021-01-02 18:17:53 +01:00
Son NK
3179d70df1
ignore text/csv in replace()
2020-12-31 18:03:42 +01:00
Son NK
a34af98de8
handle "multipart/signed" in add_header()
2020-12-31 15:50:03 +01:00
Son NK
ef2624ccea
handle multipart/mixed in add_header
2020-12-31 15:11:46 +01:00
Son NK
33dd6083c7
rename available_suffixes_more_info -> get_available_suffixes
2020-12-31 14:27:04 +01:00
Son NK
95f3db6aa5
remove available_suffixes()
2020-12-31 14:26:07 +01:00
Son NK
5a3b79b4cf
replace available_suffixes by available_suffixes_more_info
2020-12-31 14:25:44 +01:00
Son NK
7915a2abb9
Fix available_suffixes_more_info
2020-12-31 14:18:49 +01:00
Son NK
abb3ec1f05
rename
2020-12-31 14:16:32 +01:00
Son NK
4e20ffcc60
update wording: use custom alias to be opposed to random alias
2020-12-31 14:15:25 +01:00
Son NK
75d1b090cd
rename default_random_alias_public_domain_id -> default_alias_public_domain_id
2020-12-31 14:14:56 +01:00
Son NK
e0a414212e
rename default_random_alias_domain_id -> default_alias_custom_domain_id
2020-12-31 14:06:32 +01:00
Son NK
1647a7a628
update settings wording
2020-12-31 14:00:21 +01:00
Son NK
b9d8f11f2d
put the default domain to top
2020-12-31 13:59:03 +01:00
Son NK
66e7aa7242
refactor
2020-12-31 12:50:04 +01:00
Son NK
0585ba97ee
use warning level for "Cannot encrypt using the imported key" error
2020-12-31 11:05:11 +01:00
Son NK
74a63db835
ignore "text/directory" in replace()
2020-12-30 09:48:58 +01:00
Son NK
0df4d1a93d
add more logging
2020-12-29 12:17:24 +01:00
Son NK
31774f9ea7
set include_sender_in_reverse_alias to False by default
2020-12-28 10:28:05 +01:00
Son NK
be57add431
add list of cryptocurrency that are supported
2020-12-19 17:22:04 +01:00
Son NK
9f9d292754
remove can_use_coinbase column
2020-12-19 16:31:16 +01:00
Son NK
3015cd1dc0
ignore "text/calendar" content type
2020-12-18 16:07:32 +01:00
Son NK
6cec373b6d
ignore UnicodeDecodeError in decode_text()
2020-12-18 13:10:33 +01:00
Son NK
fb8a43fd5d
use decode_text() in add_header()
2020-12-18 10:44:42 +01:00
Son NK
091ff3ad2c
Add decode_text()
2020-12-18 10:43:06 +01:00
Son NK
3a8cdce650
Create should_disable
2020-12-16 18:50:09 +01:00
Son NK
830331d9b3
improve wording
2020-12-14 11:52:35 +01:00
Son NK
b9dba9c2c3
improve wording
2020-12-14 11:48:08 +01:00
Son NK
3dd8ed7840
Create /dashboard/coinbase_checkout, remove extend_subscription route
2020-12-14 11:34:59 +01:00
Son NK
f19a7e1bca
Add COINBASE_API_KEY and COINBASE_YEARLY_PRICE config
2020-12-14 11:33:39 +01:00
Son NK
369c9dafce
remove duplicated
2020-12-13 19:56:17 +01:00
Son NK
530160567b
fix coinbase button not displayed on pricing page
2020-12-13 19:51:00 +01:00
Son NK
1348b58672
only show coinbase option for user who has can_use_coinbase=True
2020-12-13 19:28:46 +01:00
Son NK
1961d2f18e
Add User.can_use_coinbase column
2020-12-13 19:28:13 +01:00
Son NK
fbe48b7b3e
add extend subscription link on settings page
2020-12-13 19:14:54 +01:00
Son NK
6c21b83975
add coinbase option on pricing page
2020-12-13 19:14:11 +01:00
Son NK
436e31229f
Create extend_subscription page
2020-12-13 19:13:26 +01:00
Son NK
0542adb761
Add COINBASE_WEBHOOK_SECRET, COINBASE_CHECKOUT_ID config
2020-12-13 19:11:49 +01:00
Son NK
02c74e6a5a
take into account Coinbase in can_upgrade(), is_paid(), _lifetime_or_active_subscription()
2020-12-13 19:08:06 +01:00
Son NK
9329cf04ad
Create CoinbaseSubscription model
2020-12-13 19:05:43 +01:00
Son NK
8527fed69e
pricing page: improve wording
2020-12-13 17:04:05 +01:00
Son Nguyen Kim
bf139f83b3
Merge pull request #342 from herrboyer/linting
...
Linting
2020-12-07 17:45:50 +01:00
Son NK
ce3dae2a07
inform user when an alias can't be created when a directory is disabled
2020-12-07 10:55:13 +01:00
Son NK
37a74bc093
refactor: rename
2020-12-07 10:50:42 +01:00
Son NK
4fb7b7bd2c
user can change directory disabled
2020-12-07 10:49:40 +01:00
Son NK
05d4ec1c2f
Add directory.disabled column
2020-12-07 10:48:43 +01:00
Son NK
a40bbe74fe
show include_sender_in_reverse_alias as checked if user hasn't set any value
2020-12-07 10:23:36 +01:00
Renaud Boyer
5d948faf56
black
2020-12-06 22:11:58 +01:00
Renaud Boyer
f2f13958c7
linting
2020-12-06 22:11:22 +01:00
Renaud Boyer
a2f3aeeece
linting
2020-12-06 22:10:42 +01:00
Renaud Boyer
2b9cb44cdb
linting
2020-12-06 22:10:16 +01:00
Renaud Boyer
c09b6ef675
linting
2020-12-06 22:08:35 +01:00
Renaud Boyer
1c73f07d18
linting
2020-12-06 22:08:05 +01:00
Renaud Boyer
a8d67f94e2
linting
2020-12-06 22:07:18 +01:00
Renaud Boyer
f3303ee6bb
linting
2020-12-06 22:06:03 +01:00
Renaud Boyer
4e93e511ec
linting
2020-12-06 22:05:13 +01:00
Renaud Boyer
f1fb0ebe1f
linting
2020-12-06 22:04:21 +01:00
Renaud Boyer
b7e6270a18
linting
2020-12-06 22:03:47 +01:00
Renaud Boyer
a45b6df78c
linting
2020-12-06 22:03:06 +01:00
Renaud Boyer
479a9d1a35
linting
2020-12-06 22:02:18 +01:00
Renaud Boyer
47b1398cad
linting
2020-12-06 22:01:43 +01:00
Renaud Boyer
4bf22771af
linting
2020-12-06 22:01:38 +01:00
Renaud Boyer
43d9dbc1fc
linting
2020-12-06 22:00:01 +01:00
Son NK
b0e39949cb
fix embed video on mobile view
2020-12-06 19:39:12 +01:00
Son NK
fec281b84f
Add include_sender_in_reverse_alias on Setting page
2020-12-06 19:38:37 +01:00
Son NK
ce2d68a64d
take into account include_sender_in_reverse_alias when creating reverse-alias
2020-12-06 19:37:20 +01:00
Son NK
eab09d8c32
Add User.include_sender_in_reverse_alias column. Null for existing user, False for new user.
2020-12-06 19:36:39 +01:00
Renaud Boyer
7bac9e82b9
linting
2020-12-06 18:04:29 +01:00
Renaud Boyer
7e1a474875
linting
2020-12-06 18:02:47 +01:00
Renaud Boyer
1ced8f76b7
linting
2020-12-06 18:02:23 +01:00
Renaud Boyer
4bcc0d107f
linting
2020-12-06 18:01:55 +01:00
Renaud Boyer
fad64ff064
linting
2020-12-06 18:00:41 +01:00
Renaud Boyer
fefbaeb143
linting
2020-12-06 18:00:06 +01:00
Renaud Boyer
1e5185b328
linting
2020-12-06 17:59:07 +01:00
Renaud Boyer
bcdb4c08d9
linting
2020-12-06 17:58:56 +01:00
Renaud Boyer
a46a03be85
linting
2020-12-06 17:57:10 +01:00
Son NK
83df119178
do not replace for "application/*"
2020-12-04 11:33:49 +01:00
Son NK
59daaa3164
ignore multipart/signed when replacing message
2020-12-03 17:52:11 +01:00
Son NK
255a7e085a
add index on user_id, mailbox_id, ... if possible
2020-12-02 17:33:03 +01:00
Son NK
81f9f9f41b
optimize get_stats(): use session.query instead of EmailLog.query
2020-12-02 17:30:56 +01:00
Son NK
450b101e6e
add /live endpoint
2020-12-02 16:34:28 +01:00
Son NK
66abbf2614
make sure to remove \n from alias name
2020-12-02 12:25:23 +01:00
Son NK
8551dade7c
hide replace reverse alias option
2020-12-01 18:36:24 +01:00
Son NK
cd680bcd7f
ignore content type like image/, video/, audio/ in replace()
2020-12-01 18:34:38 +01:00
Son NK
2107bd4b08
remove Black Friday promo
2020-12-01 10:07:53 +01:00
Son NK
652bb6a369
take into account multipart/mixed in replace()
2020-11-30 19:45:45 +01:00
Son NK
692c81ac2a
add warning about Gmail issue if reverse-alias replacement option
2020-11-30 19:16:10 +01:00
Son NK
cefa68d392
Create replace() in email_utils
2020-11-30 15:15:13 +01:00
Son NK
0b95ca33b8
use no encoding for 8bit and binary
2020-11-30 10:49:04 +01:00
Son NK
f804332c2d
refactor: create EmailEncoding enum
2020-11-30 10:48:16 +01:00
Son NK
86636b2eb7
fix delete user profile picture
2020-11-27 16:36:21 +01:00
Son NK
d61f45ea86
use 7bit as default encoding
2020-11-26 17:22:17 +01:00
Son NK
1241838b26
take into account message encoding in add_header()
2020-11-26 17:03:50 +01:00
Son NK
e2a7061429
add get_encoding() and encode_text()
2020-11-26 17:01:05 +01:00
Son NK
d35faf7154
comment out paddle issue annoucement
2020-11-26 10:39:44 +01:00
Son NK
adfbfe8026
Use load_public_key_and_check when adding new PGP key
2020-11-26 10:27:32 +01:00
Son NK
5b9eb8686a
add id to mailbox repr
2020-11-26 10:08:09 +01:00
Son NK
03383eb181
display Paddle issue as announcement on pricing page
2020-11-25 17:43:02 +01:00
Son NK
ca625e60d5
fix add pgp
2020-11-25 17:29:54 +01:00
Son NK
bb8c9451c4
catch all exception in load_public_key()
2020-11-25 14:31:14 +01:00
Son NK
4381314f6f
preload email_log.mailbox
2020-11-24 21:51:25 +01:00
Son NK
297857a140
Remove _MAILBOX_ID_HEADER
2020-11-24 16:50:55 +01:00
Son NK
6b07be5677
add email_log.mailbox_id column
2020-11-24 16:35:16 +01:00
Son NK
bcb2657de3
add remove button on custom domain name
2020-11-24 12:02:47 +01:00
Son NK
3d75ef974a
user can turn on/off pgp on mailbox that has valid pgp_finger_print
2020-11-24 11:22:41 +01:00
Son NK
cbbb472d06
refactor
2020-11-24 11:22:41 +01:00
Son NK
c707342695
Use pgp_enabled() instead of pgp_finger_print
2020-11-24 11:22:41 +01:00
Son NK
5997e5b5b5
add Mailbox.disable_pgp column
2020-11-24 11:22:41 +01:00
Son NK
33e6342a9c
use warning log when user uses premium domain
2020-11-23 10:43:50 +01:00
Son NK
836b602316
fix
2020-11-22 13:50:57 +01:00
Son NK
bcdf522174
create normalize_reply_email(): handle case where reply email contains space, quote, etc
2020-11-22 13:07:09 +01:00
Son NK
a1d5b01143
make sure mailbox email is valid
2020-11-22 12:18:31 +01:00
Son NK
fbf242f6c6
handle new name can be null
2020-11-22 12:10:19 +01:00
Son NK
f069d2f083
use getaddresses to parse multiple address from To, CC header. Remove get_addrs_from_header()
2020-11-21 19:15:02 +01:00
Son NK
8aed5ced3f
make sure a custom domain name does not contain a linebreak
2020-11-20 18:40:07 +01:00
Son NK
78ddf16c87
make sure alias name does not contain a linebreak
2020-11-20 18:39:23 +01:00
Son NK
c25a5b50f6
make sure reply_email only contain lowercase
2020-11-20 10:03:40 +01:00
Son NK
75c3fa1c11
make sure reply-email only uses ascii-encoded char
2020-11-18 15:36:39 +01:00
Son NK
ed22701cbe
fix duplicate pinned alias in get_alias_infos_with_pagination_v3
2020-11-18 12:08:36 +01:00
Son NK
9ca129cb97
use warning level for cannot decode error
2020-11-18 11:43:25 +01:00
Son NK
5b9dc88c67
make sure alias prefix cannot be more than 40 chars
2020-11-18 10:38:35 +01:00
Son NK
0224e5f8a6
Fix SpamAssassin: init all class fields
2020-11-18 10:28:32 +01:00
Son NK
319078fceb
use contact email when generating reply-email
2020-11-18 10:24:39 +01:00
Son NK
0963049d1f
use utf-8 when unknown charset in parseaddr_unicode()
2020-11-18 10:03:58 +01:00
Son NK
28d42a7a22
Use get_header_unicode() in get_addrs_from_header()
2020-11-18 10:03:00 +01:00
Son NK
be510ea1d7
use utf-8 if unknown charset in get_header_unicode()
2020-11-18 10:02:10 +01:00
Son NK
6ed6218895
black
2020-11-17 09:27:45 +01:00
Son NK
145fc9c67c
Add reverse_alias_address to GET /api/aliases/:alias_id/activities
2020-11-17 09:27:30 +01:00
Son NK
aada12f17e
return reverse_alias_address in POST /api/aliases/:alias_id/contacts and GET /api/aliases/:alias_id/contacts
2020-11-16 19:39:00 +01:00
Son NK
9154b4656d
refactor: create is_reply_email()
2020-11-16 19:22:19 +01:00
Son NK
3d153f5203
make sure user can't choose "ra" as directory name
2020-11-16 19:18:33 +01:00
Son NK
1926408a13
Add dns_utils.get_ns()
2020-11-16 19:16:06 +01:00
Son NK
75ba1669e0
Create generate_reply_email() and refactor
2020-11-16 19:15:09 +01:00
Son NK
15a6d9630a
Handle sender_format in PATCH /api/setting
2020-11-15 19:43:37 +01:00
Son NK
c794e73abd
Add EnumE.has_name(), EnumE.get_value()
2020-11-15 19:43:01 +01:00
Son NK
f0f81930bc
Return "sender_format" in GET /api/setting
2020-11-15 19:35:07 +01:00
Son NK
d8c9078708
Add EnumE.get_name()
2020-11-15 19:34:00 +01:00
Son NK
aee917a3ef
Add GET /api/custom_domains/:custom_domain_id/trash
2020-11-15 19:24:54 +01:00
Son NK
de495b9afe
return nb_alias in GET /api/custom_domains
2020-11-15 19:13:00 +01:00
Son NK
9d24b1b88a
GET /api/custom_domains
2020-11-15 19:09:25 +01:00
Son NK
f6568aca6a
Return pinned in GET /api/aliases/:alias_id, GET /api/v2/aliases
2020-11-15 19:01:11 +01:00
Son NK
f500a495b7
User can pin an alias
2020-11-15 18:46:43 +01:00
Son NK
ae05c164c9
Support pinned in PATCH /api/aliases/:alias_id
2020-11-15 18:46:27 +01:00
Son NK
6c7018dd33
Take into account pinned alias in get_alias_infos_with_pagination_v3
2020-11-15 18:42:29 +01:00
Son NK
abf50e302b
Add Alias.pinned column
2020-11-15 18:38:07 +01:00
Son NK
08902bf784
small style refactor
2020-11-15 18:31:10 +01:00
Son NK
9cfb6d412a
Add /api/v5/alias/options
2020-11-14 16:45:22 +01:00
Son NK
f452c79aec
Add /v2/setting/domains
2020-11-14 16:37:36 +01:00
Son NK
f62c568dd0
Add Contact.invalid_email column
2020-11-14 15:54:06 +01:00
Son NK
3489e41fdb
Add NOREPLY setting
2020-11-14 15:53:20 +01:00
Son NK
2c46d1db8e
Add PGP_SIGNER and display if it's set
2020-11-14 13:00:14 +01:00
Son NK
a072d6c0cd
only report the paddle error if it's not 147
2020-11-14 12:55:53 +01:00
Son NK
f16676e921
email.message_from_string can also throw LookupError when non-existent charset is set
2020-11-13 18:08:56 +01:00
Son NK
b4e5e3eecb
user can choose a referral code
2020-11-13 16:18:09 +01:00
Son NK
25de8001e2
fix circular import
2020-11-12 17:56:03 +01:00
Son NK
1c061ceb59
Schedule domain deletion instead of deleting it immediately
2020-11-12 17:41:47 +01:00
Son NK
ec4d879836
change promotion to 1st year only
2020-11-10 22:37:58 +01:00
Son NK
5570300699
use 2 random words when creating random alias
2020-11-10 18:52:31 +01:00
Son NK
4e16eb7403
fix
2020-11-10 17:42:23 +01:00
Son NK
4666d21f63
email.message_from_string can also throw KeyError when 'content-transfer-encoding' is absent
2020-11-10 17:26:24 +01:00
Son NK
632a5bbbc8
handle UnicodeEncodeError in copy() and to_bytes()
2020-11-10 16:02:19 +01:00
Son NK
c3f73b25b2
decode the subject
2020-11-09 21:16:50 +01:00
Son NK
b2f9479bce
failover when ascii encoding fails
2020-11-09 20:58:39 +01:00
Son NK
44c3ac1741
Replace 2.99 by 3, 29.99 by 30
2020-11-09 17:56:26 +01:00
Son NK
a35256d161
fix paddle
2020-11-09 17:34:58 +01:00
Son NK
2cc7cb6a37
use to_bytes instead of .as_bytes()
2020-11-09 17:02:10 +01:00
Son NK
15466903d1
Support OTHER_PADDLE_MONTHLY_PRODUCT_IDS, OTHER_PADDLE_YEARLY_PRODUCT_IDS config
2020-11-09 16:56:17 +01:00
Son NK
3f8e5d0a8b
add more logging
2020-11-08 22:39:49 +01:00
Son NK
a9297078d3
fix dkim clipboard
2020-11-08 22:39:38 +01:00
Son NK
76389647bb
add black friday coupon code
2020-11-08 16:31:24 +01:00
Son NK
4be182320e
black
2020-11-07 13:00:58 +01:00
Son NK
e659680875
add_header()
2020-11-07 13:00:12 +01:00
Son NK
f57f29a97b
Able to set a generic subject for PGP-enabled mailbox
2020-11-07 12:58:51 +01:00
Son NK
7cc57106de
Add Mailbox.generic_subject column
2020-11-07 12:48:44 +01:00
Son NK
6c626520d3
handle_bounce_reply_phase
2020-11-04 12:32:15 +01:00
Son NK
f4f2db0f04
use the same error structure in apple endpoints
2020-11-03 16:13:10 +01:00
Son NK
6e0394d980
fix filter not working when alias has several mailboxes
2020-11-03 15:10:57 +01:00
Son NK
4b8a2a1851
add tests for sign_data
2020-11-03 13:30:13 +01:00
Son NK
c1b8f717b5
improve DNS page
2020-11-03 13:12:22 +01:00
Son NK
4b6368b378
make sure only verified mailbox can be used as default
2020-11-03 12:43:01 +01:00
Son NK
19ac657c1c
add GET /api/v2/mailboxes
2020-11-03 12:14:13 +01:00
Son NK
273537e7ae
use same mailbox format for "POST /api/mailboxes" and "GET /api/mailboxes"
2020-11-03 11:22:01 +01:00
Son NK
a989545505
make sure alias contact address is valid
2020-11-03 11:13:43 +01:00
Son NK
04a418e655
fix contact name always converted to lowercase
2020-11-03 11:11:55 +01:00
Son NK
9fafddd603
use is_valid_email instead of regex
2020-11-03 11:11:09 +01:00
Son NK
751cc05534
check contact address in POST /aliases/<int:alias_id>/contacts
2020-11-03 11:10:32 +01:00
Son NK
72a34e28be
add is_valid_email()
2020-11-03 11:09:37 +01:00
Son NK
a890557c7f
Use check_alias_prefix() to check alias prefix
2020-11-03 10:39:08 +01:00
Son NK
8d0e243c83
sign PGP forwarded email if PGP_SENDER_PRIVATE_KEY
2020-11-02 19:09:57 +01:00
Son NK
3f150e5944
add new param PGP_SENDER_PRIVATE_KEY_PATH
2020-11-02 19:06:47 +01:00
Son NK
ec1b7dd8b8
return latest_activity=null if there's no activity in GET /api/v2/aliases
2020-11-01 12:32:20 +01:00
Son NK
38ca2341bc
fix mailbox query in get_alias_infos_with_pagination_v3
2020-11-01 12:24:19 +01:00
Son NK
e49169b887
Reset default random alias domain setting if user is not premium
2020-11-01 09:37:09 +01:00
Son NK
28563b9653
fix duplicated display
2020-10-30 13:05:45 +01:00
Son NK
c076c7c7f3
PATCH /api/setting
2020-10-28 17:47:26 +01:00
Son NK
12f7485cb1
Add GET /api/setting/domains
2020-10-28 17:30:57 +01:00
Son NK
77bf9537d0
Add GET /api/setting
2020-10-28 17:23:58 +01:00
Son NK
91534d3cf2
Add PATCH /api/user_info
2020-10-28 17:12:21 +01:00
Son NK
3f40e3c1cf
return profile_picture_url in GET /user_info
2020-10-28 17:11:33 +01:00
Son NK
6c816d51d6
fix load_public_key_and_check, remove IncorrectPassphrasePGPException
2020-10-28 12:21:42 +01:00
Son NK
9210459a72
add pgpy
...
- add pgpy to poetry
- add test PGP keys to local_data
- add encrypt_file_with_pgpy()
- use randomly pgpy
2020-10-28 11:50:14 +01:00
Son NK
71be3b27f7
redirect user to dashboard when setup is done
2020-10-28 10:49:50 +01:00
Son NK
a2254cfdf8
remove pgp debugging code
2020-10-27 20:27:34 +01:00
Son NK
1abebe8067
improve how to use reverse-alias
2020-10-27 18:59:59 +01:00
Son NK
6803d4bf42
fix import error
2020-10-26 10:32:56 +01:00
Son NK
b09bb42b2d
handle case where highlight_alias_id is not a number
2020-10-26 10:31:38 +01:00
Son NK
f0b46c1887
use warning log for /alias/options
2020-10-26 10:31:19 +01:00
Son NK
477481c41e
save the data for debugging when pgp fails
2020-10-24 19:03:19 +02:00
Son NK
83f3309149
use warning log for /v3/alias/options
2020-10-24 16:28:07 +02:00
Son NK
c140d3f842
improve reverse-alias instruction use
2020-10-24 16:23:47 +02:00
Son NK
9f50ab4cce
Handle IntegrityError when creating new alias
2020-10-24 15:50:29 +02:00
Son NK
5da7953a64
handle the case a directory alias is created concurrently
2020-10-23 11:55:01 +02:00
Son NK
85a1d67c6f
put browser extension onboarding email to the welcome email
2020-10-22 11:46:15 +02:00
Son NK
bc1eeb4f01
move TOTP to top
2020-10-22 11:09:37 +02:00
Son NK
677f150fef
add unsubscribe header to com emails
2020-10-22 10:44:05 +02:00
Son NK
ea45ac119e
Refactor: create Alias.unsubscribe_link
2020-10-22 10:37:02 +02:00
Son NK
4f7b30c204
Set user.paid_lifetime if paid coupon
2020-10-21 19:31:25 +02:00
Son NK
050c2feaeb
Add LifetimeCoupon.paid column
2020-10-21 19:31:07 +02:00
Son NK
459f821036
fix name
2020-10-20 20:09:44 +02:00
Son NK
a001132497
improve wording
2020-10-20 18:07:21 +02:00
Son NK
14b86749df
add more precision on what is account email
2020-10-20 18:02:52 +02:00
Son NK
6921ab05fd
reorganise settings sections
2020-10-20 17:47:58 +02:00
Son NK
635182e1ef
move lifetime case to first
2020-10-20 17:45:06 +02:00
Son NK
acce32fcc8
add doc
2020-10-20 17:42:05 +02:00
Son NK
32e25f5378
bring back alias/options v1,2,3
2020-10-20 17:31:43 +02:00
Son NK
828799010b
Add CustomDomain.nb_failed_checks column
2020-10-20 16:50:01 +02:00
Son NK
8482a55df6
display whether a domain is premium
2020-10-20 16:44:22 +02:00
Son NK
03521b5a84
do not check alias_domain_prefix when DISABLE_ALIAS_SUFFIX is set
2020-10-20 16:42:05 +02:00
Son NK
886d3a761c
delete /alias/options v1,v2,v3
2020-10-19 12:08:47 +02:00
Son NK
a2a4e50f27
remove potential duplicate in available_alias_domains
2020-10-15 17:02:54 +02:00
Son NK
1524bb4e4b
black
2020-10-15 16:52:55 +02:00
Son NK
dbf0404aa9
rename public_domain -> sl_domain if applicable
2020-10-15 16:52:38 +02:00
Son NK
4a32db5b5d
rename PublicDomain -> SLDomain
2020-10-15 16:51:07 +02:00
Son NK
0a4fc76b61
optimize import
2020-10-15 16:45:28 +02:00
Son NK
adff510359
use PublicDomain instead if ALIAS_DOMAINS
2020-10-15 16:45:08 +02:00
Son NK
521d8e51a5
small fix
2020-10-15 16:25:56 +02:00
Son NK
1fcf166c00
small refactor: add should_add_dkim_signature
2020-10-15 16:24:04 +02:00
Son NK
e79522b638
take into account Premium domains
2020-10-15 16:21:31 +02:00
Son NK
dcbd7baabc
Add PublicDomain.premium_only column
2020-10-15 16:08:06 +02:00
Son NK
90163220cf
rename email_domain_can_be_used_as_mailbox -> email_can_be_used_as_mailbox
2020-10-15 16:05:47 +02:00
Son NK
f56b0cddb2
use exception log for /alias/options endpoints
2020-10-15 16:02:04 +02:00
Son NK
cd15c64731
Add PREMIUM_ALIAS_DOMAINS config
2020-10-15 16:01:44 +02:00
Son NK
805e78cad1
rename email_belongs_to_alias_domains -> email_belongs_to_default_domains
2020-10-14 18:46:05 +02:00
Son NK
6557b7157f
handle the Paddle 147 error
2020-10-12 17:37:04 +02:00
Son NK
8268568f08
add mailbox.disabled column. Disable a mailbox if it fails tests for 10 days consecutive.
2020-10-12 13:28:21 +02:00
Son Nguyen Kim
4e45a619cd
Merge pull request #302 from TheLastProject/feature/custom_domain_random_suffix
...
Support random suffix for personal domains
2020-10-11 18:06:06 +02:00
Sylvia van Os
9702037573
Reformat with Black
2020-10-09 23:00:10 +02:00
Sylvia van Os
26d0437009
Make prefix generation configurable per domain
2020-10-09 22:54:13 +02:00
Son NK
5486f54955
refactor verify_prefix
2020-10-09 22:08:29 +02:00
Son NK
8dbd3c1c68
more detailed error message when an alias can't be created
2020-10-09 11:48:52 +02:00
Sylvia van Os
6b085960cb
Merge branch 'master' of https://github.com/simple-login/app into feature/custom_domain_random_suffix
2020-10-07 18:52:54 +02:00
Sylvia van Os
739fb50b04
Format with Black
2020-10-05 21:12:13 +02:00
Sylvia van Os
aeef9ccca9
Support random suffix for personal domains
2020-10-05 21:00:52 +02:00
Son Nguyen Kim
a4bcf59bfe
Merge pull request #297 from TheLastProject/feature/dedupe_email
...
Dedupe email address
2020-10-04 15:08:15 +02:00
Son NK
7e425c0338
disable login if user is disabled
2020-10-04 12:49:43 +02:00
Son NK
6c37a91c6d
add User.disabled field
2020-10-04 12:49:43 +02:00
Son NK
e225bffc30
add backref for some models
2020-10-04 12:49:43 +02:00
Son Nguyen Kim
73e90e6892
Merge pull request #298 from TheLastProject/feature/autogenerated_icon
...
Show icon if address was autogenerated
2020-10-03 10:54:41 +02:00
Sylvia van Os
ff0eaa4bbf
Show icon if address was autogenerated
2020-10-02 20:52:29 +02:00
Sylvia van Os
7be674c13b
Reformat with Black
2020-10-01 21:51:50 +02:00
Sylvia van Os
d8ed1cbbc3
Dedupe email address
2020-10-01 21:35:11 +02:00
Son NK
cbdcab7d24
handle the ValueError in SpamAssassin
2020-09-30 17:24:03 +02:00
Son NK
770b15aba3
do not hardcode spamd user
2020-09-30 14:01:49 +02:00
Son NK
6a4622fca9
replace cx42 by spamd for SpamAssassin
...
get rid of "info: spamd: handle_user (userdir) unable to find user: 'cx42'" error
2020-09-30 12:47:39 +02:00
Son NK
772a2e7355
add "export alias" button
2020-09-30 12:20:18 +02:00
Son NK
8ed619687f
ignore UnicodeDecodeError when parsing SpamAssassin response
2020-09-30 12:00:05 +02:00
Son NK
8517e7d356
refactor com emails: remove non-uses, move to the right location
2020-09-30 11:51:43 +02:00
Son Nguyen Kim
4e7aec7dce
Merge pull request #293 from TheLastProject/patch-1
...
Add dot after DKIM
2020-09-30 11:09:01 +02:00
Son NK
91e3cc5dcb
able to set a different host than 127.0.0.1 and apply black format
2020-09-30 10:32:21 +02:00
Son NK
078368362c
copy spamassassin client code from https://github.com/petermat/spamassassin_client
2020-09-30 10:29:52 +02:00
Sylvia van Os
b95c44e3db
Add dot after DKIM
...
To prevent the domain name being added after it
2020-09-29 19:17:56 +02:00
Son NK
e661f90ce7
do not hard exit when memory exceeds the threshold
2020-09-29 12:33:36 +02:00
Son NK
571e39bb30
user can add/remove authorized address
2020-09-28 21:09:20 +02:00
Son NK
0830bba218
Add AuthorizedAddress model
2020-09-28 17:40:54 +02:00
Son NK
d6d686c4c3
add argument commit= to create()
2020-09-28 17:40:30 +02:00
Son NK
53f66d0f3c
handle the "past due" subscription case: downgrade a subscription if it's renewed
2020-09-24 09:34:35 +02:00
Son NK
f274bac053
fix typo
2020-09-23 19:36:54 +02:00
Son NK
d81ad2fd12
sanitize mailbox before creating: remove empty space
2020-09-17 17:02:50 +02:00
Son NK
4b697fc897
parseaddr_unicode: handle case where name is bytes
2020-09-16 17:34:33 +02:00
Son NK
03dfafe1cf
handle linebreak in parseaddr_unicode
2020-09-16 17:28:01 +02:00
Son NK
5480f6d35b
handle case highlight_id is not int
2020-09-14 19:54:00 +02:00
Son NK
40892f8253
contact email can contain whitespace
2020-09-14 18:21:30 +02:00
Son NK
299f7d3fba
remove unnecessary sanitize
2020-09-14 17:58:15 +02:00
Son NK
491f4de120
add Contact mail_from and from_header column
2020-09-14 17:55:55 +02:00
Son NK
ed2e748d1e
sanitize envelope mail_from and rcpt_tos
2020-09-14 17:30:01 +02:00
Son NK
c48b5038f3
sanitize rcpt_to in greylisting_needed
2020-09-14 12:20:16 +02:00
Son NK
18263c2fd5
handle case alias already created in try_auto_create_catch_all_domain()
2020-09-14 12:18:15 +02:00
Son NK
e291a71037
fix duplicate contact on contact page
2020-09-14 11:38:01 +02:00
Son NK
1026f0763d
fix wording
2020-09-12 14:57:33 +02:00
Son NK
c6eba9f125
improve welcome email
2020-09-12 14:34:32 +02:00
Son NK
3545ae7d97
improve intro
2020-09-12 14:32:55 +02:00
Son NK
2cfaa93a5f
create a first alias to receive SimpleLogin newsletter when user is created
2020-09-12 14:31:31 +02:00
Son NK
8fe508c5d3
Add User.newsletter_alias_id column
2020-09-12 14:30:49 +02:00
Son NK
c625a178e8
use RequestException instead of ConnectionError
2020-09-11 16:55:32 +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
6da48298a6
Add BatchImport model
2020-09-10 20:05:25 +02:00
Son NK
a660a05f83
use warning for problem with random alias default domain
2020-09-10 09:32:51 +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
d1eb1ea799
handle case apple server not accessible
2020-09-05 20:56:03 +02:00
Son NK
5cf0a4bcfe
handle case alias can be None in toggle_alias
2020-09-05 20:54:08 +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
4cb3e54821
send at max 1 email / 30 days for DNS issue on custom domain
2020-08-31 17:36:27 +02:00
Son NK
85b87bbacb
improve send_email_with_rate_control to use on any day range
2020-08-31 17:32:46 +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
63e228d9f4
only alert on invalid mailbox that has too many email logs
2020-08-30 19:59:39 +02:00
Son NK
77c67c5314
create aliases_for_mailbox() and nb_email_log_for_mailbox()
2020-08-30 19:56:45 +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
ffc59a6fad
Add check_custom_domain cronjob
2020-08-29 19:05:32 +02:00
Son NK
a3d919db2e
take into account mailbox in alias search
2020-08-29 19:03:33 +02:00
Son NK
37a53757eb
add send_email_at_most_times
2020-08-27 10:43:30 +02:00
Son NK
fdedc24358
black new version
2020-08-27 10:20:48 +02:00
Son NK
9c72f4dec0
Add Alias.disable_email_spoofing_check column
2020-08-26 14:39:03 +02:00
Son NK
4101142253
black
2020-08-26 11:45:24 +02:00
Son NK
f213469e9f
display nb-reply, nb-forward on alias contact page
2020-08-26 11:45:07 +02:00
Son NK
cd687664d1
fix email template
2020-08-25 13:03:34 +02:00
Son NK
ab911fd55e
do not forward cycle email: email sent to alias from its mailbox
2020-08-25 12:51:19 +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
17c7303fb5
add get_header_from_bounce()
2020-08-24 10:17:22 +02:00
Son NK
eb6647d62e
fix
2020-08-23 20:24:46 +02:00
Son NK
77bfa67402
fix delete_alias: do not use IntegrityError
2020-08-23 20:17:50 +02:00
Fabio Widmer
6a45010740
Remove secret variables from Jinja
2020-08-22 18:38:44 +02:00
Son NK
ef196c5b4a
use 5.5 as max spam score
2020-08-22 16:58:51 +02:00
Son NK
00a08d898a
refactor: do not use latest_activity in subquery
2020-08-21 23:10:23 +02:00
Son NK
d7583f1733
handle case where alias does not have any activity in get_alias_infos_with_pagination_v3
2020-08-21 20:39:18 +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
dc8c2f403e
try to fix Message.as_bytes() by trying different policies
2020-08-21 12:01:11 +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
Fabio Widmer
aa18b7ecd1
Add variables to Jinja
2020-08-18 08:47:41 +02:00
Fabio Widmer
28dbafe1f7
Hide deprecated social login if not used
2020-08-16 12:57:12 +02:00
Son NK
0c6a5f4333
add EmailLog.spam_score column
2020-08-16 11:59:53 +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
Son NK
bf555ed605
detect spam in reply phase
2020-08-15 16:53:57 +02:00
Son NK
08db23658a
add SPAMASSASSIN_HOST param
2020-08-15 16:33:48 +02:00
Son NK
c0f263ee70
add Monitoring model
2020-08-15 13:15:20 +02:00
Son NK
d8e4396a70
add HOST param
2020-08-14 19:09:45 +02:00
Fabio Widmer
fbb17b1f57
Fix email_utils.py formatting
2020-08-14 16:50:59 +02:00
Fabio Widmer
9fa9dbe821
Fix email_utils.py formatting
2020-08-14 16:30:43 +02:00
Fabio Widmer
9226492f83
More self hosting improvements
2020-08-14 16:23:29 +02:00
Son NK
89830e2173
fix import
2020-08-14 12:06:26 +02:00
Son NK
6bc0c5ada4
fix Mailbox.delete: use alias_utils.delete_alias
2020-08-14 12:03:41 +02:00
Son NK
b4eb110971
fix Directory.create: use alias_utils.delete_alias
2020-08-14 12:02:54 +02:00
Son NK
2cae0200a8
use delete_alias(alias,user) instead of Alias.delete, DomainDeletedAlias.create, DeletedAlias.create
2020-08-14 12:02:33 +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
b7cbaa6e84
delete the expired ChangeEmail object
2020-08-13 10:59:39 +02:00
Fabio Widmer
8e71e8e7f4
A few (self hosting) improvements
2020-08-12 16:12:41 +02:00
Fabio Widmer
d0ed69f8aa
Add Plausible Analytics support
2020-08-12 15:24:34 +02:00
Son NK
b395c2ebd0
use warning log for FIDO error
2020-08-12 12:48:51 +02:00
Son NK
9def7df974
also search for PGP key in contact
2020-08-08 10:26:24 +02:00
Son NK
8a11e42da9
notify admin when user cancels
2020-08-07 10:01:11 +02:00
Son NK
c74857c7e7
use alias name when searching
2020-08-07 09:56:44 +02:00
Son NK
2f00294ba3
replace pgp_enabled by disable_pgp
2020-08-06 14:22:28 +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
a3051b3d45
black
2020-08-04 20:12:15 +02:00
Son NK
b3ca7d1d5b
Return pgp_enabled in GET /api/v2/aliases
2020-08-04 20:11:59 +02:00
Son NK
03841693ba
Return support_pgp in GET /api/v2/aliases
2020-08-04 20:09:42 +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
41e2283d93
domain catch-all alias belongs to domain mailboxes
2020-08-01 12:31:43 +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
e8fc9752b5
Add DomailMailbox model
2020-08-01 12:20:59 +02:00
Son NK
ed22f5116f
fix api key counter not correctly incremented
2020-08-01 10:14:59 +02:00
Son NK
68eeb2e121
add rel="noopener" for target="_blank" link
2020-07-30 10:09:10 +02:00
Son NK
efe1ab641f
add hCaptcha check
2020-07-23 12:43:55 +02:00
Son NK
307e3c93c6
Add HCAPTCHA_SECRET, HCAPTCHA_SITEKEY param
2020-07-23 12:40:50 +02:00
Son NK
38a6bcc461
add warning log
2020-07-23 11:32:11 +02:00
Son NK
d89e41d0e5
use user.max_spam_score if present
2020-07-23 11:11:43 +02:00
Son NK
8e9968a7d9
Add User.max_spam_score column
2020-07-23 11:09:28 +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
7f29756230
do not hardcode oauth urls
2020-07-16 23:48:47 +02:00
Son NK
515b3510a8
use warning when user is out of quota
2020-07-15 19:14:37 +02:00
Son NK
8f17cda794
use warning error for alias expiration error
2020-07-13 20:40:26 +02:00
Son NK
28c96d0d35
return 412 when alias ceration time is expired
2020-07-11 19:23:56 +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
4b479ea003
take into account user.default_random_alias_public_domain_id in create_new_random()
2020-07-04 23:27:02 +02:00
Son NK
4542a8353e
add User.available_domains_for_random_alias(), default_random_alias_domain()
2020-07-04 23:24:32 +02:00
Son NK
955231199e
Add User.default_random_alias_public_domain_id
2020-07-04 23:23:39 +02:00
Son NK
ee9b796b7d
Add PublicDomain model
2020-07-04 23:18:11 +02:00
Son NK
4cd0227477
refactoring: move model methods below fields
2020-07-04 22:46:09 +02:00
Son NK
5ed39b47ca
add setup-done page
2020-07-04 19:42:48 +02:00
Son NK
d59e9a6238
use warning level for apple server issue
2020-07-04 18:24:34 +02:00
Son NK
d0776b770f
add GET /api/logout
2020-07-04 12:10:04 +02:00
Son NK
0d3a3e0c48
Create POST /api/api_key
2020-07-04 11:41:31 +02:00
Son NK
5b3ec91300
login user in api auth endpoints
2020-07-04 10:39:38 +02:00
Son NK
df96773959
show nb paid user on referral page
2020-07-02 08:48:59 +02:00
Son NK
96ac15a3e0
add user.is_paid() and referral.nb_paid_user()
2020-07-02 08:48:37 +02:00
Son NK
40b4273111
take into account /verifyReceipt can return 5**
2020-06-30 20:10:12 +02:00
Son NK
c41bffbbae
refactor: use SESSION_COOKIE_NAME instead of hardcoding "slapp"
2020-06-28 21:17:18 +02:00
Son NK
b23259cacd
add Mailbox.nb_failed_checks
2020-06-28 11:17:36 +02:00
Son NK
ec0f5ccd3a
only return verified mailbox in alias.mailboxes
2020-06-28 11:15:29 +02:00
Son NK
204f5f9a0c
fix alias can be none in delete alias endpoint
2020-06-28 09:48:21 +02:00
Son NK
02bd45bc4a
fix alias can be none in update alias endpoint
2020-06-28 09:48:21 +02:00
Son NK
b2f82ba4a8
use custom domain to generate a random alias if user enables this option
2020-06-25 13:05:25 +02:00
Son NK
abe9768db4
user can update the random alias domain
2020-06-25 13:04:27 +02:00
Son NK
040c6d1f9e
add User.default_random_alias_domain_id
2020-06-25 13:02:43 +02:00
Son NK
c91b44fa97
set rate limit to 5/minute on new alias routes
2020-06-24 10:32:22 +02:00
Son NK
774ffcae3b
enable CORS on /api endpoints
2020-06-24 10:30:01 +02:00
Son NK
45a8b360e4
handle case where alias is None
2020-06-19 23:44:16 +02:00
Son NK
ee6a1a672d
fix POST /v2/alias/custom/new when DISABLE_ALIAS_SUFFIX is set
2020-06-15 23:35:20 +02:00