Son
|
73d781cf6b
|
handle non number alias_id
|
2022-01-10 10:44:41 +01:00 |
|
Son
|
6cdf5637aa
|
validate the alias address before creating
|
2022-01-09 20:22:41 +01:00 |
|
Son
|
1bdae7fbe8
|
handle CannotCreateContactForReverseAlias when user creates a new contact
|
2022-01-07 10:47:36 +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
|
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
|
85fb859dcb
|
show error when a domain can't be used as random alias default domain
|
2022-01-03 10:05:06 +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
|
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
|
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
|
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
|
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
|
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
|
55ae61527d
|
user can buy 1-year coupon
|
2021-11-22 16:30:27 +01:00 |
|
Son
|
bd8b9526f6
|
set Fido.user_id
|
2021-11-22 15:57:51 +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
|
a17e81a8f1
|
user can't import csv if current_user.disable_import
|
2021-11-18 10:51:57 +01:00 |
|
Son
|
38ecb227b0
|
reduce subdomain/directory quota when user create/delete subdomain/directory
|
2021-11-18 10:33:15 +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
|
417f7b92b0
|
make sure a deleted directory can't be recreated
|
2021-11-17 17:02:31 +01:00 |
|
Son
|
67377a0f22
|
do not show subdomains on the domain page
|
2021-11-17 11:52:33 +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
|
324cc8734b
|
handle the case user mistakenly use a lifetime coupon on the coupon page
|
2021-11-12 17:53:56 +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
|
89648a83dd
|
fix case /mailbox/confirm_change is called in unauthorized user
|
2021-11-08 11:22:54 +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
|
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
|
516898af59
|
move all template files to templates/
|
2021-11-04 15:05:22 +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
|
caa8656748
|
create /dashboard/block_contact/:contact_id
|
2021-11-02 15:30:18 +01:00 |
|
Son
|
507d10cd89
|
user can block/unblock contact
|
2021-10-28 10:19:34 +02:00 |
|
Son
|
a0165d6381
|
remove not working on gmail part
|
2021-10-25 15:39:49 +02:00 |
|
Son
|
83c5eded80
|
Referral name is required
|
2021-10-25 15:01:32 +02:00 |
|
Son
|
b0822519eb
|
only show the navigation arrow when #contacts > PAGE_LIMIT
|
2021-10-23 16:08:43 +02:00 |
|
Son
|
9fb6e45077
|
fix the help text too close to the input
|
2021-10-19 17:38:29 +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
|
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
|
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
|
cef6579946
|
add User.lifetime_coupon_id column
|
2021-10-04 17:14:34 +02:00 |
|
Son Nguyen Kim
|
9528bdcb2e
|
user can enable the ignore_loop_email
|
2021-09-27 15:58:04 +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
|
469c2011aa
|
use ~all instead of -all for SPF
|
2021-09-23 10:30:59 +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
|
3c81f982ca
|
display N/A if api key name is null
|
2021-09-21 11:26:05 +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
|
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
|
56c72d5fba
|
create auto create page, remove custom domain auto_create_regex part
|
2021-09-20 18:28:43 +02:00 |
|
Son Nguyen Kim
|
cfb7b7cefc
|
fix setting
|
2021-09-20 13:43:54 +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
|
838f1dc86d
|
add beta mention to auto create alias regex
|
2021-09-18 19:16:43 +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
|
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
|
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
|
3ad4b6b76f
|
use flanker instead of parseaddr_unicode
|
2021-09-10 17:06:38 +02:00 |
|
Son Nguyen Kim
|
5ac78f2694
|
reformat
|
2021-09-08 11:29:55 +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
|
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
|
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 |
|
Son Nguyen Kim
|
ef6388887f
|
better filter app
|
2021-08-21 17:56:23 +02:00 |
|
Son Nguyen Kim
|
d6e48ea2e4
|
Merge pull request #593 from boarwell/keyboard-focusable
Re: Make the "Create" button focusable with keyboard
|
2021-08-21 16:25:20 +02:00 |
|
Son Nguyen Kim
|
40915ad741
|
make alias description font smaller
|
2021-08-21 16:18:01 +02:00 |
|
Son Nguyen Kim
|
4b184998bc
|
make alias note always visible. Rename it to description
|
2021-08-21 16:11:17 +02:00 |
|
Son Nguyen Kim
|
b5c827c2ea
|
handle case user already has an active subscription via another channel (Paddle, Apple, etc) on coupon page
|
2021-08-21 16:04:32 +02:00 |
|
Son Nguyen Kim
|
513f5cd4fb
|
rename
|
2021-08-21 15:55:22 +02:00 |
|