From 4e56c0b431c272ee47d99a09221cac9b98db0a88 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 1 Apr 2013 12:21:39 +0200 Subject: [PATCH] Add patch permission. --- greenmine/base/permissions.py | 4 ++++ greenmine/scrum/models.py | 1 + greenmine/scrum/permissions.py | 14 ++++++++++++++ 3 files changed, 19 insertions(+) diff --git a/greenmine/base/permissions.py b/greenmine/base/permissions.py index bb7c1d8f..cc9a4a49 100644 --- a/greenmine/base/permissions.py +++ b/greenmine/base/permissions.py @@ -16,6 +16,7 @@ def has_project_perm(user, project, perm): class BaseDetailPermission(permissions.BasePermission): get_permission = None put_permission = None + patch_permission = None delete_permission = None safe_methods = ['HEAD', 'OPTIONS'] path_to_project = [] @@ -37,6 +38,9 @@ class BaseDetailPermission(permissions.BasePermission): elif request.method == "DELETE": return has_project_perm(request.user, project_obj, self.delete_permission) + elif request.method == "PATCH": + return has_project_perm(request.user, project_obj, self.patch_permission) + return False diff --git a/greenmine/scrum/models.py b/greenmine/scrum/models.py index 71cd272c..8d5fa0d4 100644 --- a/greenmine/scrum/models.py +++ b/greenmine/scrum/models.py @@ -229,6 +229,7 @@ class UserStory(models.Model): ('can_comment_userstory', 'Can comment user stories'), ('can_view_userstory', 'Can view user stories'), ('can_change_owned_userstory', 'Can modify owned user stories'), + ('can_change_userstory', 'Can modify user stories'), ('can_add_userstory_to_milestones', 'Can add user stories to milestones'), ) diff --git a/greenmine/scrum/permissions.py b/greenmine/scrum/permissions.py index df8178e3..35f878d5 100644 --- a/greenmine/scrum/permissions.py +++ b/greenmine/scrum/permissions.py @@ -3,6 +3,7 @@ from greenmine.base.permissions import BaseDetailPermission class ProjectDetailPermission(BaseDetailPermission): get_permission = "can_view_project" put_permission = "can_change_project" + patch_permission = "can_change_project" delete_permission = "can_delete_project" safe_methods = ['HEAD', 'OPTIONS'] path_to_project = [] @@ -10,6 +11,7 @@ class ProjectDetailPermission(BaseDetailPermission): class MilestoneDetailPermission(BaseDetailPermission): get_permission = "can_view_milestone" put_permission = "can_change_milestone" + patch_permission = "can_change_milestone" delete_permission = "can_delete_milestone" safe_methods = ['HEAD', 'OPTIONS'] path_to_project = ['project'] @@ -17,6 +19,7 @@ class MilestoneDetailPermission(BaseDetailPermission): class UserStoryDetailPermission(BaseDetailPermission): get_permission = "can_view_userstory" put_permission = "can_change_userstory" + patch_permission = "can_change_userstory" delete_permission = "can_delete_userstory" safe_methods = ['HEAD', 'OPTIONS'] path_to_project = ['project'] @@ -24,6 +27,7 @@ class UserStoryDetailPermission(BaseDetailPermission): class TaskDetailPermission(BaseDetailPermission): get_permission = "can_view_task" put_permission = "can_change_task" + patch_permission = "can_change_task" delete_permission = "can_delete_task" safe_methods = ['HEAD', 'OPTIONS'] path_to_project = ['project'] @@ -31,6 +35,7 @@ class TaskDetailPermission(BaseDetailPermission): class IssueDetailPermission(BaseDetailPermission): get_permission = "can_view_issue" put_permission = "can_change_issue" + patch_permission = "can_change_issue" delete_permission = "can_delete_issue" safe_methods = ['HEAD', 'OPTIONS'] path_to_project = ['project'] @@ -38,6 +43,7 @@ class IssueDetailPermission(BaseDetailPermission): class ChangeDetailPermission(BaseDetailPermission): get_permission = "can_view_change" put_permission = "can_change_change" + patch_permission = "can_change_change" delete_permission = "can_delete_change" safe_methods = ['HEAD', 'OPTIONS'] path_to_project = ['project'] @@ -45,6 +51,7 @@ class ChangeDetailPermission(BaseDetailPermission): class ChangeAttachmentDetailPermission(BaseDetailPermission): get_permission = "can_view_changeattachment" put_permission = "can_change_changeattachment" + patch_permission = "can_change_changeattachment" delete_permission = "can_delete_changeattachment" safe_methods = ['HEAD', 'OPTIONS'] path_to_project = ['change', 'project'] @@ -52,6 +59,7 @@ class ChangeAttachmentDetailPermission(BaseDetailPermission): class SeverityDetailPermission(BaseDetailPermission): get_permission = "can_view_severity" put_permission = "can_severity_severity" + patch_permission = "can_severity_severity" delete_permission = "can_delete_severity" safe_methods = ['HEAD', 'OPTIONS'] path_to_project = ['project'] @@ -59,6 +67,7 @@ class SeverityDetailPermission(BaseDetailPermission): class IssueStatusDetailPermission(BaseDetailPermission): get_permission = "can_view_issuestatus" put_permission = "can_severity_issuestatus" + patch_permission = "can_severity_issuestatus" delete_permission = "can_delete_issuestatus" safe_methods = ['HEAD', 'OPTIONS'] path_to_project = ['project'] @@ -66,6 +75,7 @@ class IssueStatusDetailPermission(BaseDetailPermission): class TaskStatusDetailPermission(BaseDetailPermission): get_permission = "can_view_taskstatus" put_permission = "can_severity_taskstatus" + patch_permission = "can_severity_taskstatus" delete_permission = "can_delete_taskstatus" safe_methods = ['HEAD', 'OPTIONS'] path_to_project = ['project'] @@ -73,6 +83,7 @@ class TaskStatusDetailPermission(BaseDetailPermission): class UserStoryStatusDetailPermission(BaseDetailPermission): get_permission = "can_view_userstorystatus" put_permission = "can_severity_userstorystatus" + patch_permission = "can_severity_userstorystatus" delete_permission = "can_delete_userstorystatus" safe_methods = ['HEAD', 'OPTIONS'] path_to_project = ['project'] @@ -80,6 +91,7 @@ class UserStoryStatusDetailPermission(BaseDetailPermission): class PriorityDetailPermission(BaseDetailPermission): get_permission = "can_view_priority" put_permission = "can_severity_priority" + patch_permission = "can_severity_priority" delete_permission = "can_delete_priority" safe_methods = ['HEAD', 'OPTIONS'] path_to_project = ['project'] @@ -87,6 +99,7 @@ class PriorityDetailPermission(BaseDetailPermission): class IssueTypeDetailPermission(BaseDetailPermission): get_permission = "can_view_issuetype" put_permission = "can_severity_issuetype" + patch_permission = "can_severity_issuetype" delete_permission = "can_delete_issuetype" safe_methods = ['HEAD', 'OPTIONS'] path_to_project = ['project'] @@ -94,6 +107,7 @@ class IssueTypeDetailPermission(BaseDetailPermission): class PointsDetailPermission(BaseDetailPermission): get_permission = "can_view_points" put_permission = "can_severity_points" + patch_permission = "can_severity_points" delete_permission = "can_delete_points" safe_methods = ['HEAD', 'OPTIONS'] path_to_project = ['project']