197 Commits

Author SHA1 Message Date
Pēteris Caune
f51a0a257e
Don't delete customer data in braintree when closing account.
Need customer data to stay in braintree until the end of each month for tax reports.
2020-02-03 11:11:21 +02:00
Pēteris Caune
c4edb415a2
Removing debug statement. 2020-01-07 11:47:53 +02:00
Pēteris Caune
012ad88bb3
createsuperuser management command requires an unique email address (#318) 2020-01-07 11:46:50 +02:00
Pēteris Caune
4ee2646539
Show a red "!" in project's top navigation if any integration is not working 2020-01-03 13:15:24 +02:00
Pēteris Caune
0d2c6217d3
Auto-submit the unsubscribe confirmation form only if signature is more than 5 minutes old. Idea from https://stackoverflow.com/questions/59281750/strategies-to-prevent-email-scanners-from-activating-unsubscribe-links/59381066#59381066 2019-12-18 16:10:30 +02:00
Pēteris Caune
d6be955fa7
Silence stdout output from management commands during tests 2019-12-11 15:35:23 +02:00
Pēteris Caune
15ba415298
senddeletionnotices command skips profiles with recent last_active_date 2019-12-11 15:24:51 +02:00
Pēteris Caune
2a8e7ee766
Django 3.0 2019-12-11 13:05:25 +02:00
Pēteris Caune
f7496fb8cf
Add List-Unsubscribe-Post email header 2019-12-10 09:44:51 +02:00
Pēteris Caune
8d81d27af3
Unsubscribe links serve a form, and require HTTP POST to actually unsubscribe 2019-12-10 09:14:54 +02:00
Pēteris Caune
f9c61dad23
Fix List-Unsubscribe email header value: add angle brackets 2019-12-09 14:04:14 +02:00
Pēteris Caune
1cdb6e6d1d
Don't set CSRF cookie on first visit. Signup is exempt from CSRF protection. 2019-12-06 08:58:32 +02:00
Pēteris Caune
f74860bc0c
Add Profile.last_active_date field for more accurate inactive user detection 2019-11-19 16:29:38 +02:00
Pēteris Caune
7db11fa7aa
Fix the senddeletionnotices command to take into account the new default SMS limit. 2019-10-30 22:12:25 +02:00
Pēteris Caune
c13ec18a27
5 SMS & WhatsApp sends/mo for free plans 2019-10-30 18:31:10 +02:00
Pēteris Caune
66a6de70c0
Send email notification when monthly SMS sending limit is reached. Fixes #292 2019-10-18 17:15:02 +03:00
Pēteris Caune
163b020116
Signup form sets the "auto-login" cookie to avoid an extra click during first login 2019-10-12 20:14:57 +03:00
Pēteris Caune
2bb769f7bb
Send monthly reports on 1st of every month, not randomly during the month 2019-10-12 20:07:09 +03:00
Pēteris Caune
391921d8af
Revert deterministic username generation feature – it causes problems when users change their email address. See #290 for details. 2019-10-12 11:37:06 +03:00
Pēteris Caune
41a0871452
Generate usernames as uuid3(const, email). Prevents multiple accts with the same email. Prevent double-clicking the submit button in signup form. Fixes #290 2019-09-30 16:40:45 +03:00
Pēteris Caune
93507fcc47
Cleanup in report-body-html.html.
Add a "Send Nag" admin command for easier testing.
2019-09-03 09:24:56 +03:00
Pēteris Caune
dfee69584b
Don't show the "Sign Up" link in the login page if registration is closed. Fixes #280 2019-08-26 10:55:41 +03:00
Pēteris Caune
2489f86b38
Delete customer from Braintree when closing account. 2019-08-19 11:47:36 +03:00
Pēteris Caune
b74e56a273
Experimental: show the number of outages and total downtime in monthly reports. (#104) 2019-07-19 17:32:39 +03:00
Pēteris Caune
8f6726d1ee
Prevent email clients from opening the one-time login links. Fixes #255 2019-05-21 11:26:55 +03:00
Pēteris Caune
cdfc9840a7
Source formatted with Black 2019-05-15 14:27:50 +03:00
Pēteris Caune
b528b23996
Fix badges for tags containing special characters. Fixes #240, #237 2019-05-14 14:43:43 +03:00
Pēteris Caune
23b197526c
Password strength meter and length check in the "Set Password" form 2019-04-29 23:16:49 +03:00
Pēteris Caune
afaa8767cd
Rate limit login-with-password attempts. 2019-04-26 15:51:10 +03:00
Pēteris Caune
beae8e62b4
Rate limit team invites to 20/day 2019-04-26 09:04:51 +03:00
Pēteris Caune
d299feb420
Salt the ip address before hashing 2019-04-25 21:55:30 +03:00
Pēteris Caune
aaa3b2748e
Rate limiting for the "Log In" emails 2019-04-25 21:28:40 +03:00
Pēteris Caune
178b0ff95c
Show "Badges" and "Settings" in top navigation. Fixes #234 2019-04-02 11:51:35 +03:00
Pēteris Caune
945a66ab0a
Management command for sending inactive account notifications 2019-03-13 00:38:34 +02:00
Pēteris Caune
c89a0b4e40
Index the api_key fields. 2019-02-04 22:44:35 +02:00
Pēteris Caune
c60a33874f
Quicker admin. 2019-02-04 20:11:45 +02:00
Pēteris Caune
b0f4bd3fce
Show "grace" status in the "List of Projects" page. Fix the query for badges in top nav. 2019-02-02 00:08:00 +02:00
Pēteris Caune
62310a5181
Show overall project status in the top navigation menu and in the "Select Project" page. cc: #183 2019-02-01 23:25:12 +02:00
Pēteris Caune
886643db84
Prefetch projects in profile admin. 2019-02-01 14:33:02 +02:00
Pēteris Caune
1b085a154b
"Don't have an account? Sign Up" line in the login page. 2019-02-01 14:14:55 +02:00
Pēteris Caune
d04f3cc328
Use Project.badge_key for generating badge URLs 2019-01-31 22:51:19 +02:00
Pēteris Caune
069bc9b735
Test cases for adding project, removing project and leaving project. 2019-01-29 19:57:18 +02:00
Pēteris Caune
02609ac05e
This query can return duplicates, add distinct() 2019-01-29 19:56:43 +02:00
Pēteris Caune
4ff1654806
Don't create default projects for invited users. 2019-01-29 19:16:52 +02:00
Pēteris Caune
c1e4595ab2
If user has a single project, _redirect_after_login redirects to it. 2019-01-29 19:05:32 +02:00
Pēteris Caune
f2ae573872
Reduce the usage of request.project. 2019-01-29 16:54:51 +02:00
Pēteris Caune
08810d1fca
Check membership before removing project member. 2019-01-29 16:42:12 +02:00
Pēteris Caune
8dd91b247b
When user has no projects, don't auto-create a project. 2019-01-29 13:19:15 +02:00
Pēteris Caune
ac2a120ee8
"Create New Project" button in "My Projects" page. 2019-01-29 11:41:02 +02:00
Pēteris Caune
6b0d566922
"My Projects" page. 2019-01-29 10:59:10 +02:00