Skip to content

Commit b38ca8a

Browse files
authored
Fix/blank true (#270)
* fix: Improved the email verification message if the user hasn't verified email (#245)
1 parent 7c18002 commit b38ca8a

File tree

4 files changed

+43
-7
lines changed

4 files changed

+43
-7
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Generated by Django 5.0.3 on 2024-04-01 19:49
2+
3+
import django.db.models.deletion
4+
from django.conf import settings
5+
from django.db import migrations, models
6+
7+
8+
class Migration(migrations.Migration):
9+
10+
dependencies = [
11+
("backend", "0028_quotalimit_quotaincreaserequest_quotaoverrides_and_more"),
12+
]
13+
14+
operations = [
15+
migrations.AlterField(
16+
model_name="invoice",
17+
name="organization",
18+
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to="backend.team"),
19+
),
20+
migrations.AlterField(
21+
model_name="invoice",
22+
name="user",
23+
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
24+
),
25+
migrations.AlterField(
26+
model_name="user",
27+
name="logged_in_as_team",
28+
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to="backend.team"),
29+
),
30+
]

backend/models.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def get_queryset(self):
4444
class User(AbstractUser):
4545
objects = CustomUserManager()
4646

47-
logged_in_as_team = models.ForeignKey("Team", on_delete=models.SET_NULL, null=True)
47+
logged_in_as_team = models.ForeignKey("Team", on_delete=models.SET_NULL, null=True, blank=True)
4848
awaiting_email_verification = models.BooleanField(default=True)
4949

5050
class Role(models.TextChoices):
@@ -265,8 +265,8 @@ class Invoice(models.Model):
265265
("overdue", "Overdue"),
266266
)
267267

268-
user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
269-
organization = models.ForeignKey(Team, on_delete=models.CASCADE, null=True)
268+
user = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True)
269+
organization = models.ForeignKey(Team, on_delete=models.CASCADE, null=True, blank=True)
270270
invoice_id = models.IntegerField(unique=True, blank=True, null=True) # todo: add
271271

272272
client_to = models.ForeignKey(Client, on_delete=models.SET_NULL, blank=True, null=True)

backend/views/core/auth/create_account.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,10 @@ def post(self, request):
7979
return render(request, "pages/auth/create_account_manual.html")
8080

8181
created_user = User.objects.create_user(email=email, username=email, password=password)
82-
created_user.is_active = False
82+
created_user.awaiting_email_verification = True
8383
created_user.save()
84+
# created_user.is_active = False
85+
# created_user.save()
8486

8587
user = authenticate(request, username=email, password=password)
8688
if not user:

backend/views/core/auth/login.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from django.contrib.auth.hashers import check_password
66
from django.core.validators import validate_email
77
from django.http import HttpRequest
8-
from django.urls import reverse, resolve
8+
from django.urls import resolve
99
from django.urls.exceptions import Resolver404
1010
from django.utils.decorators import method_decorator
1111
from django.views import View
@@ -73,6 +73,10 @@ def login_manual(request: HttpRequest): # HTMX POST
7373
messages.error(request, "Incorrect email or password")
7474
return render_toast_message(request)
7575

76+
if user.awaiting_email_verification and ARE_EMAILS_ENABLED:
77+
messages.error(request, "You must verify your email before logging in.")
78+
return render_toast_message(request)
79+
7680
login(request, user)
7781
messages.success(request, "Successfully logged in")
7882

@@ -83,7 +87,7 @@ def login_manual(request: HttpRequest): # HTMX POST
8387
response["HX-Location"] = next
8488
except Resolver404:
8589
print(f"did not resolve: {next}")
86-
...
90+
response["HX-Location"] = "/dashboard/"
8791

8892
return response
8993

@@ -140,7 +144,7 @@ def send_magic_link_email(self, request: HttpRequest, user: User, uuid: str, pla
140144
message=f"""
141145
Hi {user.first_name if user.first_name else "User"},
142146
143-
A login request was made on your MyFinances account. If this was not you, please ignore
147+
A login request was made on your MyFinances account. If this was not you, please ignore
144148
this email.
145149
146150
If you would like to login, please use the following link: \n {magic_link_url}

0 commit comments

Comments
 (0)