Browse Source

Don't create default projects for invited users.

pull/217/head
Pēteris Caune 6 years ago
parent
commit
4ff1654806
No known key found for this signature in database GPG Key ID: E28D7679E9A9EDE2
2 changed files with 21 additions and 17 deletions
  1. +2
    -0
      hc/accounts/tests/test_project.py
  2. +19
    -17
      hc/accounts/views.py

+ 2
- 0
hc/accounts/tests/test_project.py View File

@ -65,6 +65,8 @@ class ProfileTestCase(BaseTestCase):
profile = member.user.profile profile = member.user.profile
self.assertEqual(profile.current_project, self.project) self.assertEqual(profile.current_project, self.project)
# The new user should not have their own project
self.assertFalse(member.user.project_set.exists())
# And an email should have been sent # And an email should have been sent
subj = ('You have been invited to join' subj = ('You have been invited to join'


+ 19
- 17
hc/accounts/views.py View File

@ -43,33 +43,35 @@ def _is_whitelisted(path):
return match.url_name in NEXT_WHITELIST return match.url_name in NEXT_WHITELIST
def _make_user(email):
def _make_user(email, with_project=True):
username = str(uuid.uuid4())[:30] username = str(uuid.uuid4())[:30]
user = User(username=username, email=email) user = User(username=username, email=email)
user.set_unusable_password() user.set_unusable_password()
user.save() user.save()
project = Project(owner=user)
project.badge_key = user.username
project.save()
project = None
if with_project:
project = Project(owner=user)
project.badge_key = user.username
project.save()
check = Check(project=project)
check.name = "My First Check"
check.save()
channel = Channel(project=project)
channel.kind = "email"
channel.value = email
channel.email_verified = True
channel.save()
channel.checks.add(check)
# Ensure a profile gets created # Ensure a profile gets created
profile = Profile.objects.for_user(user) profile = Profile.objects.for_user(user)
profile.current_project = project profile.current_project = project
profile.save() profile.save()
check = Check(project=project)
check.name = "My First Check"
check.save()
channel = Channel(project=project)
channel.kind = "email"
channel.value = email
channel.email_verified = True
channel.save()
channel.checks.add(check)
return user return user
@ -275,7 +277,7 @@ def project(request, code):
try: try:
user = User.objects.get(email=email) user = User.objects.get(email=email)
except User.DoesNotExist: except User.DoesNotExist:
user = _make_user(email)
user = _make_user(email, with_project=False)
project.invite(user) project.invite(user)
ctx["team_member_invited"] = email ctx["team_member_invited"] = email


Loading…
Cancel
Save