[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