From b18d5e2d250c1993b231a812b0ad71c131592ea5 Mon Sep 17 00:00:00 2001 From: Guilherme Salgado Date: Tue, 12 Apr 2011 11:35:10 +0000 Subject: models: Project.is_editable to check whether a user has edit rights This is to replace the couple of places where we duplicate this same check. Signed-off-by: Jeremy Kerr --- apps/patchwork/models.py | 7 ++++++- apps/patchwork/views/__init__.py | 3 +-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/apps/patchwork/models.py b/apps/patchwork/models.py index 6959731..737e8c5 100644 --- a/apps/patchwork/models.py +++ b/apps/patchwork/models.py @@ -67,6 +67,11 @@ class Project(models.Model): def __unicode__(self): return self.name + def is_editable(self, user): + if not user.is_authenticated(): + return False + return self in user.get_profile().maintainer_projects.all() + class UserProfile(models.Model): user = models.ForeignKey(User, unique = True) primary_project = models.ForeignKey(Project, null = True, blank = True) @@ -223,7 +228,7 @@ class Patch(models.Model): if self.submitter.user == user or self.delegate == user: return True - return self.project in user.get_profile().maintainer_projects.all() + return self.project.is_editable(user) def filename(self): fname_re = re.compile('[^-_A-Za-z0-9\.]+') diff --git a/apps/patchwork/views/__init__.py b/apps/patchwork/views/__init__.py index e4043bb..bae40c6 100644 --- a/apps/patchwork/views/__init__.py +++ b/apps/patchwork/views/__init__.py @@ -43,8 +43,7 @@ def generic_list(request, project, view, data = request.POST user = request.user properties_form = None - if (user.is_authenticated() - and project in user.get_profile().maintainer_projects.all()): + if project.is_editable(user): properties_form = MultiplePatchForm(project, data = data) if request.method == 'POST' and data.get('form') == 'patchlistform': -- cgit v1.2.3