]> git.ozlabs.org Git - patchwork/commitdiff
models: Project.is_editable to check whether a user has edit rights
authorGuilherme Salgado <guilherme.salgado@linaro.org>
Tue, 12 Apr 2011 11:35:10 +0000 (11:35 +0000)
committerJeremy Kerr <jk@ozlabs.org>
Thu, 14 Apr 2011 06:55:33 +0000 (14:55 +0800)
This is to replace the couple of places where we duplicate this same
check.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
apps/patchwork/models.py
apps/patchwork/views/__init__.py

index 69597318b9a1acfb86218bd998b04ef57818a3c2..737e8c5b28ebf03785d6e63d8840bcc6a962f28d 100644 (file)
@@ -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\.]+')
index e4043bbb5a2585202cd409eaf80a8754e7775f49..bae40c6d6eb51cac6ee9ef303070e2a69ed80586 100644 (file)
@@ -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':