From 8dd91b247b26032432455b6351e904ed0c16b878 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C4=93teris=20Caune?= Date: Tue, 29 Jan 2019 13:19:15 +0200 Subject: [PATCH] When user has no projects, don't auto-create a project. --- hc/accounts/middleware.py | 3 --- hc/accounts/models.py | 7 ------- hc/accounts/views.py | 3 +++ hc/front/views.py | 5 +++-- hc/test.py | 8 +++++++- templates/base.html | 4 +++- 6 files changed, 16 insertions(+), 14 deletions(-) diff --git a/hc/accounts/middleware.py b/hc/accounts/middleware.py index 1f6e6bf5..87f98cd4 100644 --- a/hc/accounts/middleware.py +++ b/hc/accounts/middleware.py @@ -10,9 +10,6 @@ class TeamAccessMiddleware(object): return self.get_response(request) profile = Profile.objects.for_user(request.user) - if profile.current_project is None: - profile.current_project = profile.get_own_project() - profile.save() request.profile = profile request.project = profile.current_project diff --git a/hc/accounts/models.py b/hc/accounts/models.py index b58b562a..a7fe9ab4 100644 --- a/hc/accounts/models.py +++ b/hc/accounts/models.py @@ -193,13 +193,6 @@ class Profile(models.Model): self.save() return True - def get_own_project(self): - project = self.user.project_set.first() - if project is None: - project = Project.objects.create(owner=self.user) - - return project - class Project(models.Model): code = models.UUIDField(default=uuid.uuid4, unique=True) diff --git a/hc/accounts/views.py b/hc/accounts/views.py index 929fdcb1..4c4a1a2f 100644 --- a/hc/accounts/views.py +++ b/hc/accounts/views.py @@ -204,6 +204,9 @@ def profile(request): profile.current_project = None profile.save() + if request.project == project: + request.project = None + Member.objects.filter(project=project, user=request.user).delete() ctx["left_project"] = project diff --git a/hc/front/views.py b/hc/front/views.py index 1b0ca833..52e69e2a 100644 --- a/hc/front/views.py +++ b/hc/front/views.py @@ -83,7 +83,7 @@ def _get_project_for_user(request, project_code): """ Return true if current user has access to the specified account. """ if request.user.is_superuser: - q = Project.objects.all + q = Project.objects.all() else: q = request.profile.projects() @@ -434,7 +434,7 @@ def _get_events(check, limit): def log(request, code): check = _get_check_for_user(request, code) - limit = request.project.owner_profile.ping_log_limit + limit = check.project.owner_profile.ping_log_limit ctx = { "check": check, "events": _get_events(check, limit), @@ -486,6 +486,7 @@ def status_single(request, code): @login_required +# @project_required def channels(request): if request.method == "POST": code = request.POST["channel"] diff --git a/hc/test.py b/hc/test.py index 5ec657a4..eb6ebc2b 100644 --- a/hc/test.py +++ b/hc/test.py @@ -43,4 +43,10 @@ class BaseTestCase(TestCase): self.charlie.set_password("password") self.charlie.save() - Profile.objects.create(user=self.charlie) + self.charlies_project = Project(owner=self.charlie) + self.charlies_project.badge_key = self.charlie.username + self.charlies_project.save() + + self.charlies_profile = Profile(user=self.charlie) + self.charlies_profile.current_project = self.charlies_project + self.charlies_profile.save() diff --git a/templates/base.html b/templates/base.html index b09686b6..e6f5493c 100644 --- a/templates/base.html +++ b/templates/base.html @@ -118,8 +118,10 @@ {% if check %} {{ check.project }} - {% else %} + {% elif request.project %} {{ request.project }} + {% else %} + {{ request.user.email }} {% endif %}