Ejemplo n.º 1
0
    def delete(self, request, *args, **kwargs):
        user = None
        try:
            user = self.get_object()
        except AttributeError:
            raise Http404(
                '{} with id "{}" not found.'.format(
                    self.context_object_name.title(),
                    self.kwargs.get('guid')
                ))
        if user:
            for node in user.contributor_to:
                if node.is_public and not node.is_registration:
                    node.is_public = False
                    node.save()
                    update_admin_log(
                        user_id=request.user.id,
                        object_id=node._id,
                        object_repr='Node',
                        message='Node {} made private when user {} marked as spam.'.format(node._id, user._id),
                        action_flag=NODE_MADE_PRIVATE
                    )
                    # Log invisibly on the OSF.
                    osf_log = NodeLog(
                        action=NodeLog.MADE_PRIVATE,
                        user=None,
                        params={
                            'node': node._id,
                        },
                        date=datetime.utcnow(),
                        should_hide=True,
                    )
                    osf_log.save()

        return super(SpamUserDeleteView, self).delete(request, *args, **kwargs)