예제 #1
0
    def patch(self, request, pk, workspace_id):
        """ Assign data to a workspace.

        Args:
            request:
            pk:
            workspace_id:

        Returns:

        """
        try:
            # Get object
            data_object = self.get_object(request, pk)
            workspace_object = self.get_workspace(workspace_id)

            # Assign data to workspace
            data_api.assign(data_object, workspace_object, request.user)
            return Response({}, status=status.HTTP_200_OK)
        except Http404:
            content = {'message': 'Data or workspace not found.'}
            return Response(content, status=status.HTTP_404_NOT_FOUND)
        except AccessControlError as ace:
            content = {'message': ace.message}
            return Response(content, status=status.HTTP_403_FORBIDDEN)
        except Exception as api_exception:
            content = {'message': api_exception.message}
            return Response(content,
                            status=status.HTTP_500_INTERNAL_SERVER_ERROR)
예제 #2
0
    def patch(self, request, pk, workspace_id):
        """ Assign Data to a Workspace

        Args:

            request: HTTP request
            pk: ObjectId
            workspace_id: ObjectId

        Returns:

            - code: 200
              content: None
            - code: 403
              content: Authentication error
            - code: 404
              content: Object was not found
            - code: 500
              content: Internal server error
        """
        try:
            # Get object
            data_object = self.get_object(request, pk)
            workspace_object = self.get_workspace(workspace_id)

            # Assign data to workspace
            data_api.assign(data_object, workspace_object, request.user)
            return Response({}, status=status.HTTP_200_OK)
        except Http404:
            content = {'message': 'Data or workspace not found.'}
            return Response(content, status=status.HTTP_404_NOT_FOUND)
        except AccessControlError as ace:
            content = {'message': str(ace)}
            return Response(content, status=status.HTTP_403_FORBIDDEN)
        except Exception as api_exception:
            content = {'message': str(api_exception)}
            return Response(content,
                            status=status.HTTP_500_INTERNAL_SERVER_ERROR)
예제 #3
0
    if workspace_id is None or workspace_id == '':
        workspace = None
    else:
        try:
            workspace = workspace_api.get_by_id(str(workspace_id))
        except DoesNotExist:
            return HttpResponseBadRequest(
                "The selected workspace does not exist anymore.")
        except Exception, exc:
            return HttpResponseBadRequest("Something wrong happened.")

    for data_id in document_ids:
        try:
            data_workspace_api.assign(
                data_api.get_by_id(data_id, request.user), workspace,
                request.user)
        except AccessControlError, ace:
            return HttpResponseBadRequest(ace.message)
        except Exception, exc:
            return HttpResponseBadRequest("Something wrong happened.")

    return HttpResponse(json.dumps({}), content_type='application/javascript')


class LoadFormChangeWorkspace(View):
    """ Load the form to list the workspaces. """

    show_global_workspace = True

    def post(self, request, *args, **kwargs):