Esempio n. 1
0
 def test_get_all_by_user_returns_owned_data(
         self, get_all_workspaces_with_read_access_by_user):
     mock_user = _create_user('1')
     data_list = data_api.get_all_by_user(mock_user)
     get_all_workspaces_with_read_access_by_user.return_value = []
     self.assertTrue(len(data_list) == 3)
     self.assertTrue(data.id == '1' for data in data_list)
Esempio n. 2
0
 def test_data_get_all_api_without_sorting_param_use_default_data_sorting_setting(self):
     # Arrange
     mock_user = _create_user('1', is_superuser=True)
     # Act
     data = data_api.get_all_by_user(mock_user)
     # Assert
     self.assertListEqual(list(data), [self.fixture.data_1, self.fixture.data_3, self.fixture.data_5])
Esempio n. 3
0
    def get(self, request):
        """ Get all user data.

        Query Params:
            template: template id
            title: title

        Args:
            request:

        Returns:

        """
        try:
            # Get object
            data_object_list = data_api.get_all_by_user(request.user)

            # Apply filters
            template = self.request.query_params.get('template', None)
            if template is not None:
                data_object_list = data_object_list.filter(template=template)

            title = self.request.query_params.get('title', None)
            if title is not None:
                data_object_list = data_object_list.filter(title=title)

            # Serialize object
            data_serializer = DataSerializer(data_object_list, many=True)

            # Return response
            return Response(data_serializer.data, status=status.HTTP_200_OK)
        except Exception as api_exception:
            content = {'message': api_exception.message}
            return Response(content,
                            status=status.HTTP_500_INTERNAL_SERVER_ERROR)
Esempio n. 4
0
    def get(self, request):
        """Get all user Data

        Url Parameters:

            workspace: workspace_id
            template: template_id
            title: document_title

        Examples:

            ../data/
            ../data?workspace=[workspace_id]
            ../data?template=[template_id]
            ../data?title=[document_title]
            ../data?template=[template_id]&title=[document_title]

        Args:

            request: HTTP request

        Returns:

            - code: 200
              content: List of data
            - code: 500
              content: Internal server error
        """
        try:
            # Get object
            data_object_list = data_api.get_all_by_user(request.user)

            # Apply filters
            workspace = self.request.query_params.get("workspace", None)
            if workspace is not None:
                data_object_list = data_object_list.filter(workspace=workspace)

            template = self.request.query_params.get("template", None)
            if template is not None:
                data_object_list = data_object_list.filter(template=template)

            title = self.request.query_params.get("title", None)
            if title is not None:
                data_object_list = data_object_list.filter(title=title)

            # Serialize object
            data_serializer = self.serializer(data_object_list, many=True)

            # Return response
            return Response(data_serializer.data, status=status.HTTP_200_OK)
        except Exception as api_exception:
            content = {"message": str(api_exception)}
            return Response(content,
                            status=status.HTTP_500_INTERNAL_SERVER_ERROR)
Esempio n. 5
0
 def test_get_all_by_user_as_superuser_returns_own_data(self):
     mock_user = _create_user('1', is_superuser=True)
     data_list = data_api.get_all_by_user(mock_user)
     self.assertTrue(len(data_list) == 3)
     self.assertTrue(data.user_id == '1' for data in data_list)
Esempio n. 6
0
 def test_get_all_by_user_returns_no_data_if_owns_zero(
         self, get_all_workspaces_with_read_access_by_user):
     mock_user = _create_user('3')
     data_list = data_api.get_all_by_user(mock_user)
     get_all_workspaces_with_read_access_by_user.return_value = []
     self.assertTrue(len(data_list) == 0)
        if workspace is not None and workspace_api.is_workspace_public(
                workspace) and not self.allow_change_workspace_if_public:
            return False
        return True

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

        # Get records
        if self.administration:
            try:
                loaded_data = data_api.get_all(request.user,
                                               '-last_modification_date')
            except AccessControlError, ace:
                loaded_data = []
        else:
            loaded_data = data_api.get_all_by_user(request.user,
                                                   '-last_modification_date')

        # Paginator
        page = request.GET.get('page', 1)
        results_paginator = ResultsPaginator.get_results(
            loaded_data, page, settings.RECORD_PER_PAGE_PAGINATION)

        # Data context
        results_paginator.object_list = self._format_data_context(
            results_paginator.object_list)

        # Add user_form for change owner
        user_form = UserForm(request.user)
        context = {
            'number_total':
            len(loaded_data),
    def get(self, request, *args, **kwargs):

        # Get records
        if self.administration:
            try:
                loaded_data = data_api.get_all(request.user)

            except AccessControlError as ace:
                loaded_data = data_api.get_none()

        else:
            loaded_data = data_api.get_all_by_user(request.user)

        # Paginator
        page = request.GET.get("page", 1)
        results_paginator = ResultsPaginator.get_results(
            loaded_data, page, settings.RECORD_PER_PAGE_PAGINATION
        )

        # Data context
        try:
            results_paginator.object_list = self._format_data_context(
                results_paginator.object_list
            )
        except:
            results_paginator.object_list = []

        # Add user_form for change owner
        user_form = UserForm(request.user)
        context = {
            "number_total": loaded_data.count(),
            "user_data": results_paginator,
            "user_form": user_form,
            "document": self.document,
            "template": self.data_template,
            "action_form": ActionForm(
                [
                    ("1", "Delete selected records"),
                    ("2", "Change owner of selected records"),
                ]
            ),
            "menu": self.administration,
            "administration": self.administration,
            "share_pid_button": "core_linked_records_app" in settings.INSTALLED_APPS,
        }

        if self.administration:
            context.update(
                {
                    "username_list": get_id_username_dict(user_api.get_all_users()),
                }
            )

        modals = [
            "core_main_app/user/workspaces/list/modals/assign_workspace.html",
            dashboard_constants.MODALS_COMMON_DELETE,
            dashboard_constants.MODALS_COMMON_CHANGE_OWNER,
        ]

        assets = self._get_assets()

        if context["share_pid_button"]:
            modals.append("core_linked_records_app/user/sharing/data_detail/modal.html")

            assets["js"] += [
                {
                    "path": "core_main_app/user/js/sharing_modal.js",
                    "is_raw": False,
                },
                {
                    "path": "core_linked_records_app/user/js/sharing/common_list.js",
                    "is_raw": False,
                },
                {
                    "path": "core_linked_records_app/user/js/sharing/data_list.js",
                    "is_raw": False,
                },
            ]

        return self.common_render(
            request, self.template, context=context, assets=assets, modals=modals
        )