Son Nguyen Kim
d561bae7dd
Merge pull request #864 from simple-login/ac/insecure-random
...
Replace using random with secrets for security purposes
2022-03-30 11:49:33 +07:00
Adrià Casajús
1555bc6346
fix test
2022-03-29 21:03:55 +02:00
Adrià Casajús
19e87a7156
More random to secrets
2022-03-29 18:42:28 +02:00
Adrià Casajús
b15facb6e4
Use secrets instead of random
2022-03-29 18:40:52 +02:00
Adrià Casajús
97ef5ff765
Fix oauth redirect when clientid is invalid
2022-03-29 18:37:01 +02:00
Adrià Casajús
a9e31cff26
Fix tests
2022-03-29 18:34:13 +02:00
Adrià Casajús
c5b0f5304e
Format
2022-03-29 18:18:11 +02:00
Adrià Casajús
d6df5e0ea0
Add limiters to auth routes
2022-03-29 18:14:13 +02:00
Adrià Casajús
e91fd26964
Sanitized missing places
2022-03-29 18:03:18 +02:00
Adrià Casajús
fe9161b101
Properly validate //host.com urls when redirecting after receiving a next param
2022-03-29 17:53:00 +02:00
Adrià Casajús
085c166cb2
Replace 5XX with 2XX for return path that fail SPF check
2022-03-29 15:09:10 +02:00
Adrià Casajús
7d36256b7c
Check return-path spf record before bouncing a message
2022-03-29 10:52:11 +02:00
Son
0d7d56c0ea
send email when an email is put to quarantine
2022-03-25 18:02:17 +01:00
Son
63b1100a8b
log event when there's no dmarc result
2022-03-25 16:19:11 +01:00
Son
ce2d2a3b3a
fix case where header isn't string
2022-03-25 16:17:58 +01:00
Son
32fd65b69b
add more log for alias transfer
2022-03-23 18:33:33 +01:00
Son Nguyen Kim
3d30870395
Merge pull request #849 from acasajus/new/parse-rpamd-headers
...
Return 200 on fishy dmarc result
2022-03-22 17:36:45 +01:00
Son Nguyen Kim
99b05034b0
Merge pull request #843 from acasajus/new/parse-rpamd-headers
...
Parse rspamd headers and apply dmarc policy if found.
2022-03-22 17:13:11 +01:00
Adrià Casajús
517bcb632e
MR changes
2022-03-22 17:02:59 +01:00
Son
5b3688b6df
set a domain for message-id
2022-03-22 11:02:02 +01:00
Adrià Casajús
5f831d593a
CamelCase to snake_case
2022-03-21 17:59:43 +01:00
Adrià Casajús
45459d65be
PR comments
2022-03-21 17:43:26 +01:00
Son
f554375f23
decode, replace and encode for base64 encoding
2022-03-21 17:29:22 +01:00
Son
1952f368a8
require password to use the api key page
2022-03-21 14:40:47 +01:00
Son
9dc7cff87f
add rate limiting for /auth/mfa
2022-03-21 14:23:35 +01:00
Son
a662ef4aee
remove g.deduct_limit in api auth endpoint
2022-03-21 14:23:20 +01:00
Adrià Casajús
06a1363e92
Updated MR comments
2022-03-21 12:03:11 +01:00
Adrià Casajús
cdea0f5ee2
Rename header
2022-03-21 10:43:19 +01:00
Adrià Casajús
44dd06fabf
Added spoofed email test
2022-03-21 10:43:18 +01:00
Adrià Casajús
c9cbaeb460
format
2022-03-21 10:43:17 +01:00
Adrià Casajús
e8013f8e0c
Initial parse of rpamd extra headers
2022-03-21 10:43:17 +01:00
Son
0931642d11
use 10.0.0.0 network instead of 240.0.0.0
2022-03-20 10:38:58 +01:00
Son
fa2f83dbf4
fix and refactor
2022-03-16 10:24:59 +01:00
Son
7e0992b767
add mime version header for transactional email
2022-03-14 19:23:38 +01:00
Son Nguyen Kim
79154378f2
Merge pull request #836 from cquintana92/feature/allow-to-edit-manual-subscription
...
Allow to edit manual subscription
2022-03-14 18:07:07 +01:00
Carlos Quintana
ed58e811d1
Allow to edit manual subscription
2022-03-14 16:47:30 +01:00
Adrià Casajús
479a7420cb
Useful time format
2022-03-14 15:40:50 +01:00
Adrià Casajús
b463ba8f41
Added filter
2022-03-14 15:33:09 +01:00
Adrià Casajús
bf177ac5ba
Remove unused
2022-03-14 15:29:17 +01:00
Adrià Casajús
9b16143e59
Show nicer admin logs
2022-03-14 15:28:53 +01:00
Adrià Casajús
553d8976be
Added extend subscription log
2022-03-14 15:07:51 +01:00
Adrià Casajús
549c6ec7d3
Comment changes
2022-03-11 11:37:14 +01:00
Adrià Casajús
4368fd323f
Less changes
2022-03-10 18:13:33 +01:00
Adrià Casajús
d0860cd54d
Merge remote-tracking branch 'origin/master' into new/admin-audit-trail
...
* origin/master: (35 commits)
reduce nb of commit
show "more" only when a notification has a title. Show either title or message. Use bold font when a notification isn't read
create a notification when an alias is disabled
mark a notification as read when user arrives on the notification page
Use plausible outbound link tracking
add more log
fix discover page
fix
fix "local variable 'alias_id' referenced before assignment"
make sure to close session in monitoring
use Date instead of date for header value
lessen alias automatic disable check
refactor
return the block reason in should_disable()
add adhoc upgrade on admin
add extend subscription for 1 month to admin
disable edition on admin
comment out some admin pages
fix migration
fix duplicated stats
...
2022-03-10 18:10:13 +01:00
Adrià Casajús
733efc387c
Updated admin view
2022-03-10 17:49:30 +01:00
Adrià Casajús
98c942d84a
Added admin log view
2022-03-10 17:32:35 +01:00
Adrià Casajús
bc82bab1eb
Added alembic migration
2022-03-10 16:37:21 +01:00
Adrià Casajús
1d15af53b7
Add an audit log for the admin panel
2022-03-10 16:13:31 +01:00
Son
0e3a5c3d3c
mark a notification as read when user arrives on the notification page
2022-03-09 17:58:26 +01:00
Son
6f80edfd64
fix discover page
2022-03-08 16:38:03 +01:00
Son
a64a70cbc8
use Date instead of date for header value
2022-03-07 15:57:29 +01:00
Son
350f498b94
lessen alias automatic disable check
2022-03-07 15:50:58 +01:00
Son
71136669e9
return the block reason in should_disable()
2022-03-07 15:44:27 +01:00
Son
f7ba3873d0
add adhoc upgrade on admin
2022-03-02 19:05:17 +01:00
Son
52a911f9d3
add extend subscription for 1 month to admin
2022-03-02 19:04:45 +01:00
Son
b2d8f5a017
disable edition on admin
2022-03-02 19:04:30 +01:00
Son
627b2e56d9
comment out some admin pages
2022-02-28 16:40:07 +01:00
Son Nguyen Kim
6a520e110c
Merge pull request #816 from simple-login/feature/include-sender-in-header
...
Feature/include sender in header
2022-02-28 09:24:18 +01:00
Son
205d8d7d3f
add index for Alias custom_domain_id and directory_id columns
2022-02-26 17:51:50 +01:00
Son
4faf0d7636
optimize dashboard page: load custom domain using joinedload() instead of explicit join
2022-02-26 17:34:53 +01:00
Son Nguyen Kim
7df93c2ee5
Merge pull request #813 from cquintana92/feature/make-nameservers-configurable
...
Make nameservers configurable
2022-02-25 12:29:50 +01:00
Son
007aa56551
user can turn on/off the including sender in header option
2022-02-25 12:24:54 +01:00
Son
51598ada02
add User.include_header_email_header column
2022-02-25 12:24:54 +01:00
Carlos Quintana
e9dd73e99b
Replace env by os.environ.get
2022-02-25 11:19:49 +01:00
Adrià Casajús
01cc65bdca
Allow to have lower priority MX servers
2022-02-24 17:23:45 +01:00
Carlos Quintana
8f339923f8
Make nameservers configurable
2022-02-24 15:05:05 +01:00
Son
7da06ba424
return 422 if account not activated
2022-02-22 22:12:36 +01:00
Son Nguyen Kim
e9d134fe8f
Merge pull request #784 from FozzieHi/fix-testing-warnings
...
Fix deprecation warnings.
2022-02-21 17:12:36 +01:00
Son Nguyen Kim
e55c3a155b
Merge pull request #803 from acasajus/fix/sentry-APP-ZP
...
Only allow authenticated and enabled users to accept a OAuth post request
2022-02-21 17:11:53 +01:00
Adrià Casajús
4b13d5a28c
Fix test
2022-02-21 16:03:39 +01:00
Son Nguyen Kim
7d008228e3
Merge pull request #811 from cquintana92/feature/ignore-or-reject-for-blocked-contacts
...
Allow to configure ignore or reject response for blocked contacts
2022-02-21 15:55:48 +01:00
Son Nguyen Kim
bfcd75bdea
Merge pull request #801 from acasajus/new/no-reply
...
Send support questions to the support ticket page
2022-02-21 15:07:27 +01:00
Carlos Quintana
ee9170bb17
Allow to configure ignore or reject response for blocked contacts
2022-02-21 12:52:21 +01:00
Adrià Casajús
33163660f7
PR comments
2022-02-21 12:30:26 +01:00
Adrià Casajús
3e983e3557
Only allow authenticated and enabled users to accept a OAuth post request
2022-02-17 17:25:04 +01:00
Adrià Casajús
b0ac2f871a
Fixes
2022-02-17 13:21:40 +01:00
Adrià Casajús
398c1a55f1
Change SUPPORT_EMAIL to NOREPLY
2022-02-17 13:18:52 +01:00
Adrià Casajús
15ce7b00d8
Reply to noreply@... once per user
2022-02-16 18:38:31 +01:00
Carlos Quintana
2a751624a8
Default ALLOWED_REDIRECT_DOMAINS to URL if it's not set
2022-02-16 16:16:14 +01:00
Carlos Quintana
b4e291d4fd
Make NextUrlSanitizer a static class
2022-02-16 16:05:50 +01:00
Carlos Quintana
6be99bc576
Do not account for urlencoded redirects
2022-02-16 16:02:13 +01:00
Carlos Quintana
a44acf1846
Add support for allowed redirect domains
2022-02-16 09:38:55 +01:00
Carlos Quintana
39222cf868
Simplify conditional
2022-02-15 16:33:30 +01:00
Carlos Quintana
2f9489fe39
Only allow relative redirects
2022-02-15 15:16:31 +01:00
Son
728d935d65
add ZENDESK_ENABLED param
2022-02-14 18:08:32 +01:00
Son
c3cd1419f9
reformat code: put POST handling on top
2022-02-14 18:02:54 +01:00
Son
a0bb4e9ccc
more verbose error
2022-02-14 18:02:30 +01:00
Son Nguyen Kim
69c8980c18
Merge pull request #792 from acasajus/new/zendesk-support
...
Create support tickets via zendesk
2022-02-14 17:53:30 +01:00
Adrià Casajús
416e7b363a
PR fixes
2022-02-14 15:58:36 +01:00
Adrià Casajús
305ce38379
PR changes
2022-02-14 11:19:03 +01:00
Adrià Casajús
700856053a
PR comment fixes
2022-02-11 13:32:31 +01:00
Adrià Casajús
8120128a51
Added Zendesk token
2022-02-10 12:59:48 +01:00
Adrià Casajús
639d4412e1
Updated comments from PR
2022-02-10 12:47:31 +01:00
Adrià Casajús
c9974d5321
Removed successful ticket created page and replaced with notification
2022-02-10 12:38:56 +01:00
Adrià Casajús
3fedc84c95
Add rate limit to ticket createion
2022-02-10 12:34:46 +01:00
Son Nguyen Kim
c18f9658b0
Merge pull request #787 from FozzieHi/test-config
...
Update testing suite and refactor.
2022-02-10 11:37:36 +01:00
Adrià Casajús
e844c9a392
Removed disabled page and redirected to the normal dashboard
2022-02-10 11:04:36 +01:00
Adrià Casajús
f59c5499fb
Formatting
2022-02-10 10:30:28 +01:00
Adrià Casajús
8aee883aae
Updated with more PR comments
2022-02-09 16:41:04 +01:00
Adrià Casajús
95fa95649d
Added comments from PR
2022-02-09 16:20:55 +01:00
Adrià Casajús
e57dcac2d2
Added zendesk submission flow
2022-02-09 12:00:48 +01:00
Adrià Casajús
219d5b998f
Add a suport form to create tickets in zendesk
2022-02-08 22:04:25 +01:00
Son
5b62f5a745
add rate limit to /auth/register
2022-02-07 18:45:41 +01:00
george
c415324932
Add flake8-bugbear
2022-02-06 20:37:43 +00:00
george
f7be992437
Update black, flake8 and pre-commit and use specific pre-commit versions.
2022-02-06 14:25:53 +00:00
Son
5da31f53b4
add MONITORING_EMAIL param
2022-02-04 15:43:40 +01:00
george
936d90a5f5
Fix deprecation warnings.
2022-02-04 13:49:38 +00:00
Son
4d1c4cfdff
support pinned parameter in /api/v2/aliases
2022-02-03 11:16:49 +01:00
Son Nguyen Kim
543923b325
Merge pull request #760 from FozzieHi/delete-all-api-keys-button
...
Add a button to delete all API Keys
2022-02-02 18:31:05 +01:00
Son
049bd746ad
refactor shell
2022-01-26 15:22:37 +01:00
Son
5a712f3877
make sure subdomain can only contain lowercase letters, numbers and dashes.
2022-01-26 14:53:27 +01:00
george
74713c2142
Rename method.
2022-01-25 18:32:34 +00:00
Son Nguyen Kim
89a800eed9
Merge pull request #753 from FozzieHi/totp-invalid-login-email
...
Invalid TOTP and recovery code email notifications
2022-01-24 18:35:52 +01:00
Son
fc3f06f4d8
create notification listing page
2022-01-24 16:45:36 +01:00
Son
90fa4abf69
create a notification for a bounce email
2022-01-24 16:10:36 +01:00
Son
1de6fefc59
add notification detail page
2022-01-24 15:22:01 +01:00
Son
5b7949f346
return title in /api/notifications
2022-01-24 15:20:59 +01:00
Son
3422f038eb
add Notification title
2022-01-24 15:18:56 +01:00
george
65531b5c63
Add a button to delete all API Keys.
2022-01-23 18:38:54 +00:00
Son
e73288354d
remove IGNORED_EMAILS variable
2022-01-21 19:30:27 +01:00
george
ab72927a16
Update text.
2022-01-20 18:24:28 +00:00
george
50122da0fe
Implement API notifications and use a function in email_utils
2022-01-20 17:42:11 +00:00
george
42407a0543
Send the email after the local error.
2022-01-20 16:44:15 +00:00
george
f7f91afc1e
Send a notification email for invalid recovery codes.
2022-01-20 16:41:42 +00:00
george
6d736aa915
Implement rate limiting with send_email_with_rate_control.
2022-01-20 15:05:18 +00:00
george
0eb2984b9c
Add invalid TOTP login email notifications.
2022-01-20 14:18:47 +00:00
Son
b929dc5462
check if alias is not none
2022-01-18 09:40:50 +01:00
Son
0806f9243e
return custom domain json in patch
2022-01-16 17:26:11 +01:00
Son
841621dbe2
handle the case mailboxes is empty in try_auto_create_via_domain
2022-01-13 09:33:32 +01:00
Son
4cea47cc27
add setting for include_website_in_one_click_alias
2022-01-12 11:50:49 +01:00
Son
6cd8e45d21
return the default sender format (AT) in case user uses a non-supported sender format
2022-01-12 10:19:25 +01:00
Son
c0067b7657
add more log
2022-01-10 15:58:22 +01:00
Son
73d781cf6b
handle non number alias_id
2022-01-10 10:44:41 +01:00
Son
9c696bd038
ignore VERPReply
2022-01-09 20:35:57 +01:00
Son
6cdf5637aa
validate the alias address before creating
2022-01-09 20:22:41 +01:00
Son
a0727435eb
use warning level
2022-01-09 20:13:41 +01:00
Son
c5e4dd6d16
save email for debug with error name as prefix
2022-01-08 16:58:23 +01:00
Son
862d0e7a11
warn users if SL is used with another forwarding service
2022-01-08 00:42:03 +01:00
Son
ed4acebdb1
delete the email log in reply phase if NonReverseAliasInReplyPhase
2022-01-08 00:28:26 +01:00
Son
01ba5e8bf0
return 5** if CannotCreateContactForReverseAlias
2022-01-08 00:16:16 +01:00
Son
20b6ce29fc
take into account authorized_address when checking email loop
2022-01-08 00:09:45 +01:00
Son
d4e31257fa
make sure to output exception name in log
2022-01-07 16:45:12 +01:00
Son
fb87225d2d
raise error when receiving emails sent from reverse alias
2022-01-07 16:14:21 +01:00
Son
d4e1aec875
refactor
2022-01-07 14:57:47 +01:00
Son
6b31b8926e
fix comment
2022-01-07 14:27:53 +01:00
Son
1bdae7fbe8
handle CannotCreateContactForReverseAlias when user creates a new contact
2022-01-07 10:47:36 +01:00
Son
5195c9de8b
raise error when a non reverse-alias is used during the reply phase
2022-01-07 10:34:08 +01:00
Son
84d1f22a7b
add Contact.automatic_created column to know which contact is created during the forward phase
2022-01-07 10:21:31 +01:00
Son
ad622df071
make sure a contact with website_email=reverse alias of another contact can't be created
2022-01-07 10:04:12 +01:00
Son
b2e4578953
add yield_per_query() helper
2022-01-06 18:50:54 +01:00
Son
d1b9fb8bb5
add type annotation for Session
2022-01-06 18:30:14 +01:00
Son
37bb7655d5
remove unused import
2022-01-06 15:30:33 +01:00
Son
9ff323c746
make sure to set custom_domain_id when creating a new alias
2022-01-06 15:29:37 +01:00
Son
b7e8324e5a
move get_custom_domain() to alias_utils
2022-01-06 15:20:09 +01:00
Son
33bd7dbcd6
refactor
2022-01-06 14:57:01 +01:00
Son
de9f994fe2
check suffix in try_auto_create
2022-01-06 11:12:26 +01:00
Son
4976f48944
add /phone/provider2/sms
2022-01-05 18:14:51 +01:00
Son
b505ceebe9
add PHONE_PROVIDER_2_HEADER, PHONE_PROVIDER_2_SECRET config
2022-01-05 18:14:14 +01:00
Son
385dd1e755
handle out-of-office email in addition to bounce
2022-01-05 15:30:44 +01:00
Son
ffc621596a
fix is_automatic_out_of_office: only use "Auto-Submitted" header
2022-01-05 15:21:54 +01:00
Son
6cb55e27f3
make sure alias that starts with bounce prefix can't be automatically created
2022-01-05 15:16:04 +01:00
Son
5e2ea81a6c
do not consider out-of-office as bounce
2022-01-04 18:06:08 +01:00
Son
2ed7c5fcdb
only return active number
2022-01-04 16:26:38 +01:00
Son
4ac8da1e8f
poll messages on the phone reservation page
2022-01-04 16:24:50 +01:00
Son
4d8c89105f
GET /api/phone/reservations/:reservation_id
2022-01-04 16:22:41 +01:00
Son
d51c32ad51
always return 200 for phone provider1 callback
2022-01-04 14:58:41 +01:00
Son
72bd998b9b
fix logging
2022-01-04 14:58:24 +01:00
Son
bc2f9ad45f
add PhoneNumber.comment column
2022-01-04 14:54:55 +01:00
Son
127f8daad7
add /phone/provider1/sms
2022-01-04 14:53:22 +01:00
Son
3484f71dac
add PHONE_PROVIDER_1_HEADER and PHONE_PROVIDER_1_SECRET config
2022-01-04 14:52:56 +01:00
Son
a4b113b7fa
remove DISPOSABLE_FILE_PATH
2022-01-04 09:40:10 +01:00
Son
d38fa95eed
make sure number of minutes is specified
2022-01-04 09:35:34 +01:00
Son
325207d6ba
Use InvalidMailboxDomain instead of DISPOSABLE_EMAIL_DOMAINS
2022-01-03 10:33:21 +01:00
Son
4332fd3244
Create InvalidMailboxDomain model
2022-01-03 10:31:33 +01:00
Son
85fb859dcb
show error when a domain can't be used as random alias default domain
2022-01-03 10:05:06 +01:00
Son
34118f459a
ignore smtp error in send_trial_end_soon_email()
2022-01-03 09:59:52 +01:00
Son
558200113c
remove unnecessary code in send_email()
2022-01-01 11:47:45 +01:00
Son
01a8a0343e
log when an alias is deleted
2021-12-31 11:18:08 +01:00
Son
61226545c2
handle the 2 consecutive dots in alias
2021-12-31 11:15:24 +01:00
Son
9ee449722a
new domain has ownership verified if its root has the ownership verified
2021-12-31 11:10:36 +01:00
Son
a6f5b755aa
set apple_sub.product_id
2021-12-30 16:20:31 +01:00
Son
e1d82b7e0d
Add AppleSubscription.product_id col
2021-12-30 16:20:18 +01:00
Son
30ba566457
take into account _MACAPP_MONTHLY_PRODUCT_ID in verify_receipt
2021-12-30 16:15:33 +01:00
Son
22cf8cfe38
send Custom/smtp_connection_time to newrelic
2021-12-30 14:17:46 +01:00
Son
2cd50c582a
remove NEWRELIC_CONFIG_PATH
2021-12-30 14:15:49 +01:00
Son
c5185eddf3
Revert "log "Custom/smtp_connection_time" metric in newrelic"
...
This reverts commit 378bad6253
.
2021-12-30 11:55:48 +01:00
Son
378bad6253
log "Custom/smtp_connection_time" metric in newrelic
2021-12-30 11:46:01 +01:00
Son
a64968f6e5
consider utf-8 email encoding as no encoding
2021-12-30 11:36:52 +01:00
Son
b3469ba9d4
log how much time to get a smtp connection
2021-12-30 11:28:50 +01:00
Son
c14a7b4f7a
use with ... for smtp
2021-12-29 17:09:24 +01:00
Son
f439e39580
cache smtp server and remove POSTFIX_PORT_FORWARD
2021-12-29 16:26:37 +01:00
Son
733a9c42b0
delete activation code before sending email to avoid any delay
2021-12-29 10:26:42 +01:00
Son
80b0af91e5
allow user to create alias with domain that has ownership verified (and might not have MX verified)
2021-12-29 10:24:22 +01:00
Son
b9e2a79933
enable email sending retry in cron job
2021-12-28 16:42:01 +01:00
Son
a270c72d60
add random_alias_suffix to settings api
2021-12-28 15:24:58 +01:00
Son
229dc7fd44
fix test
2021-12-28 15:09:33 +01:00
Son
83be94b43e
user can create aliases for domains that don't have mx verified
2021-12-28 12:01:32 +01:00
Son
fc42db43ca
add new sender formats: NAME_ONLY, AT_ONLY, NO_NAME
2021-12-28 10:49:37 +01:00
Son
24a392818b
sl_sendmail tries by default 2 times before giving up: replace can_retry by retries
2021-12-27 17:03:44 +01:00
Son
2cf1c4143a
reduce sleep time between sl_sendmail failure
2021-12-27 17:00:11 +01:00
Son
a6569d47dd
do not put price in plan_name to take into account discount
2021-12-26 22:04:45 +01:00
Son
584772f798
fix upgrade_channel
2021-12-23 19:28:57 +01:00
Son
879b364a47
return 421 to retry when SMTPRecipientsRefused error
2021-12-23 18:17:29 +01:00
Son
544df7034d
do not retry sending email in send_email()
2021-12-16 21:31:01 +01:00
Son
75d6b1dab5
add more logging
2021-12-16 15:09:15 +01:00
Son
64c6ef2cbe
retry when SMTPRecipientsRefused too
2021-12-16 15:06:26 +01:00
Son
a142a430d2
use sl_sendmail instead of smtp.sendmail
2021-12-16 10:32:10 +01:00
Son
eec2880c41
fix case signed_suffix is None
2021-12-15 17:12:27 +01:00
Son
79ca39a625
use regex_match instead of re.fullmatch()
2021-12-14 15:00:32 +01:00
Son
5e7730c35c
refactor: move regex_match() to its own file
2021-12-14 15:00:32 +01:00
Son
f3e8fc10a9
use re instead of re2 if error "Argument 'pattern' has incorrect type (expected bytes, got PythonRePattern)"
2021-12-11 19:38:22 +01:00
Son
a021bba811
fix toggle contact should only be used by authenticated user
2021-12-06 18:39:12 +01:00
Son
c6a2af3c3c
remove unused admin column
2021-12-06 18:04:23 +01:00
Son
3e2c120a73
phone reservation page
...
- add twilio lib
- create phone listing, reservation page
- add twilio callback to receive messages
2021-12-02 17:03:13 +01:00
Son
7109dc7120
add models for phone: Country, Number, Reservation, Message
2021-12-02 16:50:26 +01:00
Son
daca70f2b4
add TWILIO_AUTH_TOKEN config
2021-12-02 16:30:30 +01:00
Son
226ce9333c
return error if invalid alias address
2021-12-02 16:17:41 +01:00
Son
e1123961cf
check if user has lifetime license on pricing page
2021-12-01 17:41:20 +01:00
Son
4d388a202c
allow user with manual or coinbase subscription to switch to paddle
2021-12-01 17:16:01 +01:00
Son
c6f49821c7
remove unused import
2021-12-01 10:39:08 +01:00
Son
34509cbbb3
delete account is protected by password
2021-12-01 10:11:18 +01:00
Son
4ffa5c9345
display expires date
2021-11-30 10:33:31 +01:00
Son
94a90665ea
black format
2021-11-29 16:46:03 +01:00
Son
21bd4ed97e
display all user payment channels on admin
2021-11-29 16:26:41 +01:00
Son
c29b5100fb
delete User.subscription_cancelled
2021-11-29 16:17:24 +01:00
Son
325a1a9524
remove unused User.premium_end
2021-11-29 11:35:28 +01:00
Son
5f47d172e0
move fake_data() to dedicated fiel
2021-11-28 11:51:31 +01:00
Son
c356c75494
show coupon expires date when user buys a coupon
2021-11-26 18:20:46 +01:00
Son
4d0f6811b2
error if coupon is expired
2021-11-26 18:11:03 +01:00
Son
06d459ba99
Add coupon.expires_date column
2021-11-26 18:10:23 +01:00
Son
6d1b6720cf
set content_type for plain text message
2021-11-25 10:34:59 +01:00
Son
dd6e265aa0
add RSPAMD_SIGN_DKIM and add "X-SimpleLogin-Want-Signing" header
2021-11-25 10:34:42 +01:00
Son
4c33b63f97
better way to know whether this is the last page
2021-11-23 14:44:48 +01:00
Son
cd553608a5
fix
2021-11-23 14:35:37 +01:00
Son
f049da8c9a
Compare mx domains with priority order and not priority value
2021-11-23 14:31:53 +01:00
Son
eeb24f594a
Add OLD_UNSUBSCRIBER and support it
2021-11-22 18:17:07 +01:00
Son
55ae61527d
user can buy 1-year coupon
2021-11-22 16:30:27 +01:00
Son
2d9f8e83e6
add PADDLE_COUPON_ID to config
2021-11-22 16:28:49 +01:00
Son
b5c2d9ee2a
fix custom domain not correctly set on /v2/alias/custom/new and /v3/alias/custom/new
2021-11-22 16:20:50 +01:00
Son
3add9e6db8
make sure to delete Fido when disabling Fido on a user
2021-11-22 15:58:11 +01:00
Son
bd8b9526f6
set Fido.user_id
2021-11-22 15:57:51 +01:00
Son
e4f2e1f5a8
add Fido.user_id column
2021-11-22 15:57:38 +01:00
Son
63e1baf46a
can disable both OTP and FIDO
2021-11-22 11:32:14 +01:00
Son
77e38e63fe
handle hotmail complaint during reply phase
2021-11-21 11:31:28 +01:00
Son
63f4d15329
do not decrease directory or subdomain quota when user deletes a subdomain/directory
2021-11-20 20:00:35 +01:00
Son
a072fdcd96
do not send emails to disabled user
2021-11-20 19:42:49 +01:00
Son
30f2734853
flake8
2021-11-19 18:32:04 +01:00
Son
b2c31ef658
fix the pagination error display
2021-11-19 18:30:36 +01:00
Son
d2ed9337f1
add coupon comment in notification
2021-11-19 16:40:52 +01:00
Son
fdfa286d3e
allow contact email to be case sensitive
2021-11-18 16:44:04 +01:00
Son
a17e81a8f1
user can't import csv if current_user.disable_import
2021-11-18 10:51:57 +01:00
Son
6f4c9f6c5a
add User.disable_import column
2021-11-18 10:51:13 +01:00
Son
38ecb227b0
reduce subdomain/directory quota when user create/delete subdomain/directory
2021-11-18 10:33:15 +01:00
Son
85c6e791bc
add _directory_quota, _subdomain_quota column to User
2021-11-18 10:30:46 +01:00
Son
bccfcee780
add subdomain and directory stats to Metric
2021-11-17 17:43:59 +01:00
Son
ffc04c7fe9
redirect user to subdomain page if a subdomain is deleted
2021-11-17 17:34:53 +01:00
Son
a8c86785d1
make sure a deleted subdomain can't be recreated
2021-11-17 17:21:13 +01:00
Son
5a81c08e32
add DeletedSubdomain model
2021-11-17 17:20:00 +01:00
Son
417f7b92b0
make sure a deleted directory can't be recreated
2021-11-17 17:02:31 +01:00
Son
482aa8614c
Create DeletedDirectory model
2021-11-17 17:01:39 +01:00
Son
2ce7f3d445
add coupon.comment column
2021-11-17 11:52:46 +01:00
Son
67377a0f22
do not show subdomains on the domain page
2021-11-17 11:52:33 +01:00
Son
6eb702870c
handle the case alias is in trash
2021-11-17 10:56:43 +01:00
Son
9c27f94e8e
return only bounce report that can be decoded
2021-11-17 10:54:17 +01:00
Son
abc074ea9b
make sure password can't be longer than 100 chars
2021-11-16 19:41:05 +01:00
Son
eaff8b7ff3
remove User.can_use_subdomain column, make subdomain available to all users
2021-11-15 11:16:03 +01:00
Son
790f0ed23c
return 250 status when handling bounces
2021-11-13 11:21:19 +01:00
Son
324cc8734b
handle the case user mistakenly use a lifetime coupon on the coupon page
2021-11-12 17:53:56 +01:00
Son
416eafaeb9
use the first alias suffix when creating a new random alias
2021-11-12 11:04:00 +01:00
Son
611fb8a20c
take into account user.include_website_in_one_click_alias in /api/alias/random/new
2021-11-12 09:45:31 +01:00
Son
293cc74c53
add User.include_website_in_one_click_alias column
2021-11-12 09:44:40 +01:00
Son
2fad942c95
include coupon comment in the notification
2021-11-11 18:22:41 +01:00
Son
5105c0dbee
limit the number of subdomains
2021-11-09 10:17:47 +01:00
Son
9f9b470ab8
fix
2021-11-08 11:52:41 +01:00
Son
d7971953ac
return error if name too long when updating alias
2021-11-08 11:26:10 +01:00
Son
89648a83dd
fix case /mailbox/confirm_change is called in unauthorized user
2021-11-08 11:22:54 +01:00
Son
429683f444
log more data in apple.verify_receipt()
2021-11-06 18:25:15 +01:00
Son
a1fdbc0caa
use bigint for Fido.sign_count
2021-11-06 12:40:16 +01:00
Son
bcf1fa2510
fix bug: user can't update mailbox address if it's already used by another account
2021-11-05 18:42:34 +01:00
Son
383f633e41
fix active_page
2021-11-05 18:33:14 +01:00
Son
bfab753e76
do not show subdomain if no SLDomain support it
2021-11-05 18:10:56 +01:00
Son
4ed60ba1d0
set dmarc and dkim to False for subdomain
2021-11-05 18:09:04 +01:00
Son
58e92e7462
user can add subdomain
2021-11-05 11:44:39 +01:00
Son
ef734d7045
add User.can_use_subdomain column
2021-11-05 11:44:04 +01:00
Son
3f1020d5d7
Add CustomDomain.is_sl_subdomain and SLDomain.can_use_subdomain columns
2021-11-05 11:29:10 +01:00
Son
516898af59
move all template files to templates/
2021-11-04 15:05:22 +01:00
Son
4a47e8c9c6
refactor: move template files to templates/
2021-11-04 15:00:39 +01:00
Son
0de85fdce3
redirect user directly to the client page if user has already authorized the client
2021-11-04 14:59:01 +01:00
Son
a03d87b62c
move files to templates/
2021-11-04 14:48:56 +01:00
Son
f8b6b20dd8
not create html in send_email if html isn't set
2021-11-04 14:27:33 +01:00
Son
014b7d5b1f
improve wording on setting page
2021-11-03 12:36:07 +01:00
Son
0ae40d599a
user can block contact directly on the dashboard
2021-11-03 11:29:46 +01:00
Son
51a85011b1
rename "send email" to "contacts"
2021-11-03 10:23:40 +01:00
Son
accbf882c4
user can set one_click_unsubscribe_block_sender setting
2021-11-03 10:11:47 +01:00
Son
31e39314d5
return "block_forward" for /api/aliases/{alias.id}/contacts
2021-11-02 15:55:16 +01:00
Son
4369137e25
block the sender via one click unsubscribe
2021-11-02 15:44:43 +01:00
Son
368a2f1b47
Add User.one_click_unsubscribe_block_sender column
2021-11-02 15:41:49 +01:00
Son
caa8656748
create /dashboard/block_contact/:contact_id
2021-11-02 15:30:18 +01:00
Son
b50f1d60b2
refactor: create headers constants for List-Unsubscribe
2021-11-02 14:36:37 +01:00
Son
52a19818b7
save email whose bounce info can't be parsed for debugging
2021-11-02 14:32:16 +01:00
Son
fbb1451352
rename file
2021-11-02 11:43:04 +01:00
Son
7fef62f67a
Add MessageIDMatching.email_log_id column
2021-11-01 18:41:36 +01:00
Son
db226c5706
black
2021-11-01 17:58:20 +01:00
Son
e67969cdcf
add processID to log format
2021-11-01 17:45:24 +01:00
Son
2691fff217
handle UnicodeDecodeError in replace()
2021-11-01 10:11:36 +01:00
Son
507d10cd89
user can block/unblock contact
2021-10-28 10:19:34 +02:00
Son
bc4805b1fa
Add POST /api/contacts/:contact_id/toggle
2021-10-28 10:14:20 +02:00
Son
9620f97449
add Contact.block_forward column
2021-10-28 10:12:56 +02:00
Son
02a005d076
increase message_id length to 1024
2021-10-27 16:06:56 +02:00
Son
8aa7b1b773
set client.referral_id=None when a referral is deleted
2021-10-26 12:06:49 +02:00
Son
b41b695228
include the referral code when user signs up via SIWSL
2021-10-26 12:06:16 +02:00
Son
04bcc24ad7
user can set client.referral
2021-10-26 12:04:16 +02:00
Son
1aff59e112
improve client UI
2021-10-26 11:55:42 +02:00
Son
f19655fc93
add client.referral_id column
2021-10-26 11:55:27 +02:00
Son
a0165d6381
remove not working on gmail part
2021-10-25 15:39:49 +02:00
Son
3d071d27a6
improve wording, add client url
2021-10-25 15:18:42 +02:00
Son
0fbd351bed
handle the referral url that has ?slref=code part
2021-10-25 15:02:02 +02:00
Son
83c5eded80
Referral name is required
2021-10-25 15:01:32 +02:00
Son
8cb413d5fd
remove unused import
2021-10-25 14:47:07 +02:00
Son
7e0609c39a
do not display nb_paid_user for client
2021-10-25 14:36:23 +02:00
Son
d701b84110
decode and encode email payload for quoted-printable email in replace()
2021-10-25 14:34:13 +02:00
Son
8680c0a739
do do not use the ra+ prefix for reverse alias
2021-10-25 14:33:42 +02:00
Son
befec56a86
display nb paid user on SIWSL app
2021-10-25 11:10:23 +02:00
Son
8bafdfc879
improve SIWSL wording
2021-10-25 11:09:30 +02:00
Son
9299904fc9
small refactor
2021-10-24 10:40:05 +02:00
Son
083b56b9a6
if user.disable_automatic_alias_note, do not add alias note
2021-10-23 18:24:28 +02:00
Son
50b0dc3767
Add User.disable_automatic_alias_note column
2021-10-23 17:40:57 +02:00
Son
d41ab5f5de
use words.txt instead of words_alpha.txt
2021-10-23 17:31:56 +02:00
Son
b0822519eb
only show the navigation arrow when #contacts > PAGE_LIMIT
2021-10-23 16:08:43 +02:00
Son
4a90c79753
make sure mailbox_ids is a list in /api/v3/alias/custom/new
2021-10-23 15:55:39 +02:00
Son
ecdce2307f
make sure input of /api/v3/alias/custom/new is a dict
2021-10-23 15:52:17 +02:00
Son
5843fa94a0
handle encoding typo
2021-10-19 18:05:56 +02:00
Son
9fb6e45077
fix the help text too close to the input
2021-10-19 17:38:29 +02:00
Son
421c121d59
black
2021-10-19 14:03:51 +02:00
Son
be7ae3021a
rename is_reply_email -> is_reverse_alias, make sure reverse-alias must end with EMAIL_DOMAIN
2021-10-19 12:14:16 +02:00
Son
1483f2e103
Add EmailLog.message_id, sl_message_id and MessageIDMatching table
2021-10-18 17:25:59 +02:00
Son
462164ff16
use tldextract to extract hostname
2021-10-18 11:45:48 +02:00
Son
d6edd59450
use warning level
2021-10-18 09:55:28 +02:00
Son
0b06c46f65
handle missing content-transfer-encoding
2021-10-17 17:19:44 +02:00
Son
283a6a530d
handle case address.parse can also parse an URL and return UrlAddress
2021-10-17 12:52:59 +02:00
Son
34564f6fa4
Add Metric2.nb_total_bounced_last_24h column
2021-10-15 10:46:22 +02:00
Son
4d740a4dc0
flake8
2021-10-15 10:39:29 +02:00
Son
57bfa7e933
make sure that a domain already used in a verified mailbox can't be added
2021-10-15 10:32:20 +02:00
Son
fcb94f0331
add Bounce.info column
2021-10-14 15:45:29 +02:00
Son
3bdeda3e04
add get_mailbox_bounce_info()
2021-10-14 15:10:16 +02:00
Son
05cf085511
fix
2021-10-13 13:32:27 +02:00
Son
cfe88b5df2
use job system to delete domain
2021-10-13 11:43:44 +02:00
Son
fbabe6fb44
use job system for deleting mailbox
2021-10-13 11:40:15 +02:00
Son
3a0b125323
fix table name
2021-10-13 10:52:41 +02:00
Son
e13a974e53
disable rate limiting
2021-10-13 10:30:04 +02:00
Son
074dd875dc
comment out "Submit for approval" section
2021-10-12 14:39:29 +02:00
Son
372466ab06
do not use flask-sqlalchemy
...
- add __tablename__ for all models
- use sa and orm instead of db
- rollback all changes in tests
- remove session in @app.teardown_appcontext
2021-10-12 14:36:47 +02:00
Son
653a03ac11
show tooltip on highlighted alias
2021-10-12 09:58:17 +02:00
Son
8394d7340c
format
2021-10-12 09:51:11 +02:00
Son
ee0ed7d9ec
refactor: use headers.py
2021-10-11 12:21:14 +02:00
Son
5821294ae9
refactor: use headers.py
2021-10-11 12:10:18 +02:00
Son
9bb83fe3e2
fix email thread: do not delete original message id
2021-10-11 12:00:37 +02:00
Son
a7f82b2110
fix test
2021-10-11 11:47:07 +02:00
Son
5d7e10f776
make sure when user changes password, log user out on other browsers
2021-10-11 11:30:41 +02:00
Son
fdc23b3107
add User.alternative_id column
2021-10-11 11:30:10 +02:00
Son
cef6579946
add User.lifetime_coupon_id column
2021-10-04 17:14:34 +02:00
Son
9c528b913c
add LifetimeCoupon.comment column
2021-10-04 16:48:33 +02:00
Son
4638155bbc
allow import aliases for domains that have ownership_verified
2021-10-02 19:18:38 +02:00
Son Nguyen Kim
9528bdcb2e
user can enable the ignore_loop_email
2021-09-27 15:58:04 +02:00
Son Nguyen Kim
339d611e63
remove Contact.from_header column
2021-09-27 12:19:33 +02:00
Son Nguyen Kim
8301015afd
do not use email_validator in get_email_domain_part()
2021-09-27 12:13:41 +02:00
Son Nguyen Kim
408322217d
allow user having apple subscription to switch to web subscription
2021-09-27 09:59:33 +02:00
Son Nguyen Kim
51a7dbfa52
Revert "not dkim sign"
...
This reverts commit b14534db2c
.
2021-09-25 18:47:15 +02:00
Son Nguyen Kim
b14534db2c
not dkim sign
2021-09-23 19:32:06 +02:00
Son Nguyen Kim
469c2011aa
use ~all instead of -all for SPF
2021-09-23 10:30:59 +02:00
Son Nguyen Kim
0ed0ac9ea7
handle "text/x-python-script" in replace()
2021-09-23 09:19:07 +02:00
Son Nguyen Kim
d7d301b9c3
add missing h1
2021-09-22 16:03:58 +02:00
Son Nguyen Kim
3b16e502b3
add debug info when an email is sent from reverse-alias
2021-09-22 09:58:40 +02:00
Son Nguyen Kim
3443499ab9
add note for alias auto created with directory too
2021-09-22 09:45:42 +02:00
Son Nguyen Kim
1a32b654d0
refactor
2021-09-22 09:45:00 +02:00
Son Nguyen Kim
7674d8480e
refactor: rename
2021-09-22 09:44:35 +02:00
Son Nguyen Kim
ff1238a56f
add alias note when auto creating alias via domain
2021-09-22 09:43:48 +02:00
Son Nguyen Kim
8024b35f1d
refactor
2021-09-21 14:11:59 +02:00
Son Nguyen Kim
d8280af93c
refactor: rename
2021-09-21 14:09:24 +02:00
Son Nguyen Kim
5e9fb83150
fix typo
2021-09-21 14:08:52 +02:00
Son Nguyen Kim
636879ac1a
use another icon for pin
2021-09-21 12:20:44 +02:00
Son Nguyen Kim
9279b20975
only put pinned alias in default sorting
2021-09-21 12:20:29 +02:00
Son Nguyen Kim
0075cee1ee
default to UUID for api key code if the previous one is already used
2021-09-21 11:27:37 +02:00
Son Nguyen Kim
3c81f982ca
display N/A if api key name is null
2021-09-21 11:26:05 +02:00
Son Nguyen Kim
65ce47b6f7
Allow ApiKey.name to be null
2021-09-21 11:25:52 +02:00
Son Nguyen Kim
18acfd9a42
handle case mailbox new address is already used
2021-09-21 11:19:22 +02:00
Son Nguyen Kim
19088ba85f
refactor
2021-09-21 11:17:32 +02:00
Son Nguyen Kim
d9d67df126
remove unique constraint on TransactionalEmail.email
2021-09-21 11:15:40 +02:00
Son Nguyen Kim
bcc5126500
remove any restriction on regex
2021-09-21 10:57:47 +02:00
Son Nguyen Kim
1d09d76cb2
use re2 instead of re to avoid ReDOS attack
2021-09-21 10:57:36 +02:00
Son Nguyen Kim
2c60414796
when new rule is created, go to the rule list section
2021-09-21 10:43:02 +02:00
Son Nguyen Kim
84880ae32a
fix error with rule regex doesn't save if error
2021-09-21 10:42:32 +02:00
Son Nguyen Kim
1e3afa257c
validate regex before creating rule
2021-09-21 10:42:02 +02:00
Son Nguyen Kim
f160ebec4e
add debug zone to auto create page
2021-09-21 10:14:36 +02:00
Son Nguyen Kim
809f547742
remove CustomDomain.auto_create_regex
2021-09-21 09:48:07 +02:00
Son Nguyen Kim
e5a8ce1492
use AutoCreateRule instead of custom_domain.auto_create_regex when creating new alias
2021-09-20 18:29:36 +02:00
Son Nguyen Kim
56c72d5fba
create auto create page, remove custom domain auto_create_regex part
2021-09-20 18:28:43 +02:00
Son Nguyen Kim
f36f8b94e2
Create AutoCreateRule, AutoCreateRuleMailbox model
2021-09-20 18:23:19 +02:00
Son Nguyen Kim
0055ca976b
add flush option to ModelMixin.create()
2021-09-20 18:16:52 +02:00
Son Nguyen Kim
17c13ee37f
ignore smtp error in handle_bounce_forward_phase()
2021-09-20 13:51:16 +02:00
Son Nguyen Kim
cfb7b7cefc
fix setting
2021-09-20 13:43:54 +02:00
Son Nguyen Kim
005a760710
handle case catch_all is enabled but custom_domain.auto_create_regex is already set
2021-09-20 12:32:39 +02:00
Son Nguyen Kim
153831ed1a
remove obsolete sender formats
2021-09-20 12:27:36 +02:00
Son Nguyen Kim
98b472d925
use "pin" instead of "favorite"
2021-09-19 19:50:50 +02:00
Son Nguyen Kim
530bc8591e
support | in auto create alias regex
2021-09-19 09:36:19 +02:00
Son Nguyen Kim
cbc20dd268
remove unused import
2021-09-18 19:19:17 +02:00
Son Nguyen Kim
838f1dc86d
add beta mention to auto create alias regex
2021-09-18 19:16:43 +02:00
Son
9b89d7cc5d
update package
2021-09-18 18:48:31 +02:00
Son
ec2812bfa4
handle invalid email in email_can_be_used_as_mailbox
2021-09-18 18:46:26 +02:00
Son Nguyen Kim
8b676bc4af
not disable alias if ALIAS_AUTOMATIC_DISABLE is not set
2021-09-17 18:05:35 +02:00
Son Nguyen Kim
de3207ac4b
Add ALIAS_AUTOMATIC_DISABLE
2021-09-17 18:05:18 +02:00
Son Nguyen Kim
344f8e67d2
take into account custom_domain.auto_create_regex in try_auto_create_catch_all_domain()
2021-09-17 17:43:12 +02:00
Son Nguyen Kim
a6c874e914
Use validate_email in get_email_local_part and get_email_domain_part
2021-09-17 17:42:52 +02:00
Son Nguyen Kim
2b84168d68
validate address in try_auto_create
2021-09-17 17:42:16 +02:00
Son Nguyen Kim
0b127216ee
user can set custom_domain.auto_create_regex
2021-09-17 17:41:36 +02:00
Son Nguyen Kim
58d36e9cd8
add CustomDomain.auto_create_regex column
2021-09-17 17:35:36 +02:00
Son Nguyen Kim
b990c052ac
move domain mailboxes to domain detail page and only enable it if catch-all is on
2021-09-17 11:54:37 +02:00
Son Nguyen Kim
512ade83b4
improve wording & styling on custom domain info page
2021-09-17 11:38:07 +02:00
Son Nguyen Kim
785a619385
Add debug_info decorator
2021-09-17 10:31:26 +02:00
Son Nguyen Kim
da0ddd5a34
Merge pull request #619 from Dattito/fix-wrong-description-of-error
...
fixed wrong description of error
2021-09-15 11:23:11 +02:00
Son Nguyen Kim
695a628e68
save email that can't be DKIM signed to temp dir to investigate
2021-09-15 09:29:08 +02:00
Son Nguyen Kim
3441d2ccf1
add new param TEMP_DIR
2021-09-15 09:28:08 +02:00
David Siregar
1cc8f7f2e3
fixed wrong description of error
2021-09-14 21:28:51 +02:00
Son Nguyen Kim
567bee9a0b
add exception trace when dkim fails
2021-09-14 09:13:39 +02:00
Son Nguyen Kim
e4ed192cce
rename
2021-09-13 19:50:15 +02:00
Son Nguyen Kim
106358da5f
handle yahoo complaint
2021-09-13 19:49:40 +02:00
Son Nguyen Kim
b3012376c3
use another DKIM header if one fails
2021-09-13 16:04:32 +02:00
Son Nguyen Kim
6e42e536db
ignore email sent from a mailbox to its alias if user.ignore_loop_email
2021-09-10 18:15:22 +02:00
Son Nguyen Kim
62044e6db1
Add User.ignore_loop_email column
2021-09-10 18:14:51 +02:00
Son Nguyen Kim
4949afc791
black
2021-09-10 17:42:07 +02:00
Son Nguyen Kim
e5a388dffb
optimize import
2021-09-10 17:37:33 +02:00
Son Nguyen Kim
61d9f7ee43
refactor
2021-09-10 17:31:29 +02:00
Son Nguyen Kim
41478a5715
replace parseaddr_unicode by parse_full_address
2021-09-10 17:26:14 +02:00
Son Nguyen Kim
638e8137ec
fix test
2021-09-10 17:10:05 +02:00
Son Nguyen Kim
3ad4b6b76f
use flanker instead of parseaddr_unicode
2021-09-10 17:06:38 +02:00
Son Nguyen Kim
8023afe9be
use email_validator instead of validate_email which isn't updated for a while
2021-09-10 16:42:02 +02:00
Son Nguyen Kim
6b65e00dcf
install flanker, upgrade email_validator
2021-09-10 16:36:59 +02:00
Son Nguyen Kim
defd7b159d
Fix get_header_unicode: handle the case header contains several parts
2021-09-09 11:47:01 +02:00
Son Nguyen Kim
4df83f953d
handle utf-8 decoding fail
2021-09-08 15:17:11 +02:00
Son Nguyen Kim
5ac78f2694
reformat
2021-09-08 11:29:55 +02:00
Son Nguyen Kim
41f10373d1
add plan info
2021-09-08 10:51:47 +02:00
Son Nguyen Kim
f3cff1f1bf
create manual subscription using the coupon.is_giveaway info
2021-09-07 15:36:19 +02:00
Son Nguyen Kim
d9f44437da
add Coupon.is_giveaway column
2021-09-07 15:35:55 +02:00
Son Nguyen Kim
48838eb176
add highlighted alias in case it's not included in the result
2021-09-07 15:22:50 +02:00
Son Nguyen Kim
b2ac1b537d
add only pinned alias filter
2021-09-07 15:10:37 +02:00
Son Nguyen Kim
6dd6b74073
black
2021-09-07 11:13:28 +02:00
Son Nguyen Kim
b53da25a41
handle hotmail complaint
2021-09-06 19:44:18 +02:00
Son Nguyen Kim
ccb526faa1
blur out other aliases when an alias is highlighted
2021-09-06 19:12:31 +02:00
Son Nguyen Kim
1df5bec8df
use parsleyjs instead of formbouncerjs
2021-09-06 18:51:50 +02:00
Son Nguyen Kim
ffd2ec5e81
add filter by directory on dashboard
2021-09-05 19:11:05 +02:00