Issue #16: Implement the API for memberships

remotes/origin/enhancement/email-actions
David Barragán Merino 2013-10-22 21:36:33 +02:00
parent cc8543c2e6
commit a08986dd01
3 changed files with 17 additions and 1 deletions

View File

@ -30,6 +30,12 @@ class ProjectViewSet(ModelCrudViewSet):
super(ProjectViewSet, self).pre_save(obj)
class MembershipViewSet(ModelCrudViewSet):
model = models.Membership
serializer_class = serializers.MembershipSerializer
permission_classes = (IsAuthenticated, permissions.MembershipPermission)
# User Stories commin ViewSets
class PointsViewSet(ModelListViewSet):

View File

@ -12,6 +12,15 @@ class ProjectPermission(BasePermission):
path_to_project = []
class MembershipPermission(BasePermission):
get_permission = "view_membership"
put_permission = "change_membership"
patch_permission = "change_membership"
delete_permission = "delete_membership"
safe_methods = ["HEAD", "OPTIONS"]
path_to_project = ["project"]
class AttachmentPermission(BasePermission):
get_permission = "view_attachment"
put_permission = "change_attachment"

View File

@ -3,7 +3,7 @@
from greenmine.base import routers
from greenmine.base.users.api import AuthViewSet, RolesViewSet, UsersViewSet
from greenmine.base.searches.api import SearchViewSet
from greenmine.projects.api import ProjectViewSet
from greenmine.projects.api import ProjectViewSet, MembershipViewSet
from greenmine.projects.milestones.api import MilestoneViewSet
from greenmine.projects.userstories.api import UserStoryViewSet, UserStoryAttachmentViewSet
from greenmine.projects.tasks.api import TaskViewSet, TaskAttachmentViewSet
@ -25,6 +25,7 @@ router.register(r"search", SearchViewSet, base_name="search")
# greenmine.projects
router.register(r"projects", ProjectViewSet, base_name="projects")
router.register(r"memberships", MembershipViewSet, base_name="memberships")
# greenmine.projects.milestones
router.register(r"milestones", MilestoneViewSet, base_name="milestones")