Son NK
f34b9f6ca6
Prettify alias page: use collapsible layout
2020-04-25 13:42:53 +02:00
Son NK
c61213fae9
use ajax to switch on/off alias
2020-04-25 13:42:53 +02:00
Son NK
48202e905f
rename verify_api_key -> require_api_auth
2020-04-25 13:42:53 +02:00
Son NK
78e94da08c
support user already authenticated in verify_api_key
2020-04-25 13:42:53 +02:00
Son NK
7d35baddd4
do not ask for confirmation when enable/disable alias
2020-04-24 09:47:25 +02:00
Son NK
ba105f076e
Fix "new" badge appear on alias modification
2020-04-24 09:45:49 +02:00
Son NK
fc4572e9ba
make logo a bit smaller
2020-04-24 09:43:26 +02:00
Son NK
6a67f7946f
fix facebook might not return email
2020-04-24 09:17:21 +02:00
Son NK
734b104c27
remove text on registration waiting page
2020-04-23 22:10:14 +02:00
Son NK
7fff8f84d8
add more debug log
2020-04-21 20:17:43 +02:00
Son NK
318b47af36
Handle the case invalid input for /api/apple/update_notification
2020-04-21 15:54:43 +02:00
Son NK
e50b0d5da5
implement apple_update_notification
2020-04-21 09:34:16 +02:00
Son NK
15219f7021
Support Apple grace period
2020-04-20 23:31:25 +02:00
Son NK
04e7cc448e
fix blocked -> block
2020-04-20 19:58:10 +02:00
Son NK
840f827b45
Handle the case "Restore Purchase" on another account
2020-04-19 23:13:43 +02:00
Son NK
b5b4fe2773
make sure original_transaction_id is unique
2020-04-19 23:13:07 +02:00
Son NK
d5e868e629
Fix apple payment
2020-04-19 22:54:21 +02:00
Son NK
34635bf854
use Log.error to know when /api/apple/update_notification is called
2020-04-19 16:06:37 +02:00
Son NK
bca1e227c7
Add /apple/update_notification to test Apple notif
2020-04-19 11:50:29 +02:00
Son NK
1bba38edb6
Add POST /apple/process_payment
2020-04-19 11:13:38 +02:00
Son NK
85fd4412ba
take into account AppleSubscription in premium formula
2020-04-19 10:58:32 +02:00
Son NK
2a837f9213
remove user.is_cancel()
2020-04-19 10:54:15 +02:00
Son NK
f7f1e7f358
replace user.next_bill_date() by sub.next_bill_date.strftime("%Y-%m-%d")
2020-04-19 10:54:05 +02:00
Son NK
b0118e615a
Add AppleSubscription model
2020-04-18 20:47:33 +02:00
Son NK
7b965e4121
Add APPLE_API_SECRET param
2020-04-18 20:47:11 +02:00
Son NK
cf016caa91
Refuse disposable emails in can_be_used_as_personal_email()
2020-04-16 09:43:14 +02:00
Son NK
6fa46042dc
Add DISPOSABLE_FILE_PATH param
2020-04-16 09:42:34 +02:00
Son NK
746cd2eb66
Use FIRST_ALIAS_DOMAIN in directory and custom alias
2020-04-15 22:52:30 +02:00
Son NK
28101612db
Use FIRST_ALIAS_DOMAIN to create first alias
2020-04-15 22:51:18 +02:00
Son NK
8ebc26f4e7
add FIRST_ALIAS_DOMAIN param
2020-04-15 22:36:50 +02:00
Son NK
a434413304
Add terms and condition mention in register page
2020-04-15 22:32:12 +02:00
Son NK
c17ecba202
add more logging
2020-04-15 21:34:22 +02:00
Son NK
3c9e6fc991
make sure to strip and lower email in input
2020-04-15 21:12:45 +02:00
Son NK
5f784d683a
Prettify
2020-04-15 09:16:42 +02:00
Son NK
29c9295e01
set File.user_id to nullable to correspond to existing installation
2020-04-15 09:00:23 +02:00
Son NK
1410d5617f
Fix code compatibility with 2x version
2020-04-14 22:42:20 +02:00
Son NK
6cfd534192
Add LOAD_PGP_EMAIL_HANDLER param. Load PGP keys if LOAD_PGP_EMAIL_HANDLER is set
2020-04-14 12:46:12 +02:00
Son NK
ed76a8ae8d
reformat
2020-04-13 20:51:29 +02:00
Son NK
b838157ad5
User who has lifetime licence or giveaway manual subscriptions can decide to upgrade to a paid plan
2020-04-13 20:50:48 +02:00
Son NK
260ded14ea
rename should_upgrade -> should_show_upgrade_button
2020-04-13 20:49:35 +02:00
Son NK
7beae4d846
Add ManualSubscription.is_giveaway column
2020-04-13 20:48:47 +02:00
Son NK
3d10fab3a6
Make sure to show intro to user only once
2020-04-13 13:23:17 +02:00
Son NK
dee6d4959d
Add User.intro_shown column
2020-04-13 13:22:52 +02:00
Son NK
6f59e7ea37
Update pricing page
2020-04-12 20:15:02 +02:00
Son NK
e44860329b
Make sure user cannot create more than 50 directories
2020-04-12 20:14:49 +02:00
Son NK
b041591133
Prettify Settings
2020-04-12 19:43:46 +02:00
Son NK
9b91f4a4a4
support changing plan
2020-04-12 19:43:07 +02:00
Son NK
076d9899ea
rename
2020-04-12 19:27:14 +02:00
Son NK
70c294bee0
Remove lifetime licence mention for students/professors/...
2020-04-12 11:59:23 +02:00
Son NK
6e1ac4b0e8
Add copy to clipboard in DNS setting
2020-04-11 20:01:47 +02:00
Son NK
a0cdf3ae95
allow user having manual sub or canceled sub to upgrade to lifetime
2020-04-11 10:47:32 +02:00
Son NK
89c41f972c
Add id to settings section
2020-04-09 23:01:29 +02:00
Son NK
bb2476203f
User can create referrals
2020-04-09 22:39:39 +02:00
Son NK
8fc88b8253
Set referral when creating User
2020-04-09 22:22:26 +02:00
Son NK
cdf23d04fc
Add Referral model
2020-04-09 22:20:06 +02:00
Son NK
a54ac0b3da
Add LANDING_PAGE_URL param
2020-04-09 22:18:03 +02:00
Son NK
4789e439db
rename auth_login to auth
2020-04-09 20:31:53 +02:00
Son NK
a548c84694
Make MAX_NB_EMAIL_FREE_PLAN available in all email templates
2020-04-08 23:06:56 +02:00
Son NK
5d0519ed86
Add GET /api/v2/aliases
2020-04-06 22:26:35 +02:00
Son NK
7ed317e334
Show alias creation date when no activity
2020-04-05 20:05:49 +02:00
Son NK
cfdaf659f9
Make UI more consistent
2020-04-05 19:59:48 +02:00
Son NK
b19dfc6ef4
Use forward/reply/blocked icon on alias page
2020-04-05 19:42:30 +02:00
Son NK
e83f11342d
prettify alias activity page
2020-04-05 19:28:57 +02:00
Son NK
460c306712
Order alias by latest activity instead of alias creation date. Show the latest activity & contact
2020-04-05 19:03:17 +02:00
Son NK
af9178e216
Use non-beta logo
2020-04-05 18:58:22 +02:00
Son NK
bf0f8a913a
remove AliasInfo.id
2020-04-05 16:57:47 +02:00
Son NK
b0c3634e72
use dataclass for AliasInfo, remove note
2020-04-05 16:57:28 +02:00
Son NK
67d6ce1cea
rename
2020-04-05 16:33:43 +02:00
Son NK
425fdc66c6
Move methods to api/serializer.py
2020-04-05 16:32:38 +02:00
Son NK
f15488f96b
refactor: move get_alias_infos_with_pagination, get_alias_info to alias.py
2020-04-05 16:21:13 +02:00
Son NK
2619333cc6
remove uses of website_from
2020-04-05 15:39:48 +02:00
Son NK
afceabeef5
add Contact.new_addr()
2020-04-05 15:21:04 +02:00
Son NK
d1e5b9f9b7
set contact name, use website_email instead of website_from in alias endpoint
2020-04-05 12:58:06 +02:00
Son NK
c686767d4d
Fix parseaddr_unicode: take into account email only case
2020-04-05 12:56:17 +02:00
Son NK
6c68b3cda7
Fix website_send_to: prefer using name instead of website_from
2020-04-05 12:48:59 +02:00
Son NK
fbcac59c7f
Set contact name when adding contact via contact manager
2020-04-05 12:29:00 +02:00
Son NK
9c22bf479a
rename
2020-04-05 12:19:37 +02:00
Son NK
fa8e0aee45
Add contact.name column
2020-04-05 12:18:18 +02:00
Son NK
5fff1e86ce
Add parseaddr_unicode()
2020-04-05 12:07:40 +02:00
Son NK
6258ef0c11
Only display website_email instead of website_from in contact manager, alias log and refused emails
2020-04-05 12:02:08 +02:00
Son NK
3baddc9206
rename
2020-04-04 20:04:42 +02:00
Son NK
f7e5ab1e34
reaname
2020-04-04 19:21:31 +02:00
Son NK
4d8040c80d
Add reverse_alias to GET /api/aliases/:alias_id/activities
2020-04-04 19:18:07 +02:00
Son NK
1c5d6e3299
rename
2020-04-04 19:11:10 +02:00
Son NK
655090242e
Fix greylog query
2020-04-04 18:07:05 +02:00
Son NK
eccc8a71e9
use MAX_ACTIVITY_DURING_MINUTE instead of MIN_TIME_BETWEEN_ACTIVITY
2020-04-04 17:22:27 +02:00
Son NK
8caebc0142
Return 421 when there's too much activity on an alias or mailbox
2020-04-04 16:27:22 +02:00
Son NK
c1f5c07d86
Move alias auto-creation to alias_utils
2020-04-04 15:24:27 +02:00
Son NK
0c2bce6931
Add PGP Encryption to pricing page
2020-04-03 23:39:27 +02:00
Son NK
58ca77e2ae
Add browser extension onboarding email
2020-04-02 23:26:17 +02:00
Son NK
3550447a66
use BytesIO as input when encrypting
2020-04-02 21:30:36 +02:00
Son NK
55190ff358
use msg.as_bytes() instead of msg.as_string().encode()
2020-04-02 21:30:36 +02:00
Son NK
5ff8ae00e5
only lower the email part when creating new contact
2020-04-02 21:30:36 +02:00
Son NK
7f85ec30bd
Improve contact manager: lowercase the contact address before adding
2020-04-01 20:31:47 +02:00
Son NK
9500cc6cee
Take into account spamassassin spam report
2020-03-30 22:05:31 +02:00
Son NK
ca5e3ac477
Refactoring: better naming
2020-03-30 21:46:52 +02:00
Son NK
9563b706f2
Add EmailLog is_spam, spam_status column
2020-03-30 21:42:25 +02:00
Son NK
7c0e4b369a
fix contact not highlighted after creation
2020-03-30 21:41:18 +02:00
Son NK
4c1c02db60
Add /v3/alias/options
2020-03-29 23:13:04 +02:00
Son NK
88d63bd931
add UNSUBSCRIBER config
2020-03-28 23:15:45 +01:00
Son NK
7f49312255
use user preferred sender format
2020-03-28 22:37:00 +01:00
Son NK
33fd40f6ce
User can choose which sender format they prefer
2020-03-28 22:36:19 +01:00
Son NK
65ca7d2a71
add User.use_via_format_for_sender column
2020-03-28 22:35:29 +01:00
Son NK
aa3a13c3ca
Replace To or CC header when forward/reply
2020-03-28 19:16:55 +01:00
Son NK
5b9f3c2763
add contact.is_cc column
2020-03-28 19:05:27 +01:00
Son NK
97dff83453
return full alias info in POST /api/alias/random/new
2020-03-26 19:50:22 +01:00
Son NK
d4a32451c1
return full alias info in POST /api/alias/custom/new
2020-03-26 19:48:36 +01:00
Son NK
159aa76aae
GET /api/aliases/:alias_id
2020-03-26 19:44:00 +01:00
Son NK
78b24623af
reformat: create serialize_alias_info()
2020-03-26 19:35:44 +01:00
Son NK
9e04081186
send mailbox onboarding email
2020-03-24 21:19:45 +01:00
Son NK
c02b8298fc
send pgp onboarding email to user on 2nd day
2020-03-24 21:01:38 +01:00
Son NK
bf98fa00b7
Fix alias display
2020-03-22 23:30:55 +01:00
Son NK
86ef7f54d9
RefusedEmail.path can be null
2020-03-22 16:51:21 +01:00
Son NK
88039844ef
remove "subject" from DKIM
2020-03-22 15:08:26 +01:00
Son NK
b8093aefa3
Handle invalid email when user signs up
2020-03-21 11:11:52 +01:00
Son NK
8abdf655fc
make aliasUsedOn.user_id non nullable
2020-03-20 12:29:37 +01:00
Son NK
7d4a9efb5d
set user_id when creating AliasUsedOn
2020-03-20 12:29:11 +01:00
Son NK
92de2102ad
Add AliasUsedOn.user_id col
2020-03-20 12:13:00 +01:00
Son NK
5d0b4d4aca
Fix: filter email log by current user
2020-03-20 11:39:45 +01:00
Son NK
783b1937d5
make user_id non nullable on contact, email_log and file
2020-03-20 10:17:52 +01:00
Son NK
6e54b4fed8
make sure to set user_id when creating contact
2020-03-20 09:54:38 +01:00
Son NK
abd2278c24
make sure to set File.user_id
2020-03-20 09:52:00 +01:00
Son NK
cd19997424
Add File.user_id, Contact.user_id, EmailLog.user_id columns
2020-03-20 09:51:15 +01:00
Son NK
a529943dc4
Only premium user can add PGP key
2020-03-19 19:15:42 +01:00
Son Nguyen Kim
44e2e175ef
Merge pull request #115 from simple-login/rename
...
Rename
2020-03-19 10:39:05 +01:00
Son NK
b0f2d7b85a
always return 200 in /forgot_password
2020-03-18 21:55:50 +01:00
Son NK
a1fad2216f
Improve error
2020-03-18 21:37:45 +01:00
Son NK
2079b16431
add "in_trial" to /user_info
2020-03-18 19:08:16 +01:00
Son NK
f2d5230449
Add POST /api/auth/forgot_password
2020-03-18 18:43:04 +01:00
Son NK
ba6b8d2711
return email in /user_info
2020-03-18 18:34:37 +01:00
Son NK
aaf254a26d
order alias by creation date
2020-03-17 21:47:11 +01:00
Son NK
a521002b2c
Fix duplicate results
2020-03-17 20:16:20 +01:00
Son NK
a465b1d3ca
rename get_alias_info -> get_alias_infos
2020-03-17 19:59:48 +01:00
Son NK
fbef076a14
Take into account query in GET /api/aliases
2020-03-17 19:32:45 +01:00
Son NK
0d725588ae
Add DELETE /api/contacts/:contact_id
2020-03-17 19:18:26 +01:00
Son NK
81b5e919a3
Return contact id
2020-03-17 12:38:50 +01:00
Son NK
ac27ea5847
Improve UI
2020-03-17 12:06:26 +01:00
Son NK
2d90d35647
rename gen_email_id -> alias_id
2020-03-17 12:01:18 +01:00
Son NK
4f281bdbbb
rename GenEmail -> Alias, gen_email to alias whenever possible
2020-03-17 11:51:40 +01:00
Son NK
bea870ef8b
rename ForwardEmailLog to EmailLog
2020-03-17 11:10:50 +01:00
Son NK
f2d630e597
rename forward_id to contact_id
2020-03-17 11:05:53 +01:00
Son NK
17974de746
rename ForwardEmail to Contact
2020-03-17 10:56:59 +01:00
Son Nguyen Kim
269bca8ff3
Merge pull request #114 from simple-login/pgp-for-everyone
...
Open PGP to everyone
2020-03-17 09:53:42 +01:00
Son NK
cc6e8a00a5
Wording: rename refused email to Quarantine
2020-03-17 09:43:12 +01:00
Son NK
ea43b8f685
Open PGP to everyone
2020-03-17 09:22:29 +01:00
Son NK
8faf34ce40
Use warning level for /v2/alias/options
2020-03-16 21:10:53 +01:00
Son Nguyen Kim
1e10b4d675
Merge pull request #113 from simple-login/fix-custom-domain-not-set
...
Fix custom domain not set
2020-03-15 23:38:25 +01:00
Son NK
ccc005b8b2
Do not set domain for ALIAS_DOMAINS
2020-03-15 23:33:50 +01:00
Son NK
93292c88c9
Fix not setting custom domain when creating alias via API
2020-03-15 23:18:43 +01:00
Son NK
ee1642bf99
use a more consistent format
2020-03-15 23:10:20 +01:00
Son NK
17f3c112b9
do not use formataddr to generate website email
2020-03-15 23:02:06 +01:00
Son NK
027cbb10d9
use parseaddr instead of get_email_part
2020-03-15 22:32:48 +01:00
Son NK
6b6fca2281
use email.utils.parseaddr and formataddr instead of get_email_name
2020-03-15 22:29:53 +01:00
Son NK
b19be41a5e
Support download email file in browser
2020-03-15 18:39:59 +01:00
Son NK
eb3063a57f
Improve wording
2020-03-15 18:06:57 +01:00
Son NK
45d560fd70
fix
2020-03-15 12:14:43 +01:00
Son NK
e21e27eefa
Hide download for deleted refused emails
2020-03-15 11:14:58 +01:00
Son NK
71a9fc38a9
Add cronjob to delete refused emails
2020-03-15 11:11:16 +01:00
Son NK
a923d9ad6a
Add refused_email.deleted column
2020-03-15 11:10:37 +01:00
Son NK
69198ff08a
delete all unnecessary headers in PGP
2020-03-14 22:24:02 +01:00
Son NK
0bb9830680
Store the bounced email in email handling.
2020-03-14 16:34:23 +01:00
Son NK
c3b85115ca
Add refused-email view
2020-03-14 16:19:56 +01:00
Son NK
0de13ca4d9
add RefusedEmail model
2020-03-14 16:07:34 +01:00
Son NK
28c6c68a80
Use a better mailbox validation page
2020-03-14 14:45:37 +01:00
Son NK
f87746e071
POST /api/aliases/:alias_id/contacts
2020-03-14 12:55:38 +01:00
Son NK
d7cb5ed26e
GET /api/aliases/:alias_id/contacts
2020-03-14 12:22:43 +01:00
Son NK
bfd729b889
PUT /api/aliases/:alias_id
2020-03-14 11:38:39 +01:00
Son NK
a9fdfc799f
Add LOCAL_FILE_UPLOAD param
2020-03-13 14:37:48 +01:00
Son NK
cf257a92ec
use utf-8 for PGP
2020-03-13 12:54:52 +01:00
Son NK
e713efee98
reformat
2020-03-13 10:34:41 +01:00
Son NK
ab082a5f9b
fix get_json returns 400
2020-03-11 14:02:35 +01:00
Son NK
1098f17c0c
Support note in POST /api/alias/random/new
2020-03-11 12:24:30 +01:00
Son NK
aad06f73e9
Support note in POST /api/alias/custom/new
2020-03-11 12:23:43 +01:00
Son NK
417009b3be
return note in GET /api/aliases
2020-03-11 12:16:45 +01:00
Son NK
9d25d099e1
use mailbox_already_used instead of email_already_used
2020-03-09 14:01:27 +01:00
Son NK
fefc8cab71
Merge branch 'master' into staging
2020-03-09 13:55:10 +01:00
Son Nguyen Kim
e4f3cb8e86
Merge pull request #102 from simple-login/cancel-sub
...
Cancel sub
2020-03-09 13:38:33 +01:00
Son NK
3be593ed09
prettify mailbox detail page
2020-03-09 13:35:32 +01:00
Son NK
86c1c8e54f
fix button word-break: use flex
2020-03-09 10:42:58 +01:00
Son NK
3ef7285288
reduce logging level
2020-03-09 09:48:33 +01:00
Son NK
1c5c5896f8
Handle SMTPRecipientsRefused in send_email
2020-03-09 09:22:40 +01:00
Son NK
b05daecd28
Handle unsign can generate other exceptions
2020-03-09 09:17:40 +01:00
Son NK
aadda7cb0d
handle the case new_email can be None if user cancels change in the meantime
2020-03-09 09:14:21 +01:00
Son NK
743170e983
Add more guide on mailbox detail
2020-03-09 09:09:22 +01:00
Son NK
c1c3224a41
Merge branch 'cancel-sub' into staging
2020-03-08 23:13:23 +01:00
Son NK
911c38710e
Only user with can_use_pgp on can use GPG
2020-03-08 23:12:35 +01:00
Son NK
612e4f6717
encrypt forwarded emails to gpg-enabled mailbox
2020-03-08 23:07:23 +01:00
Son NK
5d5131f32c
display 🗝 for PGP-enabled mailbox
2020-03-08 22:59:46 +01:00
Son NK
6200d4d1a0
redirect user to mailbox detail page when creating new mailbox
2020-03-08 22:59:19 +01:00
Son NK
76e30dfbe8
add User.can_use_pgp column
2020-03-08 13:07:03 +01:00
Son NK
486df7fefc
set mailbox.pgp_finger_print when adding PGP key
2020-03-08 12:51:53 +01:00
Son NK
2eef010bad
add pgp_utils
2020-03-08 12:51:33 +01:00
Son NK
24fd19d6d9
user can set/remove pgp key
2020-03-08 12:30:48 +01:00
Son NK
fbb5c0bf93
add pgp_public_key, pgp_finger_print to Mailbox model
2020-03-08 11:55:39 +01:00
Son NK
f905fa626c
add GNUPGHOME config
2020-03-08 11:54:59 +01:00
Son NK
84f3d7c278
TODO: add next_bill_date check on active subscription next April
2020-03-08 11:36:09 +01:00
Son NK
08e6f89585
increase size on ForwardEmail columns
2020-03-08 11:33:54 +01:00
Son NK
1acbf173ea
Handle subscription cancel directly
2020-03-08 10:28:13 +01:00
Son NK
aea717eafc
add paddle_utils.cancel_subscription
2020-03-08 10:27:50 +01:00
Son NK
8aacd5e6da
Add PADDLE_AUTH_CODE config
2020-03-08 10:27:26 +01:00
Son NK
fac833b8e6
support the case user wants to re-add their real email as mailbox
2020-03-08 10:05:13 +01:00
Son NK
3b454b9a80
fix test
2020-03-05 20:32:08 +01:00
Son NK
a6f4059d5d
make sure to set mailbox_id when creating GenEmail
2020-03-05 17:03:07 +01:00
Son NK
faa82e7b5a
make GenEmail.mailbox_id non-nullable
2020-03-05 17:00:43 +01:00
Son NK
cb3ea63066
show error if no such email exists from Github
2020-03-05 16:46:02 +01:00
Son NK
90dc05725a
use github email that is "verified" and "primary"
2020-03-05 16:45:49 +01:00
Son NK
ca70d26285
black format
2020-03-05 11:00:58 +01:00
Son NK
a0372a15de
fix github email can contain uppercase char
2020-03-05 10:58:58 +01:00
Son NK
85321313c1
add a warning on payment page for canceled user
2020-03-05 10:22:53 +01:00
Son NK
3492935f95
Canceled user can upgrade again: the payment method is changed immediately though
2020-03-05 09:13:28 +01:00
Son NK
83d32244a5
remove Beta tag on mailboxes
2020-03-05 08:56:47 +01:00
Son NK
f8ad733b91
display next_bill_date on billing page for canceled subscription
2020-03-05 08:11:35 +01:00
Son NK
b15eeb10c5
If POSTFIX_SUBMISSION_TLS, use port 587
2020-03-03 10:49:27 +01:00
Son NK
3410475223
Add POSTFIX_SUBMISSION_TLS config
2020-03-03 10:48:27 +01:00
Son NK
7e4eb9e0db
use MAILBOX_SECRET instead of FLASK_SECRET
2020-02-29 18:18:52 +07:00
Son NK
330bf91d95
remove unused code
2020-02-29 18:15:50 +07:00
Son NK
f395841770
only premium plan can add additional mailbox
2020-02-29 18:12:55 +07:00
Son NK
aeed62e95b
All users use full-mailbox
...
- remove can_use_multiple_mailbox col
- remove full_mailbox col
2020-02-29 00:03:35 +07:00
Son NK
7e1119406d
New user will have mailbox enabled by default
2020-02-28 22:53:13 +07:00
Son NK
66654a3635
prettify alias page
2020-02-28 22:39:15 +07:00
Son Nguyen Kim
959b372854
Merge pull request #96 from simple-login/api-register
...
Api register
2020-02-28 19:22:27 +07:00
Son NK
bf3cbd033e
add migration script
2020-02-28 19:09:01 +07:00
Son NK
32cd2fd650
Add related endpoints for registration
...
POST /api/auth/register
POST /api/auth/activate
POST /api/auth/reactivate
2020-02-28 19:02:01 +07:00
Son NK
c025acc826
Add AccountActivation model
2020-02-28 19:00:45 +07:00
Son Nguyen Kim
db621af1e5
Merge pull request #95 from simple-login/api-social-login
...
Add API endpoints for Facebook & Google login
2020-02-28 17:56:09 +07:00
Son NK
4d1d236066
add POST /api/auth/google
2020-02-28 17:29:33 +07:00
Son NK
02d26df292
add /api/auth/facebook
2020-02-28 17:26:28 +07:00
Son NK
16718806ba
fix
2020-02-27 22:57:37 +07:00
Son NK
91d5d1c9ac
fix test
2020-02-27 22:31:38 +07:00
Son NK
9d23fc5ab3
small refacto
2020-02-27 22:26:29 +07:00
Son NK
659861198b
make salt is nullable
2020-02-27 22:26:19 +07:00
Son NK
87b6df9408
save which social network user uses in SocialAuth table
2020-02-27 22:16:12 +07:00
Son NK
7f70dd1678
make User.password nullable, add SocialAuth model
2020-02-27 22:15:22 +07:00
Son NK
f74beb2227
Improve deleted alias page
2020-02-23 17:36:45 +07:00
Son Nguyen Kim
321b81d794
Merge pull request #92 from simple-login/manual-sub
...
Manual sub
2020-02-23 17:07:53 +07:00
Son NK
77baf60ca4
Show user current plan in settings
2020-02-23 17:02:49 +07:00
Son NK
c1bd2f83e3
Remind user that their manual sub is ending soon.
2020-02-23 17:01:23 +07:00
Son NK
fb62322794
User who has valid manual sub is premium
2020-02-23 16:31:55 +07:00
Son NK
b2eb084720
Add ManualSubscription model
2020-02-23 16:31:14 +07:00
Son NK
9958e1ab8e
only full mailbox user can set default mailbox
2020-02-23 16:17:09 +07:00
Son NK
ec3a41e53c
Prettify waiting activation page
2020-02-23 16:01:03 +07:00
Son NK
f20930ac4e
Assign random alias to default mailbox if user is full mailbox
2020-02-23 15:51:40 +07:00
Son NK
1fcbe32990
Can set a mailbox as default
2020-02-23 15:51:26 +07:00
Son NK
7febe6e15b
cannot delete default mailbox
2020-02-23 15:41:53 +07:00
Son NK
9669c04414
Add user.default_mailbox_id col
2020-02-23 15:40:41 +07:00
Son NK
0a5113962f
remove autofocus on directory & mailbox
2020-02-23 15:10:59 +07:00
Son NK
3c2762dfad
only show mailbox when mailbox email != user email
2020-02-23 14:40:37 +07:00
Son NK
6615631b4e
improve logging
2020-02-23 14:38:53 +07:00
Son NK
362032b803
full_mailbox user can use mailbox
2020-02-23 14:09:57 +07:00
Son NK
731d898774
Handle mailbox change
2020-02-23 14:08:55 +07:00
Son NK
aa784a0593
use red text for delete button
2020-02-23 14:04:20 +07:00
Son NK
571ff03115
handle case where mailbox_email is the same as user email
2020-02-23 14:04:00 +07:00
Son NK
18a6a50e38
Add Mailbox.new_email col
2020-02-23 14:02:02 +07:00
Son NK
e4bb85ac87
Full-mailbox User can change alias mailbox
2020-02-23 13:58:09 +07:00
Son NK
a467830a23
Add custom-select class to select element
2020-02-23 13:53:02 +07:00
Son NK
bc0dc0265d
Show mailbox when creating alias for user who has full_mailbox enabled
2020-02-23 13:41:59 +07:00
Son NK
70802bff17
Create User.mailboxes()
2020-02-23 13:41:27 +07:00
Son NK
f662adf237
Add User.full_mailbox col
2020-02-23 13:39:52 +07:00
Son Nguyen Kim
773e24dd9a
Merge pull request #90 from simple-login/handle-bounced
...
Handle bounced
2020-02-22 22:37:11 +07:00
Son NK
332b4559f3
Prettify unsubscribe page
2020-02-22 22:10:09 +07:00
Son NK
dddea7c54f
fix formatting
2020-02-22 21:10:31 +07:00
Son NK
f80de382fe
Prettify alias log
2020-02-22 21:09:07 +07:00
Son NK
85eca009ac
send_email accepts bounced_email (optional) param
2020-02-22 20:39:45 +07:00
Son NK
74d1f87db0
disable bounced email in alias log
2020-02-22 13:27:22 +07:00
Son NK
0e7a77130c
Add ForwardEmailLog.bounced col
2020-02-22 12:53:05 +07:00
Son NK
a9a5f145aa
fix showing unverified mailbox when creating new alias
2020-02-21 21:59:13 +07:00
Son NK
5f9ad01849
take into account the case an email is primary but not verified on github
2020-02-19 23:56:07 +07:00
Son NK
8639265946
allow user to show/hide api-key
2020-02-19 23:45:08 +07:00
Son NK
c4765a28d6
pycharm format
2020-02-19 23:44:48 +07:00
Son NK
fc09f911a4
refactor email-handler: extract try_auto_create()
2020-02-19 22:15:27 +07:00
Son NK
f1c7c83dc3
prettify help section in custom alias
2020-02-18 11:59:03 +07:00
Son NK
ab2aa2bfbb
strip contact email before adding
2020-02-18 11:54:51 +07:00
Son NK
b806d843e5
prettify custom alias page: show limits on the alias prefix
2020-02-18 11:54:35 +07:00
Son NK
8f8857704a
Add deleted alias page
2020-02-15 21:47:27 +07:00
Son NK
8bbecb2cd1
Delete wrongly-aligned notification on mobile. Improve wordings
2020-02-15 21:38:28 +07:00
Son NK
fd5e162d9b
format alias-log
2020-02-15 21:37:24 +07:00
Son NK
0ced6bbb4f
Prettify billing page
2020-02-15 21:22:46 +07:00
Son NK
83c2bb2b23
fix change email in settings
2020-02-14 09:34:19 +07:00
Son NK
641f8dfe9e
Improve settings design
2020-02-13 17:05:34 +07:00
Son NK
5c4f46fdc2
Separate email change in setting screen
2020-02-13 16:57:17 +07:00
Son NK
580dc6c8d6
do not send an email when user creates a new app
2020-02-12 18:33:39 +07:00
Son NK
7598a167d0
Improve emails that inform unauthorized user
2020-02-11 22:58:30 +07:00
Son NK
b41a61165c
use mailbox_email when notifying user attempt to send from his alias
2020-02-11 22:46:53 +07:00
Son NK
eec2020f0f
only user with can_use_multiple_mailbox enabled can use this feature
2020-02-11 22:43:32 +07:00
Son NK
c5feede87d
add User.can_use_multiple_mailbox column
2020-02-11 22:42:51 +07:00
Son NK
890bf1b3ed
Add Mailbox to pricing, remove beta badge from directory
2020-02-10 23:52:41 +07:00
Son NK
144c7fcc6c
fix verification email should be sent to mailbox
2020-02-10 23:50:18 +07:00
Son NK
fc167b8b41
Display alias mailbox on alias page
2020-02-10 23:23:02 +07:00
Son NK
b76a71819a
User can choose mailbox when creating a new alias
2020-02-10 23:19:42 +07:00
Son NK
b5d961a498
Take into account mailbox in contact manager and improve wording.
2020-02-10 23:18:19 +07:00
Son NK
8a531f6c86
User can add/delete/verify mailbox
2020-02-10 23:17:05 +07:00
Son NK
821372fdfd
add email_already_used() and use it when creating user
2020-02-10 23:16:30 +07:00
Son NK
eca2422be4
Add Mailbox model, GenEmail.mailbox_id column
2020-02-10 23:11:09 +07:00
Son Nguyen Kim
421f69b681
Merge pull request #78 from simple-login/fix-query
...
use case-insensitive query when searching for alias
2020-02-08 22:07:01 +07:00
Son NK
4cd8697abc
use case-insensitive query when searching for alias
2020-02-08 22:00:40 +07:00
Son NK
1086275af3
add_dkim_signature: make sure to delete DKIM-Signature header before
2020-02-07 22:04:27 +07:00
Son NK
dec36ceeec
Fix add_or_replace_header: make sure to delete all header occurrences before
2020-02-07 22:04:27 +07:00
Son NK
4c383663f4
Fix delete_header not deleting all header occurences
2020-02-07 22:04:27 +07:00
Son NK
e10981f85e
able to create word-based or uuid-based in /api/alias/random/new endpoint
2020-02-07 21:30:46 +07:00
Son NK
dd02a50bad
Improve wordings
...
- forgot password page
- login page
- activation email
- reset password email
2020-02-06 11:37:10 +07:00
Son NK
3092536b40
add GET /api/aliases/:alias_id/activities endpoint
2020-02-05 18:57:11 +07:00
Son NK
c5dc4fec4c
add POST /api/aliases/:alias_id/toggle endpoint
2020-02-05 18:28:54 +07:00
Son NK
1241199e23
add "enabled" to returned alias
2020-02-05 18:23:13 +07:00
Son NK
c90a4899d2
Add DELETE /api/aliases/:alias_id endpoint
2020-02-05 18:21:17 +07:00
Son NK
14b48835ae
reuse ApiKey if same device
2020-02-05 18:05:26 +07:00
Son NK
98487aba10
take into account "note" in search
2020-02-05 17:38:23 +07:00
Son NK
11b04d5e4a
user can update note in alias list page
2020-02-05 17:38:02 +07:00
Son NK
145bed893f
user can set note when creating custom alias
2020-02-05 17:36:06 +07:00
Son NK
ebadcfb175
add GenEmail.note column
2020-02-05 15:45:29 +07:00
Son NK
ec248dcae6
use another sentry project for the front-end using SENTRY_FRONT_END_DSN param
2020-02-05 14:38:29 +07:00
Son NK
6fe689dc17
use store instead of localStorage to detect whether the intro has been shown
2020-02-05 14:33:00 +07:00
Son NK
1e4bab765d
use PAGE_LIMIT in alias_log
2020-02-04 23:28:05 +07:00
Son NK
40cac56986
GET /api/aliases
2020-02-04 23:26:59 +07:00
Son NK
f7d000d34e
alert when /alias/options is used
2020-02-04 23:01:33 +07:00
Son NK
f3c61f9a61
use left-join when fetching alias
2020-02-04 23:00:55 +07:00
Son NK
c7903d534a
use null instead of "" in /api/auth/login
2020-02-04 18:32:57 +07:00
Son NK
6be5d53e4e
Merge branch 'nocdn' into welcome-email-serie
...
# Conflicts:
# cron.py
2020-02-04 17:20:35 +07:00
Son NK
cb2c6af4e4
npm qrious
2020-02-04 16:53:25 +07:00
Son NK
1c960f7c33
rename _render -> render
2020-02-03 13:47:34 +07:00
Son NK
55dcf9e6a2
black format
2020-02-03 13:47:13 +07:00
Son NK
9dd7698636
organize emails into transactional/ and com/
2020-02-03 13:47:13 +07:00
Son NK
0f4e803639
WIP send user onboarding email 1day after the account creation
2020-02-03 13:28:08 +07:00
Son NK
61229200a5
create job runner
2020-02-03 13:11:11 +07:00
Son NK
ffee8757ea
add Job model
2020-02-03 13:09:48 +07:00
Son NK
28b349e1d3
rename _render -> render
2020-02-03 13:00:58 +07:00
Son NK
e29021f46a
black format
2020-02-02 21:49:38 +07:00
Son NK
271ead133b
organize emails into transactional/ and com/
2020-02-02 21:49:22 +07:00
Son NK
cbcf93a9d9
put more space for alias
2020-02-02 21:16:00 +07:00
Son NK
a30397a88f
Improve alias page UI
...
- use 1 column layout for alias page when screen is <lg
- reduce space between search bar and header
- move alias switch to the right
2020-02-02 20:50:56 +07:00
Son NK
c1a162e68b
fix formating
2020-02-02 20:28:22 +07:00
Son NK
cb24f5cac1
make user.name optional in settings
2020-02-02 20:27:18 +07:00
Son NK
c649e3ba09
small fix
2020-01-30 15:08:26 +07:00
Son NK
8da4557325
send trial ending reminder when trial ends in 2-3 days
2020-01-30 14:19:09 +07:00
Son NK
01abc48f62
add trial information into welcome email
2020-01-30 13:54:33 +07:00
Son NK
ad1cf3af8c
fix test
2020-01-30 13:20:32 +07:00
Son NK
2ca97368f8
Handle trial period
...
- user can upgrade to lifetime if in trial or free
- free or trial user can buy a subscription
- user has all features when in trial
2020-01-30 10:53:17 +07:00
Son NK
354e5f9a67
add User.trial_end column
2020-01-30 10:10:28 +07:00
Son NK
9f95edf203
Move billing button to setting page
2020-01-30 00:29:00 +07:00
Son NK
e810c99970
fix formatting
2020-01-30 00:18:31 +07:00
Son NK
48edb85fc9
Fix email case on register
2020-01-30 00:16:04 +07:00
Son Nguyen Kim
d1baca67ff
Merge pull request #61 from simple-login/custom-alias-oauth-authorize
...
Custom alias oauth authorize
2020-01-30 00:04:22 +07:00
Son Nguyen Kim
db5bd7d196
Merge pull request #59 from simple-login/fix-alias-log
...
Fix alias log
2020-01-29 23:59:26 +07:00
Son NK
cce330a442
check if alias is not deleted before in custom-alias page
2020-01-29 23:57:20 +07:00
Son NK
6cad537931
user can choose to create alias with custom domain on the authorize page
2020-01-29 23:56:44 +07:00
Son NK
f3f98e4a75
Improve authorize page UI for non-authenticated user
2020-01-29 23:50:50 +07:00
Son NK
9e2adb42c6
Order alias log by recency
2020-01-29 10:42:46 +07:00
Son NK
fc22593bf6
avoid email loop
...
Prevent user from adding a domain that they are using for their personal email.
2020-01-28 15:16:26 +07:00
Son NK
f76bdd8fe6
set DISABLE_REGISTRATION param to disable registration
2020-01-28 11:50:25 +07:00
Son NK
86b2e3eb77
fix formatting
2020-01-28 09:31:47 +07:00
Son NK
4dfa45886e
add SUPPORT_NAME param
2020-01-28 09:29:04 +07:00
Son NK
9b9a3e7d07
fix formatting
2020-01-28 00:15:48 +07:00
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