[Patchew-devel] [PATCH 1/2] api: Expose project properties to importers

Fam Zheng famz at redhat.com
Tue Mar 27 18:17:55 UTC 2018


Importers need it for project update. Introduce and use
Project.properties_visible() method to fix the permission problem.

Signed-off-by: Fam Zheng <famz at redhat.com>
---
 api/models.py | 4 ++++
 api/views.py  | 4 ++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/api/models.py b/api/models.py
index a672bd4..955a91c 100644
--- a/api/models.py
+++ b/api/models.py
@@ -134,6 +134,10 @@ class Project(models.Model):
             return True
         return False
 
+    def properties_visible(self, user):
+        return self.maintained_by(user) or \
+               user.groups.filter(name='importers').exists()
+
     def recognizes(self, m):
         """Test if @m is considered a message in this project"""
         addr_ok = False
diff --git a/api/views.py b/api/views.py
index 2d84be8..122a4d9 100644
--- a/api/views.py
+++ b/api/views.py
@@ -85,7 +85,7 @@ class ListProjectView(APIView):
                 "git": p.git,
                 "description": p.description,
             }
-            if p.maintained_by(request.user):
+            if p.properties_visible(request.user):
                 ret["properties"] = p.get_properties()
             return ret
 
@@ -111,7 +111,7 @@ class GetProjectPropertiesView(APIView):
 
     def handle(self, request, project):
         po = Project.objects.get(name=project)
-        if not po.maintained_by(request.user):
+        if not po.properties_visible(request.user):
             raise PermissionDenied("Access denied to this project")
         return po.get_properties()
 
-- 
2.14.3




More information about the Patchew-devel mailing list