forked from GithubBackups/healthchecks
TeamAccessMiddleware: create Profile object if it is missing. This solves problems for users created with "manage.py createsuperuser". Fixes #77
This commit is contained in:
parent
c8bcb23fd6
commit
ee3f49c89b
@ -10,7 +10,12 @@ class TeamAccessMiddleware(object):
|
|||||||
teams_q = teams_q.select_related("user")
|
teams_q = teams_q.select_related("user")
|
||||||
request.teams = list(teams_q)
|
request.teams = list(teams_q)
|
||||||
|
|
||||||
profile = request.user.profile
|
try:
|
||||||
|
profile = request.user.profile
|
||||||
|
except Profile.DoesNotExist:
|
||||||
|
profile = Profile(user=request.user)
|
||||||
|
profile.save()
|
||||||
|
|
||||||
if profile.current_team:
|
if profile.current_team:
|
||||||
request.team = profile.current_team
|
request.team = profile.current_team
|
||||||
else:
|
else:
|
||||||
|
17
hc/accounts/tests/test_team_access_middleware.py
Normal file
17
hc/accounts/tests/test_team_access_middleware.py
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
from django.contrib.auth.models import User
|
||||||
|
from django.test import TestCase
|
||||||
|
from hc.accounts.models import Profile
|
||||||
|
|
||||||
|
|
||||||
|
class TeamAccessMiddlewareTestCase(TestCase):
|
||||||
|
|
||||||
|
def test_it_handles_missing_profile(self):
|
||||||
|
user = User(username="ned", email="ned@example.org")
|
||||||
|
user.set_password("password")
|
||||||
|
user.save()
|
||||||
|
|
||||||
|
self.client.login(username="ned@example.org", password="password")
|
||||||
|
r = self.client.get("/about/")
|
||||||
|
self.assertEqual(r.status_code, 200)
|
||||||
|
|
||||||
|
self.assertEqual(Profile.objects.count(), 1)
|
Loading…
x
Reference in New Issue
Block a user