Beispiel #1
0
    def before_page_load(self, node, user):
        """
        :param Node node:
        :param User user:
        :return str: Alert message
        """
        if not self.folder_id:
            return []
        figshare = node.get_addon('figshare')
        # Quit if no user authorization

        node_permissions = 'public' if node.is_public else 'private'

        if figshare.folder_path == 'project':
            if node_permissions == 'private':
                message = messages.BEFORE_PAGE_LOAD_PRIVATE_NODE_MIXED_FS.format(
                    category=node.project_or_component,
                    project_id=figshare.folder_id)
                return [message]
            else:
                message = messages.BEFORE_PAGE_LOAD_PUBLIC_NODE_MIXED_FS.format(
                    category=node.project_or_component,
                    project_id=figshare.folder_id)

        connect = FigshareClient(self.external_account.oauth_key)
        project_is_public = connect.container_is_public(
            self.folder_id, self.folder_path)

        article_permissions = 'public' if project_is_public else 'private'

        if article_permissions != node_permissions:
            message = messages.BEFORE_PAGE_LOAD_PERM_MISMATCH.format(
                category=node.project_or_component,
                node_perm=node_permissions,
                figshare_perm=article_permissions,
                figshare_id=self.folder_id,
                folder_type=self.folder_path,
            )
            if article_permissions == 'private' and node_permissions == 'public':
                message += messages.BEFORE_PAGE_LOAD_PUBLIC_NODE_PRIVATE_FS.format(
                    folder_type=self.folder_path)
            # No HTML snippets, so escape message all at once
            return [markupsafe.escape(message)]
Beispiel #2
0
    def before_page_load(self, node, user):
        """
        :param Node node:
        :param User user:
        :return str: Alert message
        """
        if not self.folder_id:
            return []
        figshare = node.get_addon('figshare')
        # Quit if no user authorization

        node_permissions = 'public' if node.is_public else 'private'

        if figshare.folder_path == 'project':
            if node_permissions == 'private':
                message = messages.BEFORE_PAGE_LOAD_PRIVATE_NODE_MIXED_FS.format(category=node.project_or_component, project_id=figshare.folder_id)
                return [message]
            else:
                message = messages.BEFORE_PAGE_LOAD_PUBLIC_NODE_MIXED_FS.format(category=node.project_or_component, project_id=figshare.folder_id)

        connect = FigshareClient(self.external_account.oauth_key)
        project_is_public = connect.container_is_public(self.folder_id, self.folder_path)

        article_permissions = 'public' if project_is_public else 'private'

        if article_permissions != node_permissions:
            message = messages.BEFORE_PAGE_LOAD_PERM_MISMATCH.format(
                category=node.project_or_component,
                node_perm=node_permissions,
                figshare_perm=article_permissions,
                figshare_id=self.folder_id,
                folder_type=self.folder_path,
            )
            if article_permissions == 'private' and node_permissions == 'public':
                message += messages.BEFORE_PAGE_LOAD_PUBLIC_NODE_PRIVATE_FS.format(folder_type=self.folder_path)
            # No HTML snippets, so escape message all at once
            return [markupsafe.escape(message)]