Son NK
69e87137ec
Fix PADDLE params
2020-01-28 00:02:59 +07:00
Son NK
a8bceac8a7
fix FLASK_SECRET
2020-01-28 00:02:47 +07:00
Son NK
2644996eee
Make some params optional or with acceptable default values:
...
MAX_NB_EMAIL_FREE_PLAN
FLASK_SECRET
BUCKET
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
PADDLE_*
OPENID_PRIVATE_KEY_PATH
OPENID_PUBLIC_KEY_PATH
WORDS_FILE_PATH
GITHUB_*, GOOGLE_*, FACEBOOK_*
2020-01-27 23:27:41 +07:00
Son NK
813d801ba6
use 256 varchar for email fields
2020-01-26 23:22:16 +07:00
Son NK
bc6daab595
display domains that can be used on directory
2020-01-26 22:29:35 +07:00
Son NK
99ffd6149d
use can_be_used_as_personal_email when user registers or change emails
2020-01-26 19:51:43 +07:00
Son NK
fc7a832969
add can_be_used_as_personal_email()
2020-01-25 22:40:30 +07:00
Son NK
8c14c25cec
order alias by most recent ones
2020-01-23 20:19:58 +01:00
Son NK
d6020d5fa0
pass highlight_gen_email_id via url query instead of session. Remove HIGHLIGHT_GEN_EMAIL_ID
2020-01-23 20:15:47 +01:00
Son NK
8c91d64c77
fix not setting custom_domain id when creating alias
2020-01-23 11:45:52 +01:00
Son NK
00dac9a95a
notify user if reply from alias is NOT sent from their personal email
2020-01-22 23:18:27 +01:00
Son NK
539bf56e97
improve custom alias check
2020-01-22 23:03:52 +01:00
Son NK
3f2f2cabf4
always use dropdown list for alias suffix
2020-01-22 22:51:52 +01:00
Son NK
b5357d0f4e
Handle the case where a previous deleted alias is re-created via catch-all or directory feature
2020-01-22 22:48:30 +01:00
Son NK
926cc2935c
take into account DISABLE_ALIAS_SUFFIX in /api/alias/options
2020-01-22 14:21:01 +01:00
Son NK
0c2b2ce60e
fix styling
2020-01-22 14:08:00 +01:00
Son NK
da8b110839
small fix
2020-01-22 14:05:42 +01:00
Son NK
8e7f5e56d6
add "your domain" to user's owned domain
2020-01-22 14:04:38 +01:00
Son NK
bdf75951f1
support ALIAS_DOMAINS
...
- use verify_prefix_suffix() in /api/alias/custom/new
-
2020-01-22 10:24:17 +01:00
Son NK
d7ed0d77bd
add email_belongs_to_alias_domains() to verify if an email belongs to one of the alias domains
2020-01-22 10:24:17 +01:00
Son NK
a6507a39e4
Add optional OTHER_ALIAS_DOMAINS setting. Create ALIAS_DOMAINS setting that is the list of domain user can use when creating alias.
2020-01-22 10:24:17 +01:00
Son NK
f7f8c6769d
Improve custom alias help text
2020-01-22 10:24:17 +01:00
Son NK
c969e6919a
Use the same design as on extension for custom alias: domains are presented in a dropdown list
2020-01-22 10:24:17 +01:00
Son NK
ef788f7458
add /api/auth/mfa
2020-01-20 15:00:56 +01:00
Son NK
d1734c3cf9
Create /api/auth/login
2020-01-20 14:51:28 +01:00
Son Nguyen Kim
204ccd34c9
Merge pull request #37 from simple-login/disable-suffix-option
...
Disable suffix option
2020-01-20 13:35:22 +01:00
Son NK
cfd3f5db8f
Add more help message to api-key and custom-domain
2020-01-20 11:16:04 +01:00
Son Nguyen Kim
448d9d1a01
Merge pull request #35 from simple-login/directory-separator
...
Directory separator
2020-01-20 10:23:00 +01:00
Son Nguyen Kim
1fca5f5779
Merge pull request #33 from simple-login/cloudflar
...
Use Cloudflare DNS nameserver
2020-01-20 09:24:27 +01:00
Son NK
f56ba95b4d
disable alias suffix by setting DISABLE_ALIAS_SUFFIX
2020-01-20 09:23:17 +01:00
Son NK
6f925170c5
Give more info on the directory
2020-01-19 22:34:31 +01:00
Son NK
6f414ba405
Support + and # as directory separator
2020-01-19 22:06:36 +01:00
Son Nguyen Kim
70e16bb415
Merge pull request #31 from simple-login/canceled-premium
...
Canceled premium
2020-01-19 14:57:45 +01:00
Son NK
d2501e5961
make sure to "strip" custom domain before adding to DB
2020-01-19 14:09:13 +01:00
Son NK
b865be760c
Use CloudFlare DNS nameserver
2020-01-19 10:22:20 +01:00
Son NK
a03db0d129
create email templates
2020-01-16 22:27:45 +01:00
Son NK
13283b6327
Support cancelled premium users in custom domain & directory
...
- Freemium user can see custom domain and directory but could not add new.
- user who has added custom domain or directory before could delete them
2020-01-16 22:21:19 +01:00
Son NK
3f0aae6f02
send email notifying user that alias creation works only in premium plan
2020-01-16 22:06:36 +01:00
Son NK
e2974cdd60
make card responsive in alias log
2020-01-12 22:23:18 +01:00
Son NK
110b296f73
use alias_id instead of alias in contact manager page
2020-01-12 22:23:05 +01:00
Son NK
d5dd46f4b1
Fix email title as name now can be empty
2020-01-11 22:33:25 +01:00
Son NK
356b95ef80
fix formatting
2020-01-11 22:28:06 +01:00
Son NK
8c9512e61e
do not ask for user name when register
2020-01-11 22:26:59 +01:00
Son NK
f860471d50
fix slash in url: use alias_id instead of alias
2020-01-11 21:48:25 +01:00
Son NK
47bf6646fc
Load our paddle.js if their CDN doesn't work
2020-01-10 18:36:31 +01:00
Son Nguyen Kim
cdd69b381e
Merge pull request #27 from simple-login/staging
...
Fix postfix-python bouncing problem
2020-01-10 13:27:32 +01:00
doanguyen
ef2e390df3
Merge branch 'staging' of https://github.com/simple-login/app into staging
2020-01-10 11:28:08 +01:00
doanguyen
f8bd3800c3
better looking random button
2020-01-10 11:26:18 +01:00
Son NK
6778537083
only allow lowercase for alias
2020-01-09 20:43:03 +01:00
Son NK
a9e7b53161
make sure directory is lowercase only
2020-01-09 20:38:02 +01:00
Son NK
851ddce5a5
Merge remote-tracking branch 'origin/master' into directory
...
# Conflicts:
# email_handler.py
2020-01-09 10:37:33 +01:00
Son Nguyen Kim
94ecfd7bbd
Merge pull request #23 from simple-login/spf-check
...
Spf check
2020-01-09 10:32:50 +01:00
Son NK
ecce1eff99
remove support for directory+anything@EMAIL_DOMAIN
2020-01-08 22:09:46 +01:00
Son NK
cdae3c5309
add Directory page to add/delete directory
2020-01-08 21:38:01 +01:00
Son NK
5a57e3bc44
Add Directory model and add directory_id column to GenEmail
2020-01-08 21:23:41 +01:00
doanguyen
f0c66d279b
Merge branch 'master' into staging
2020-01-08 21:10:57 +01:00
doanguyen
fd31b77b06
Polish the interface
2020-01-08 19:49:26 +01:00
Son Nguyen Kim
634861e279
Merge pull request #22 from simple-login/alias-dashboard
...
Alias dashboard
2020-01-08 16:29:22 +01:00
Son NK
434f82a244
fix formatting
2020-01-08 12:58:34 +01:00
Son NK
0300d38f56
make sure delete_header() delete all headers occurences
2020-01-08 12:42:25 +01:00
Son NK
d9f2ec214f
add @ warning when setup DNS
2020-01-07 22:13:12 +01:00
Son NK
aa10cdb3ee
If domain is not verified, clicking on 🚫 brings user to DNS page
2020-01-07 21:53:00 +01:00
Son NK
27b9312057
fix formatting
2020-01-07 19:50:36 +01:00
Son NK
ba46d8f7e0
add delete_header()
2020-01-07 19:49:26 +01:00
Son NK
44527c6c4e
fix annotation on email_utils
2020-01-07 19:47:26 +01:00
Son NK
3bca9fde6b
refactor: move add_or_replace_header to email_utils
2020-01-07 19:46:57 +01:00
doanguyen
d804a28c07
fix the format, again
2020-01-07 00:02:12 +01:00
doanguyen
6a99fd30c4
fix some minor bugs
2020-01-06 23:58:24 +01:00
Son NK
ca37ce5e5a
add id to notification section in setting
2020-01-06 19:41:05 +01:00
Son NK
d527fcf648
Move "forgot password" button to a different position to avoid Keepass issue
2020-01-06 16:11:17 +01:00
doanguyen
8f1c56baf9
forget to push this local configuration
2020-01-05 23:03:56 +01:00
doanguyen
5ffdc45c87
fix DEBUG flag is not default in os environment
2020-01-05 22:53:00 +01:00
doanguyen
5af974fc5d
alias log dashboard
2020-01-05 22:49:48 +01:00
Son NK
f52f4c821b
Add /api/user_info
2020-01-05 22:48:38 +01:00
Son NK
377e6c657d
add /api/alias/random/new
2020-01-05 21:15:16 +01:00
Son NK
c6db8db4a1
Improve error message
2020-01-05 21:14:40 +01:00
Son NK
d322d543af
add more check to new custom alias
2020-01-05 20:48:32 +01:00
Son NK
96da841062
add /api/v2/alias/options that flattens the response
2020-01-05 20:47:09 +01:00
doanguyen
4e84815375
let debug configurable
2020-01-05 19:45:29 +01:00
Son NK
41329782a2
refactor dns_utils and add test_dns_utils
2020-01-05 19:02:05 +01:00
Son NK
47f691cacf
fix formatting
2020-01-04 11:00:59 +01:00
Son NK
40c2040ddc
use google nameserver
2020-01-04 10:58:19 +01:00
Son NK
d6aa6e7b94
Make sure to user lowercase for user email
2020-01-04 10:24:01 +01:00
Son NK
837ab8258e
redirect to login page instead
2020-01-03 23:50:34 +01:00
Son NK
4208ba379f
Fix user could go to MFA page directly
2020-01-03 23:42:35 +01:00
Son NK
5053d343d1
Split lifetime licence to a separate page
2020-01-03 22:40:44 +01:00
Son NK
abb2584a38
Prettify pricing page
2020-01-03 11:51:44 +01:00
Son NK
df0e706bdd
Fix scrolling in dns page
2020-01-03 11:51:18 +01:00
Son NK
c9d58692bf
Prettify some pages
2020-01-02 22:39:53 +01:00
Son NK
f986371ff5
make sure to scroll to the same position in DNS page
2020-01-02 22:39:08 +01:00
Son NK
ab3fe8a626
Flash errors when MX, SPF or DKIM fail
2020-01-02 22:22:09 +01:00
Son NK
3edd5f0b82
Show something when there's no DNS record
2020-01-02 22:21:54 +01:00
Son NK
fc985d64d9
Use catch-all for all dns query
2020-01-02 22:15:08 +01:00
Son NK
9704219576
Fix product tour wording
2020-01-02 22:12:03 +01:00
Son NK
be1b689463
Fix dns query could throw different kinds of exceptions
2020-01-02 22:08:37 +01:00
Son NK
2a05e320e1
remove beta on send email button
2020-01-02 22:05:34 +01:00
Son NK
553777bc05
Move intro button to footer
2020-01-02 12:14:49 +01:00
Son NK
21cdb973f0
Improve intro
2020-01-02 12:14:39 +01:00
Son NK
4c4c4a81b8
autofocus mfa token input
2020-01-01 23:52:25 +01:00
Son NK
ee3c75244e
Fix custom domain has been added before
2020-01-01 23:51:40 +01:00
Son Nguyen Kim
b8ca2d0158
Merge pull request #16 from simple-login/lifetime
...
Lifetime coupon
2020-01-01 23:24:15 +01:00
Son NK
e609404e6f
Add FLASK_PROFILER_PATH, FLASK_PROFILER_PASSWORD setting
2020-01-01 22:54:33 +01:00
Son NK
3c05230bd3
User can use lifetime coupon
2020-01-01 20:04:39 +01:00
Son NK
dc53d77a71
User is premium if they have lifetime deal
2020-01-01 20:02:48 +01:00
Son NK
98d2882719
Add LifetimeCoupon model and User.lifetime column
2020-01-01 20:02:30 +01:00
Son NK
026fe4addd
get_subscription should only return *active* subscription.
2020-01-01 19:46:35 +01:00
Son Nguyen Kim
eceee66bfe
Merge pull request #14 from simple-login/alias-log
...
Alias log
2020-01-01 19:02:23 +01:00
doanguyen
e5b6cb8461
forget to remove the import
2019-12-31 20:22:46 +01:00
doanguyen
1162495b36
remove dataclasses completely, remove the slots magic
2019-12-31 20:20:17 +01:00
doanguyen
a20f790fda
add py36
2019-12-31 20:08:59 +01:00
Son NK
652e623111
make sure that user cannot use any suffix
2019-12-31 17:11:42 +01:00
doanguyen
d42eea39cc
consider to get rid of dataclass dependent
2019-12-31 11:22:18 +01:00
doanguyen
37ca4eaf20
working on paginate alias log page
2019-12-31 11:11:06 +01:00
Son Nguyen Kim
d63faa8ab3
Merge pull request #13 from simple-login/catch-all
...
Catch all
2019-12-30 22:18:54 +01:00
Son Nguyen Kim
43a96201ed
Merge pull request #12 from simple-login/email-notification
...
Email notification
2019-12-30 21:13:22 +01:00
Son NK
02880fbc47
fix redirection
2019-12-30 21:11:31 +01:00
doanguyen
ccaf304448
Remove unused file
2019-12-30 20:24:46 +01:00
Son NK
757fff71af
Fix MX and SPF check
...
- take into account priority in MX check
- use EMAIL_DOMAIN in SPF instead of MX server
2019-12-30 19:37:50 +01:00
Son NK
ef8f87798b
Fix MX DNS record
2019-12-30 18:58:44 +01:00
Son NK
c3620a1e45
Fix formatting
2019-12-30 18:53:49 +01:00
Son NK
8d85ab35f1
Move delete domain to domain info page
2019-12-30 18:51:55 +01:00
Son NK
174ee174f9
add gen_email.automatic_creation column
2019-12-30 18:48:07 +01:00
Son NK
96bb37f0f6
User can enable/disable catch-all on custom domain
2019-12-30 18:20:49 +01:00
Son NK
b9908a16b2
add get_email_local_part(), get_email_domain_part() to email_utils
2019-12-30 18:18:10 +01:00
Son NK
cae43fa0dd
add custom_domain.catch_all column
2019-12-30 18:17:45 +01:00
Son NK
4b6717d8dd
Split domain detail into Info and DNS page
2019-12-30 17:52:08 +01:00
Son NK
632484ee5c
Update wording: remove "successfully"
2019-12-30 17:43:38 +01:00
Son NK
ca6c32f951
Fix formatting
2019-12-30 15:56:47 +01:00
Tung Nguyen
1289b08636
Merge remote-tracking branch 'nguyenkims/master'
2019-12-30 12:33:32 +00:00
Son NK
caa95df556
Prettify pricing page
2019-12-30 11:08:11 +01:00
Son NK
25d8f8926b
Prettify UI
2019-12-30 10:36:13 +01:00
doanguyen
3e766f8126
blacked-again
2019-12-30 00:47:55 +01:00
doanguyen
4b3453dce8
Lol, str(True) != 1
2019-12-30 00:39:47 +01:00
doanguyen
c194ee3337
blacked
2019-12-30 00:37:07 +01:00
doanguyen
9466fd556c
update migration file
2019-12-30 00:35:06 +01:00
doanguyen
84eb10232c
notification setting
2019-12-30 00:33:59 +01:00
Son NK
b51ed259b4
fix cancel MFA: the secret needs to be reset too
2019-12-29 15:32:27 +01:00
Son NK
76eec998ea
User who has enabled MFA can cancel MFA
2019-12-29 15:10:40 +01:00
Son NK
89664580b3
Move custom-domain to menu
2019-12-29 11:03:47 +01:00
Son NK
b391fa4c91
Move settings and api-key page to menu
2019-12-29 10:56:27 +01:00
doanguyen
6f256bcd3f
minor comments on domain-detail branch
2019-12-29 10:48:46 +01:00
doanguyen
45c49f1e1a
minor comments on domain-detail branch
2019-12-29 10:48:46 +01:00
Son NK
8dcb8dd249
move domain validation (mx, spf, mx) to domain detail page
2019-12-29 10:46:00 +01:00
Son NK
34faafe25e
add custom_domain.spf_verified column
2019-12-29 10:46:00 +01:00
Son NK
a956e2de10
add dns_utils.get_txt_record
2019-12-29 10:46:00 +01:00
Son NK
90bd84e9cc
add DKIM_PUBLIC_KEY_PATH setting
2019-12-29 10:46:00 +01:00
Son NK
d0218c86de
display 🚫 for unverified domain
2019-12-29 10:46:00 +01:00
Son NK
ab3ce7bd4e
fix formatting
2019-12-29 10:33:45 +01:00
doanguyen
3ca5b9628a
update server_default
parameter
2019-12-28 14:20:10 +01:00
doanguyen
f3719aa0f0
black formatted
2019-12-28 14:20:10 +01:00
doanguyen
3811bb6880
reformat
2019-12-28 14:20:10 +01:00
doanguyen
4a3b958131
reformat modified files, resolve PR https://github.com/simple-login/app/pull/5
2019-12-28 14:20:10 +01:00
doanguyen
10019ba4eb
reverse previous commit
2019-12-28 14:20:10 +01:00
doanguyen
d026c596ac
remove lambda function from config.py
2019-12-28 14:20:10 +01:00
doanguyen
e2e9cc6b5d
Implement alias generator schemes
2019-12-28 14:20:10 +01:00
doanguyen
1393b80970
considering lazy loading for non-critical loc
2019-12-28 14:20:10 +01:00
Son NK
de0368c20f
remove redundant code
2019-12-27 16:53:07 +00:00
Son NK
5b01071bec
Redirect user to MFA page if they enable MFA
2019-12-27 16:53:07 +00:00
Son NK
c52f2d1603
Create auth/mfa page used by user who has enabled MFA
2019-12-27 16:53:07 +00:00
Son NK
fa66a71880
Display MFA setup to user who doesn't have MFA enabled
2019-12-27 16:53:07 +00:00
Son NK
e5b10b28a6
Create MFA Setup page if user enable MFA
2019-12-27 16:53:07 +00:00
Son NK
80facfe122
add User.otp_secret, enable_otp column
2019-12-27 16:53:07 +00:00
Son NK
1eefb9228f
only parse CLOUDWATCH_LOG_GROUP, CLOUDWATCH_LOG_STREAM if CLOUDWATCH is enabled
2019-12-27 10:39:39 +01:00
Son NK
65d0848e2f
show alias in confirmation message
2019-12-26 17:37:51 +00:00
Tung Nguyen
4f751e5cd2
fix typos and improve messages showing at the end users
2019-12-26 13:00:17 +00:00
Son NK
e09dfaa481
Fix pricing page message
2019-12-25 21:35:35 +00:00
Son NK
ed78e31b8b
add custom_domain.dkim_verified column
2019-12-25 17:23:04 +00:00
Son NK
f80adae625
fix login error message
2019-12-23 19:00:31 +00:00
Son NK
bcbe239f60
User can generate quickly a random alias
2019-12-23 15:34:02 +00:00
Son NK
a8d112646e
Add hint for alias prefix on custom alias page
2019-12-23 15:09:41 +00:00
Son NK
dbbfcac2d6
Still show a readable email name when there's no website_from
2019-12-23 15:09:41 +00:00
Son NK
3320a488f3
refactor s3.py
2019-12-23 15:09:41 +00:00
Son NK
a3f547fd22
rename create_custom_alias -> create_new
2019-12-22 16:34:10 +00:00
Son NK
91e38a744b
remove GenEmail.custom column
2019-12-22 16:32:55 +00:00
Son NK
8f04f8ae0f
rename can_create_new_custom_alias -> can_create_new_alias
2019-12-22 16:27:55 +00:00
Son NK
873133838d
delete unused method
2019-12-22 16:21:02 +00:00
Son NK
0955f13593
User can export their data
2019-12-22 16:20:56 +00:00
Son NK
8756241774
Fix wording
2019-12-22 16:03:58 +00:00
Son NK
ec4d034593
Add Delete Account in setting
2019-12-22 16:03:40 +00:00
Son NK
17bb01f317
Fix wording
2019-12-22 15:59:41 +00:00
Son NK
41fe528441
use flash to display error in login
2019-12-22 15:59:00 +00:00
Son NK
ea1492904a
only print out plaintext when NOT_SEND_EMAIL
2019-12-22 15:58:07 +00:00
Son NK
441fc773ba
better UI for new alias page
2019-12-22 15:41:37 +00:00
Son NK
6b3fe06efc
better UI for custom-alias page
2019-12-22 12:57:19 +00:00
Son NK
8d6988da16
add warning message for social login options.
2019-12-22 08:26:20 +00:00
Son NK
4147e19530
fix facebook error when user choose to not share email
2019-12-19 22:38:20 +02:00
Son NK
4799721667
remove DKIM-Signature if any
2019-12-17 19:06:17 +02:00
Son NK
a61b900675
Sign DKIM at app level
...
- add DKIM_PRIVATE_KEY_PATH param
- create email_utils.add_dkim_signature
- add DKIM signature for transactional emails
- add DKIM signature for forward & reply emails. In reply phase, only non-custom-domain emails have DKIM added.
2019-12-17 18:50:26 +02:00
Son NK
f8293bc618
make ADMIN_EMAIL optional
2019-12-16 19:36:59 +02:00
Son NK
66091b4f9e
replace ENABLE_SENTRY by SENTRY_DSN
2019-12-16 19:30:17 +02:00
Son NK
c3b716f644
remove users.can_use_custom_domain flag
2019-12-15 21:52:24 +02:00
Son NK
1b88d2264e
add beta badge for "send email" feature
2019-12-15 18:55:18 +02:00
Son NK
a8d00c3329
add tooltip for reverse-alias
2019-12-15 18:55:18 +02:00
Son NK
3e9233f346
replace the "test alias" by the alias manager page
2019-12-15 18:55:18 +02:00
Son NK
231fc6fd88
create alias contact manager page
2019-12-15 18:55:18 +02:00
Son NK
62e0ae27a0
move get_email_name, get_email_part to email_utils
2019-12-15 18:55:18 +02:00
Son NK
88cef1b90d
add new param IGNORED_EMAILS and use it in cronjob
2019-12-15 18:55:18 +02:00
Son NK
9c9ad87c7d
remove /api/alias/new
2019-12-15 18:55:18 +02:00
Son NK
565d406227
remove new_random_alias related test
2019-12-15 18:55:18 +02:00
Son NK
e5079e48da
remove can_create_new_random_alias()
2019-12-15 18:55:18 +02:00
Son NK
ec62fad3a0
remove notify_admin, replace by general stats
2019-12-15 18:55:18 +02:00
Son NK
eba9e889bf
add paddle_utils.verify_incoming_request
2019-12-15 18:55:18 +02:00
Son NK
d58f9d4c89
add new param PADDLE_PUBLIC_KEY_PATH
2019-12-15 18:55:18 +02:00
Son NK
e4ba4297e1
reformat using black
2019-12-15 18:55:18 +02:00
Son NK
dc66cf76e2
allow overriding postfix server
2019-12-15 18:55:18 +02:00
Son NK
3d95048e00
fix wording
2019-12-15 18:55:18 +02:00
Son NK
2412658a3e
better UI for custom alias page
2019-12-15 18:55:18 +02:00
Son NK
4e6922adad
disable late_payment in cron job
2019-12-15 18:55:18 +02:00
Son NK
7f908a9da8
display website_from on alias log
2019-12-15 18:55:18 +02:00
Son NK
d160971cc7
add ForwardEmail.website_from field
2019-12-15 18:55:17 +02:00
Son NK
631900ab4f
use random_word instead of random_string for alias suffix
2019-12-15 18:55:17 +02:00
Son NK
c37ba0e1de
website_email: use From header instead of envelope from
2019-12-15 18:55:17 +02:00
Son NK
9dd4a4afb7
take into account NOT_SEND_EMAIL param
2019-12-15 18:55:17 +02:00
Son NK
74fe984ae1
make sure alias pattern check is the same everywhere: Only letter, number, dash (-), underscore (_) can be used in alias prefix
2019-12-15 18:55:17 +02:00
Son NK
260b235328
remove random alias from pricing
2019-12-15 18:55:17 +02:00
Son NK
8e9aef1199
add website_name to suggested_emails
2019-12-15 18:55:17 +02:00
Son NK
779cb9c377
create a custom alias with "my-first-alias" for first time user
2019-12-15 18:55:17 +02:00
Son NK
139fc68bda
create some random alias creation
2019-12-15 18:55:17 +02:00
Son NK
8b9a158ac2
create GenEmail.create_custom_alias that should replace all random alias
2019-12-15 18:55:17 +02:00
Son NK
b09f74c445
use the same log format for colored log
2019-12-15 18:55:17 +02:00
Son NK
4c8c48bb23
better UI for custom alias page
2019-12-15 18:55:17 +02:00
Son NK
6d21343748
remove create random email button
2019-12-15 18:55:17 +02:00
Son NK
7f6267cc4a
call LOG.error on obsolete endpoints: /alias/new and /alias/random/new
2019-12-15 18:55:17 +02:00
Son NK
f37a155c1f
still return custom alias option when user runs out of custom alias quota
2019-12-15 18:55:17 +02:00
Son NK
df3838480d
add COLOR_LOG config
2019-12-15 18:55:17 +02:00
Son NK
4caafc7e7b
use coloredlogs
2019-12-15 18:55:17 +02:00
Son NK
2e23a1bf19
add RESET_DB back
2019-12-15 18:55:17 +02:00
Son NK
d0f95e81b2
fix MX record can be unavailable
2019-12-15 18:55:17 +02:00
Son NK
5854ab8e10
support GET in /oauth/token
2019-12-15 18:55:17 +02:00
Son NK
d9c211d8da
fix api create new custom alias
2019-12-15 18:55:17 +02:00
Son NK
ac9f896a7d
improve pricing page
2019-12-15 18:55:17 +02:00
Son NK
3e4e0e931f
add separator to highlight alias
2019-12-15 18:55:17 +02:00
Son NK
6723487a23
add SPF check
2019-12-15 18:55:17 +02:00
Son NK
48ff20906e
better UI for alias list page
2019-12-15 18:55:17 +02:00
Son NK
ca05cd359a
remove >3 characters on alias prefix
2019-12-15 18:55:17 +02:00
Son NK
6e387444f5
do not use RESET_DB to avoid potential error: uncomment fake_date locally if necessary
2019-12-15 18:55:17 +02:00
Son NK
a5615b22e7
make alias activity responsive
2019-12-15 18:55:17 +02:00
Son NK
c3056dc94c
use website domain name as alias prefix suggestion (instead of full hostname)
2019-12-15 18:55:17 +02:00
Son NK
28c83107e9
only show intro when screen is big enough to show "developer" tab
2019-12-15 18:55:17 +02:00
Son NK
acea37d520
show intro on the first alias
2019-12-15 18:55:16 +02:00
Son NK
39311ab1ff
Make dashboard responsive
2019-12-15 18:55:16 +02:00
Son NK
ccf93b1235
highlight disable/enable alias
2019-12-15 18:55:16 +02:00
Son NK
d4f7b6296d
allow alias_prefix shorter 3 characters
2019-12-15 18:55:16 +02:00
Son NK
5b28d70fe0
fix custom alias html
2019-12-15 18:55:16 +02:00
Son NK
a9e781da84
use the latest used alias as recommendation
2019-12-15 18:55:16 +02:00
Son NK
d58ab8c808
fix create random alias: new alias not saved
2019-12-15 18:55:16 +02:00
Son NK
8250ab2f22
add /alias/custom/new and /alias/random/new
2019-12-15 18:55:16 +02:00
Son NK
ab4f5bf329
add /api/alias/options
2019-12-15 18:55:16 +02:00
Son NK
c58d9052e7
rename can_create_custom_email -> can_create_new_custom_alias, can_create_new_email -> can_create_new_random_alias
2019-12-15 18:55:16 +02:00
Son NK
6764a4b582
use "default" hostname if hostname is too short
2019-12-15 18:55:16 +02:00
Son NK
c012d3686a
only premium user can add custom domain
2019-12-15 18:55:16 +02:00
Son NK
3f189163dd
notify admin when user creates new custom domain or custom alias associated with custom domain
2019-12-15 18:55:16 +02:00
Son NK
0234af03d3
handle custom domain in custom alias
2019-12-15 18:55:16 +02:00
Son NK
3402d64249
display when a custom domain is created and number of aliases
2019-12-15 18:55:16 +02:00
Son NK
24cb2688ca
add gen_email.custom_domain_id foreign key
2019-12-15 18:55:16 +02:00
Son NK
a827b27215
add custom_domain view
2019-12-15 18:55:16 +02:00
Son NK
5d9420a763
add EMAIL_SERVERS_WITH_PRIORITY and EMAIL_SERVERS config
2019-12-15 18:55:16 +02:00
Son NK
79a7985221
handle the case where no hostname is provided in /api/alias/new
2019-12-15 18:55:16 +02:00
Son NK
b59ffb94b2
Remove Stripe usage
2019-12-15 18:55:16 +02:00
Son NK
40254c54a3
remove stripe columns in User model
2019-12-15 18:55:16 +02:00
Son NK
8471f3a19f
add external-link icon when appropriate
2019-12-15 18:55:16 +02:00
Son NK
2b00ceaa6b
put extension download link to api-key page
2019-12-15 18:55:16 +02:00
Son NK
b514068340
add CustomDomain model
2019-12-15 18:55:16 +02:00
Son NK
975dc7ff21
fix query lost when post
2019-12-15 18:55:16 +02:00
Son NK
6ea43275ed
remove user.can_use_api_key
2019-12-15 18:55:16 +02:00
Son NK
fd7f819803
allow cross_origin for /api/alias/new
2019-12-15 18:55:16 +02:00
Son NK
786d640511
fix migration
2019-12-15 18:55:16 +02:00
Son NK
7bedd40966
add user.can_use_custom_domain, user.can_use_api_key
2019-12-15 18:55:16 +02:00
Son NK
efd0e97ebd
prettify api key page
2019-12-15 18:55:16 +02:00
Son NK
4f874eec43
Create API Key page
2019-12-15 18:55:16 +02:00
Son NK
6c4a173de5
create /api/alias/new using api-key as authentication
2019-12-15 18:55:16 +02:00
Son NK
565508689f
create AliasUsedOn and ApiKey model
2019-12-15 18:55:16 +02:00
Son NK
a5e1a36718
lower case query before search
2019-12-15 18:55:16 +02:00
Son NK
b9bce29534
fix search input not large enough on mobile: use col-md-3 instead of col-3
2019-12-15 18:55:16 +02:00
Son NK
efd4f40fb7
add autofocus to custom alias
2019-12-15 18:55:16 +02:00
Son NK
f611d165c3
autofocus search field
2019-12-15 18:55:16 +02:00
Son NK
28c8fa0f4d
add alias search
2019-12-15 18:55:16 +02:00
Son NK
e18bbd1cc4
improve wording
2019-12-15 18:55:16 +02:00
Son NK
108b41842e
remove user.trial_expiration
2019-12-15 18:55:16 +02:00
Son NK
6e71541985
remove trial concept
2019-12-15 18:55:16 +02:00
Son NK
8dca65678e
improve wording
2019-12-15 18:55:15 +02:00
Son NK
5a9d3b0245
alias activity: fix arrow hidden on mobile
2019-12-15 18:55:15 +02:00
Son NK
2ec89afac2
add ADMIN_EMAIL and send notif to this email
2019-12-15 18:55:15 +02:00
Son NK
0717c91a18
improve onboarding
2019-12-15 18:55:15 +02:00
Son NK
019aae24f3
Activation email: use base template, change wording.
2019-12-15 18:55:15 +02:00
Son NK
837e1ffcf6
add List-Unsubscribe-Post header. Block alias directly if POST, otherwise ask user confirmation.
2019-12-15 18:55:15 +02:00
Son NK
45cef7a4ef
create unsubscribe view to block quickly an alias
2019-12-15 18:55:15 +02:00
Son NK
34cf72eaee
create POSTFIX server
2019-12-15 18:55:15 +02:00
Son NK
38d9654624
fix cancel email change
2019-12-15 18:55:15 +02:00
Son NK
8889dc119f
only display profile updated message when something changes
2019-12-15 18:55:15 +02:00
Son NK
d061ad7d56
make sure user cannot register with SL email
2019-12-15 18:55:15 +02:00
Son NK
0c85cae6ad
handle email change in setting
2019-12-15 18:55:15 +02:00
Son NK
2dd25cc72d
create change_email view
2019-12-15 18:55:15 +02:00
Son NK
be6266fb0e
create change-email email
2019-12-15 18:55:15 +02:00
Son NK
5d52a784f2
add EmailChange model
2019-12-15 18:55:15 +02:00
Son NK
e46592019b
remove unique constraint on user on deleted_alias table
2019-12-15 18:55:15 +02:00
Son NK
539d87d0a3
make to not reuse alias
2019-12-15 18:55:15 +02:00
Son NK
5c119a933d
add DeletedAlias model
2019-12-15 18:55:15 +02:00
Son NK
58504e3b8d
display new alias on top
2019-12-15 18:55:15 +02:00
Son NK
711ae83751
show message when logged in user tries goes to register
2019-12-15 18:55:15 +02:00
Son NK
a22375e76a
improve wording for login & register
2019-12-15 18:55:14 +02:00
Son NK
c5b65c108b
fix name can be absent in github data
...
https://sentry.io/organizations/son/issues/1201398007/?project=1478143&query=is%3Aunresolved
2019-12-15 18:55:14 +02:00
Son NK
673b9e72ee
show send test and delete buttons
2019-12-15 18:55:14 +02:00
Son NK
64180c4077
do not show email
2019-12-15 18:55:14 +02:00
Son NK
276e37a9ab
send welcome email when user creates new account
2019-12-15 18:55:14 +02:00
Son NK
67f7b95c36
add Message-ID and Date header to email
2019-12-15 18:55:14 +02:00
Son NK
3ebb75ca07
Show copy and activity button
2019-12-15 18:55:14 +02:00
Son NK
d929cea771
improve dashboard page
2019-12-15 18:55:14 +02:00
Son NK
5b8bc68da1
add alias log page
2019-12-15 18:55:14 +02:00
Son NK
3a920585ce
add ForwardEmailLog model
2019-12-15 18:55:14 +02:00
Son NK
ec3f2116ff
do not show copy button on disabled alias
2019-12-15 18:55:14 +02:00
Son NK
0b9f28970f
fix send_test_email_alias
2019-12-15 18:55:14 +02:00
Son NK
6879490557
test email template
2019-12-15 18:55:14 +02:00
Son NK
6f93f419c2
send by postfix only
2019-12-15 18:55:14 +02:00
Son NK
727830be6b
improve email wording for test email
2019-12-15 18:55:14 +02:00
Son NK
0ed2ef60c5
remove html marker for test email
2019-12-15 18:55:14 +02:00
Son NK
0a60d01596
use postfix for testing trigger email
2019-12-15 18:55:14 +02:00
Son NK
f366e1c383
add send_by_postfix, to distinct with send_by_sendgrid
2019-12-15 18:55:14 +02:00
Son NK
47d5b75dc4
remove partner table
2019-12-15 18:55:14 +02:00
Son NK
a084ea880d
remove become partner view
2019-12-15 18:55:14 +02:00
Son NK
53df01e54b
if user cancels subscription, user is still premium until the next billing_date + 1
2019-12-15 18:55:14 +02:00
Son NK
034605d9ac
do not use next_bill_date to know whether user is premium
2019-12-15 18:55:13 +02:00
Son NK
469024179c
fix trial_expiration can be None
2019-12-15 18:55:13 +02:00
Son NK
4a56d2eef5
add billing and pricing page
2019-12-15 18:55:13 +02:00
Son NK
6f7c99963b
remove pricing2
2019-12-15 18:55:13 +02:00
Son NK
263f68ecec
Change subscription model
...
- create subscription table
- rename plan_expiration -> trial_expiration
- remove user.plan, user.promo_codes
2019-12-15 18:55:13 +02:00
Son NK
1f3239b251
rename pricing to pricing2 to save stripe implementation for reference
2019-12-15 18:55:13 +02:00
Son NK
c66f424c51
redirect to ?error=invalid_client_id|http_not_allowed|unknown_redirect_uri instead of return 400
2019-12-15 18:55:13 +02:00
Son NK
61a3844ec4
Add tooltip for email forwarding switch, copy and send test email
2019-12-15 18:55:13 +02:00
Son NK
8f878b4c5d
try to make working with postfix outside docker (in host)
2019-12-15 18:55:13 +02:00
Son NK
c2546cb0de
fix test
2019-12-15 18:55:13 +02:00
Son NK
c1ac71abac
add forward_email table
2019-12-15 18:55:13 +02:00
Son NK
4231a5691a
improve feedback email
2019-12-15 18:55:13 +02:00
Son NK
1fbe8e2d4f
if this is the first app user creates, sends an email to ask for feedback
2019-12-15 18:55:13 +02:00
Son NK
62daf5eadb
improve notify_admin email
2019-12-15 18:55:13 +02:00
Son NK
1a85ab8dcc
use AppID, AppSecret instead of OAuth2 Client ID
2019-12-15 18:55:13 +02:00
Son NK
4c34775aa2
fix cancel button in authorization page when user is not login
2019-12-15 18:55:13 +02:00
Son NK
232d250186
support 127.0.0.1 as well as localhost
2019-12-15 18:55:13 +02:00
Son NK
5eb3f26286
improve UI
2019-12-15 18:55:13 +02:00
Son NK
f518085f1a
improve wording
2019-12-15 18:55:13 +02:00
Son NK
62c3b4cd02
highlight newly created gen-email
2019-12-15 18:55:12 +02:00
Son NK
3e0bc27bad
better notify_admin message
2019-12-15 18:55:12 +02:00
Son NK
9a8282107f
avatarURL returned in user_info is expired in 1 week
2019-12-15 18:55:12 +02:00
Son NK
63183b7104
cancel is handled the same way as "deny"
2019-12-15 18:55:12 +02:00
Son NK
ef807bf293
Add message to invite user creating a new app
2019-12-15 18:55:12 +02:00
Son NK
ed9e3f9085
Show "upgrade" button if user is in trial
2019-12-15 18:55:12 +02:00
Son NK
7cb1c219ed
simplify pricing page now that monthly is gone
2019-12-15 18:55:12 +02:00
Son NK
5ff317538c
remove monthly pricing, display 20$ for monthly pricing
2019-12-15 18:55:12 +02:00
Son NK
f4ea3745c1
update docs url
2019-12-15 18:55:12 +02:00
Son NK
3fe3099e1d
remove all step views
2019-12-15 18:55:12 +02:00
Son NK
e575f21052
show user client-details after creation (no more step guide) and add guide message
2019-12-15 18:55:12 +02:00
Son NK
3a0f0ca780
Take into account expiration for AuthCode and OauthToken
2019-12-15 18:55:12 +02:00
Son NK
2693ba5838
make sure expiration is handled for ActivationCode and ResetPasswordCode
2019-12-15 18:55:12 +02:00
Son NK
4704ca0bc6
add expired column to AuthCode and OAuthToken
2019-12-15 18:55:12 +02:00
Son NK
d7d2ea04a9
replace lyra by GA
2019-12-15 18:55:12 +02:00
Son NK
8dd6346f33
allow dash in email alias
2019-12-15 18:55:12 +02:00
Son NK
c22a7d3f0f
small improvemen UX
2019-12-15 18:55:12 +02:00
Son NK
05dc03ef8a
use card layout for app list,
2019-12-15 18:55:12 +02:00
Son NK
a44ce732be
add advanced app setting: delete app
2019-12-15 18:55:12 +02:00
Son NK
1dd7a761fa
split client details into 3 pages: basic info, oauth settings, oauth endpoints
2019-12-15 18:55:12 +02:00
Son NK
28d475ea22
better avatar pic: use name initial as avatar
2019-12-15 18:55:12 +02:00
Son NK
83abbe5406
set clipboard behavior on all pages
2019-12-15 18:55:12 +02:00
Son NK
aeb4108570
use form.validate_on_submit() whenever possible
2019-12-15 18:55:12 +02:00
Son NK
40f8c610d2
do not change FLASK_SECRET at each new deployment
2019-12-15 18:55:11 +02:00
Son NK
c76d55bf40
do not ask for app website url
2019-12-15 18:55:11 +02:00
Son NK
50c8145faa
remove scopes from app listing page
2019-12-15 18:55:11 +02:00
Son NK
78e274addf
add support for response_mode(query and fragment), nonce
2019-12-15 18:55:11 +02:00
Son NK
e563dff496
add response_type to AuthCode and OauthToken model
2019-12-15 18:55:11 +02:00
Son NK
b2d4ac8e65
add get_response_types_from_str, response_types_to_str
2019-12-15 18:55:11 +02:00
Son NK
47109e6011
add "sub", fix test
2019-12-15 18:55:11 +02:00
Son NK
3f7900f07e
fix scope in /oauth/token
2019-12-15 18:55:11 +02:00
Son NK
82d52ec0ae
enable CORS for /oauth/token
2019-12-15 18:55:11 +02:00
Son NK
efddc68764
add auth_time in id_token
2019-12-15 18:55:11 +02:00
Son NK
f6e71436ec
fix "kid" in id_token
2019-12-15 18:55:11 +02:00
Son NK
ba15837b01
add some tests for authorize page
...
- non-authenticated user,
- non supported flow
- authorization page displayed correctly
- code flow without openid in scope
- code flow with openid in scope
2019-12-15 18:55:11 +02:00
Son NK
8185af7770
update UI on step implicit flow
2019-12-15 18:55:11 +02:00
Son NK
0bc0f751bf
remove flask example
2019-12-15 18:55:11 +02:00
Son NK
572ac772e9
fix
2019-12-15 18:55:11 +02:00
Son NK
117f4110f8
notify admin when new app gets created
2019-12-15 18:55:10 +02:00
Son NK
4e67275071
provide oauth2 urls in app detail page, improve UI
2019-12-15 18:55:10 +02:00
Son NK
410a746c25
add demo example to step
2019-12-15 18:55:10 +02:00
Son NK
76cb892d77
do not show apps section on dashboard if there's no app
2019-12-15 18:55:10 +02:00
Son NK
bde3edaf56
remove User.is_developer column
2019-12-15 18:55:10 +02:00
Son NK
06f51099a5
all users can have access to developer tab
2019-12-15 18:55:10 +02:00
Son NK
ea123b0922
remove partner code
2019-12-15 18:55:10 +02:00
Son NK
01e19485eb
apart from localhost, allow only https
2019-12-15 18:55:10 +02:00
Son NK
d600bbfec0
add step when developer adds new app
2019-12-15 18:55:10 +02:00
Son NK
5244678a16
add "disabled" to client-id, client-secret
2019-12-15 18:55:10 +02:00
Son NK
fc73267b53
remove website url and icon when creating new app
2019-12-15 18:55:10 +02:00
Son NK
daf22b823d
add separator to authorize page
2019-12-15 18:55:10 +02:00
Son NK
4ca3ce571a
improve wording
2019-12-15 18:55:10 +02:00
Son NK
d933fcf0b7
replace information by info
2019-12-15 18:55:10 +02:00
Son NK
67dbcb9723
user can choose their avatar to send
2019-12-15 18:55:10 +02:00
Son NK
d61c402aea
user can choose name
2019-12-15 18:55:10 +02:00
Son NK
0e0a11dfce
make sure custom alias must have at least 3 character in authorize
2019-12-15 18:55:10 +02:00
Son NK
2a6021c230
custom email must have .suffix
2019-12-15 18:55:10 +02:00
Son NK
a1c65d3921
use EMAIL_DOMAIN instead of simplelogin.co
2019-12-15 18:55:10 +02:00
Son NK
8c38fe5b56
set custom=True when user creates a custom alias
2019-12-15 18:55:10 +02:00
Son NK
ddf188f146
add ClientUser.name,default_avatar, GenEmail.custom column
2019-12-15 18:55:10 +02:00
Son NK
00f858c8c1
user can choose custom email in authorize
2019-12-15 18:55:10 +02:00
Son NK
08b394ea0f
add User.suggested_emails
2019-12-15 18:55:10 +02:00
Son NK
d05749d577
add default-avatar and use it instead of gravatar
2019-12-15 18:55:10 +02:00
Son NK
2461ea6145
refactor config
2019-12-15 18:55:10 +02:00
Son NK
37f75954be
shorten wording
2019-12-15 18:55:09 +02:00
Son NK
6bf8cddbcd
only SERVER_NAME in test
2019-12-15 18:55:09 +02:00
Son NK
32d6af228b
set SERVER_NAME required by tests
2019-12-15 18:55:09 +02:00
Son NK
70e4f8b6e6
use os.environ[] instead of os.environ.get to fail fast
2019-12-15 18:55:09 +02:00
Son NK
8e459892f7
add config.get_abs_path to handle relative path
2019-12-15 18:55:09 +02:00
Son NK
2fc3108141
fix test
2019-12-15 18:55:09 +02:00
Son NK
0817e45abe
override User.create to set password, create GenEmail, set trial period
2019-12-15 18:55:09 +02:00
Son NK
631e251d8c
handle the case user clicks on cancel
2019-12-15 18:55:09 +02:00
Son NK
abda0091ce
small improv
2019-12-15 18:55:09 +02:00
Son NK
54fc54c3ce
improve wording
2019-12-15 18:55:09 +02:00
Son NK
91bf3e3379
do not display avatar_url to user
2019-12-15 18:55:09 +02:00
Son NK
65a540030f
improve authorize page
2019-12-15 18:55:09 +02:00
Son NK
ca2605999c
display avatar instead of avatar_url
2019-12-15 18:55:09 +02:00
Son NK
886108c3a0
enable facebook login
2019-12-15 18:55:09 +02:00
Son NK
f4afbfe40f
add new param FACEBOOK_CLIENT_ID, FACEBOOK_CLIENT_SECRET
2019-12-15 18:55:09 +02:00
Son NK
bdc22f3c68
fix user getting redirected at each google login
2019-12-15 18:55:09 +02:00
Son NK
7ea4c157a1
workaround as Google does not allow to append param to redirect_url
2019-12-15 18:55:09 +02:00
Son NK
caf610446c
handle next with google login
2019-12-15 18:55:09 +02:00
Son NK
cc6ce6618d
refactor: rename
2019-12-15 18:55:09 +02:00
Son NK
aab2244881
handle "next" for "sign up with github" too
2019-12-15 18:55:09 +02:00
Son NK
f21f16e3f2
redirect user to next after login with github/google
2019-12-15 18:55:09 +02:00
Son NK
4227c3036d
fix reset password expired
2019-12-15 18:55:09 +02:00
Son NK
43536734a0
add login with google
2019-12-15 18:55:09 +02:00
Son NK
10b0538192
add new param GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET
2019-12-15 18:55:09 +02:00
Son NK
17a4679b90
fix activation code
2019-12-15 18:55:09 +02:00
Son NK
4cdb803157
fix redirect_uri
2019-12-15 18:55:09 +02:00
Son NK
6d8d61495e
set explicitly the redirect_uri
2019-12-15 18:55:09 +02:00
Son NK
aae76f21f6
add github login
2019-12-15 18:55:09 +02:00
Son NK
4883ace2ed
only show "create custom alias" button to users who can
2019-12-15 18:55:09 +02:00
Son NK
94d92a0e87
add new param GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET
2019-12-15 18:55:09 +02:00
Son NK
309cb36864
use span instead of a for icon
2019-12-15 18:55:09 +02:00
Son NK
c7df8e9158
fix introJs
2019-12-15 18:55:08 +02:00
Son NK
388f520e9a
premium user can choose custom alias
2019-12-15 18:55:08 +02:00
Son NK
414ef2bb9b
remove requireJS madness!
2019-12-15 18:55:08 +02:00
Son NK
0b85000a11
import render_field, render_field_errors in base.html
2019-12-15 18:55:08 +02:00
Son NK
fc2fdea6e7
change wording
2019-12-15 18:55:08 +02:00
Son NK
4ef8290c73
login and register page: redirect user to dashboard if user is already authenticated
2019-12-15 18:55:08 +02:00
Son NK
df3292df37
user can delete email alias
2019-12-15 18:55:08 +02:00
Son NK
62cbcb249b
disable notie overlayClickDismiss in base.html
2019-12-15 18:55:08 +02:00
Son NK
84fc5afedb
prettify client listing page
2019-12-15 18:55:08 +02:00
Son NK
1274dd589a
add delete() to ModelMixin: do NOT use the session.delete(), somehow it does a "SET" before "DELETE"
2019-12-15 18:55:08 +02:00
Son NK
a2225160d5
Fix wordings on Login page
2019-12-15 18:55:08 +02:00
Son NK
1670b37858
use shorter words when generating emails
2019-12-15 18:55:08 +02:00
Son NK
1703f4b5f6
add param WORDS_FILE_PATH, use random_words when generating email
2019-12-15 18:55:08 +02:00
Son NK
9f3cba61ca
rename ScopeE to just Scope
2019-12-15 18:55:08 +02:00
Son NK
b263886434
use port 7777 instead of 5000
2019-12-15 18:55:08 +02:00
Son NK
aa99ccb094
remove table scope and client_scope
2019-12-15 18:55:08 +02:00
Son NK
2a59bf5e23
add AVATAR_URL scope, use ScopeE instead of Scope
2019-12-15 18:55:08 +02:00
Son NK
4ea6e676e4
fill up plain_text_content when sending emails
2019-12-15 18:55:08 +02:00
Son NK
8b3564c2f2
fix wording
2019-12-15 18:55:08 +02:00
Son NK
e2106a128e
improve wording
2019-12-15 18:55:08 +02:00
Son NK
c18d9f5280
create BaseForm to enable CSRF
...
register page
redirect user to dashboard if they are logged in
enable csrf for login page
Set models more strict
bootstrap developer page
add helper method to ModelMixin, remove CRUDMixin
display list of clients on developer index, add copy client-secret to clipboard using clipboardjs
add toastr and use jquery non slim
display a toast when user copies the client-secret
create new client, generate client-id using unidecode
client detail page: can edit client
add delete client
implement /oauth/authorize and /oauth/allow-deny
implement /oauth/token
add /oauth/user_info endpoint
handle scopes: wip
take into account scope: display scope, return user data according to scope
create virtual-domain, gen email, client_user model WIP
create authorize_nonlogin_user page
user can choose to generate a new email
no need to interfere with root logger
log for before and after request
if user has already allowed a client: generate a auth-code and redirect user to client
get_user_info takes into account gen email
display list of clients that have user has authorised
use yk-client domain instead of localhost as cookie depends on the domain name
use wtforms instead of flask_wtf
Dockerfile
delete virtual domain
EMAIL_DOMAIN can come from env var
bind to host 0.0.0.0
fix signup error: use session as default csrf_context
rename yourkey to simplelogin
add python-dotenv, ipython, sqlalchemy_utils
create DB_URI, FLASK_SECRET. Load config from CONFIG file if exist
add shortcuts to logging
create shell
add psycopg2
do not add local data in Dockerfile
add drop_db into shell
add shell.prepare_db()
fix prepare_db
setup sentry
copy assets from tabler/dist
add icon downloaded from https://commons.wikimedia.org/wiki/File:Simpleicons_Interface_key-tool-1.svg
integrate tabler - login and register page
add favicon
template: default, header. Use gravatar for user avatar url
use default template for dashboard, developer page
use another icon
add clipboard and notie
prettify dashboard
add notie css
add fake gen email and client-user
prettify list client page, use notie for toast
add email, name scope to new client
display client scope in client list
prettify new-client, client-detail
add sentry-sdk and blinker
add arrow, add dt jinja filter, prettify logout, dashboard
comment "last used" in dashboard for now
prettify date display
add copy email to clipboard to dashboard
use "users" as table name for User as "user" is reserved key in postgres
call prepare_db() when creating new db
error page 400, 401, 403, 404
prettify authorize_login_user
create already_authorize.html for user who has already authorized a client
user can generate new email
display all other generated emails
add ENV variable, only reset DB when ENV=local
fix: not return other users gen emails
display nb users for each client
refactor shell: remove prepare_db()
add sendgrid
add /favicon.ico route
add new config: URL, SUPPORT_EMAIL, SENDGRID_API_KEY
user needs to activate their account before login
create copy button on dashboard
client can have multiple redirect uris, in client detail can add/remove redirect-uri,
use redirect_uri passed in /authorize
refactor: move get_user_info into ClientUser model
dashboard: display all apps, all generated emails
add "id" into user_info
add trigger email button
invalidate the session at each new version by changing the secret
centralize Client creation into Client.create_new
user can enable/disable email forwarding
setup auto dismiss alert: just add .alert-auto-dismiss
move name down in register form
add shell.add_real_data
move blueprint template to its own package
prettify authorize page for non-authenticated user
update readme, return error if not redirect_uri
add flask-wtf, use psycopg2-binary
use flask-wtf FlaskForm instead of Form
rename email -> email_utils
add AWS_REGION, BUCKET, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY to config
add s3 module
add File model, add Client.icon_id
handle client icon update
can create client with icon
display client icon in client list page
add Client.home_url
take into account Client.home_url
add boto3
register: ask name first
only show "trigger test email" if email forwarding is enabled
display gen email in alphabetical order, client in client.name alphabetical order
better error page
the modal does not get close when user clicks outside of modal
add Client.published column
discover page that displays all published Client
add missing bootstrap.bundle.min.js.map
developer can publish/unpublish their app in discover
use notie for display flash message
create hotmail account
fix missing jquery
add footer, add global jinja2 variable
strengthen model: use nullable=False whenever possible,
rename client_id to oauth_client_id, client_secret to oauth_client_secret
add flask-migrate
init migrate
1st migrate version
fix rename client_id -> oauth_client_id
prettify UI
use flask_migrate.upgrade() instead of db.create_all()
make sure requirejs.config is called for all page
enable sentry for js, use uppercase for global jinja2 variables
add flask-admin
add User.is_admin column
setup flask admin, only accessible to admin user
fix migration: add server_default
replace session[redirect_after_login] by "next" request args
add pyproject.toml: ignore migrations/ in black
add register waiting_activation_email page
better email wording
add pytest
add get_host_name_and_scheme and tests
example fail test
fix test
fix client-id display
add flask-cors
/user_info supports cors, add /me as /user_info synonym
return client in /me
support implicit flow
no need to use with "app.app_context()"
add watchtower to requirement
add param ENABLE_CLOUDWATCH, CLOUDWATCH_LOG_GROUP, CLOUDWATCH_LOG_STREAM
add cloudwatch logger if cloudwatch is enabled
add 500 error page
add help text for list of used client
display list of app/website that an email has been used
click on client name brings to client detail page
create style.css to add additional style, append its url with the current sha1 to avoid cache
POC on how to send email using postfix
add sqlalchemy-utils
use arrow instead of datetime
add new params STRIPE_API, STRIPE_YEARLY_SKU, STRIPE_MONTHLY_PLAN
show full error in local
add plan, plan_expiration to User, need to create enum directly in migration script, cf https://github.com/sqlalchemy/alembic/issues/67
reformat all html files: use space instead of tab
new user will have trial plan for 15 days
add new param MAX_NB_EMAIL_FREE_PLAN
only user with enough quota can create new email
if user cannot create new gen email, pick randomly one from existing gen emails. Use flush instead of commit
rename STRIPE_YEARLY_SKU -> STRIPE_YEARLY_PLAN
open client page in discover in a new tab
add stripe
not logging /static call: disable flask logging, replace by after_request
add param STRIPE_SECRET_KEY
add 3 columns stripe_customer_id, stripe_card_token, stripe_subscription_id
user can upgrade their pricing
add setting page as coming-soon
add GenEmail, ClientUser to admin
ignore /admin/static logging
add more fake data
add ondelete="cascade" whenever possible
rename plan_expiration -> trial_expiration
reset migration: delete old migrations, create new one
rename test_send_email -> poc_send_email to avoid the file being called by pytest
add new param LYRA_ANALYTICS_ID, add lyra analytics
add how to create new migration into readme
add drift to base.html
notify admin when new user signs up or pays subscription
log exception in case of 500
use sendgrid to notify admin
add alias /userinfo to user_info endpoint
add change_password to shell
add info on how payment is handled
invite user to retry if card not working
remove drift and add "contact us" link
move poc_send_email into poc/
support getting client-id, client-secret from form-data in addition to basic auth
client-id, client-secret is passed in form-data by passport-oauth2 for ex
add jwtRS256 private and public key
add jwk-jws-jwt poc
add new param OPENID_PRIVATE_KEY_PATH, OPENID_PRIVATE_KEY_PATH
add scope, redirect_url to AuthorizationCode and OauthToken
take into scope when creating oauth-token, authorization-code
add jwcrypto
add jose_utils: make_id_token and verify_id_token
add &scope to redirect uri
add "email_verified": True into user_info
fix user not activated
add /oauth2 as alias for /oauth
handle case where scope and state are empty
remove threaded=False
Use Email Alias as wording
remove help text
user can re-send activation email
add "expired" into ActivationCode
Handle the case activation code is expired
reformat: use form.validate_on_submit instead of request.method == post && form.validate
use error text instead of flash()
display client oauth-id and oauth-secret on client detail page
not display oauth-secret on client listing
fix expiration check
improve page title, footer
add /jwks and /.well-known/openid-configuration
init properly tests, fix blueprint conflict bug in flask-admin
create oauth_models module
rename Scope -> ScopeE to distinguish with Scope DB model
set app.url_map.strict_slashes = False
use ScopeE instead of SCOPE_NAME, ...
support access_token passed as args in /userinfo
merge /allow-deny into /authorize
improve wording
take into account the case response_type=code and openid is in scope
take into account response_type=id_token, id_token token, id_token code
make sure to use in-memory db in test
fix scope can be null
allow cross_origin for /.well-known/openid-configuration and /jwks
fix footer link
center authorize form
rename trial_expiration to plan_expiration
move stripe init to create_app()
use real email to be able to receive email notification
add user.profile_picture_id column
use user profile picture and fallback to gravatar
use nguyenkims+local@gm to distinguish with staging
handle plan cancel, reactivation, user profile update
fix can_create_new_email
create cron.py that set plan to free when expired
add crontab.yml
add yacron
use notify_admin instead of LOG.error
add ResetPasswordCode model
user can change password in setting
increase display time for notie
add forgot_password page
If login error: redirect to this page upon success login.
hide discover tab
add column user.is_developer
only show developer menu to developer
comment out the publish button
set local user to developer
make sure only developer can access /developer blueprint
User is invited to upgrade if they are in free plan or their trial ends soon
not sending email when in local mode
create Partner model
create become partner page
use normal error handling on local
fix migration
add "import sqlalchemy_utils" into migration template
small refactoring on setting page
handle promo code. TODO: add migration file
add migration for user.promo_codes
move email alias on top of apps in dashboard
add introjs
move encode_url to utils
create GenEmail.create_new_gen_email
create a first alias mail to show user how to use when they login
show intro when user visits the website the first time
fix register
2019-07-02 10:20:12 +03:00
Son NK
0b3dd21a06
bootstrap: db models, login, logout, dashboard pages
2019-07-01 18:18:12 +03:00