def delete(self, request, *args, **kwargs): try: node, user = self.get_object() if node.remove_contributor(user, None, log=False): update_admin_log( user_id=self.request.user.id, object_id=node.pk, object_repr="Contributor", message="User {} removed from node {}.".format(user.pk, node.pk), action_flag=CONTRIBUTOR_REMOVED, ) # Log invisibly on the OSF. osf_log = NodeLog( action=NodeLog.CONTRIB_REMOVED, user=None, params={"project": node.parent_id, "node": node.pk, "contributors": user.pk}, date=datetime.utcnow(), should_hide=True, ) osf_log.save() except AttributeError: return page_not_found( request, AttributeError( '{} with id "{}" not found.'.format(self.context_object_name.title(), kwargs.get("node_id")) ), ) return redirect(reverse_node(self.kwargs.get("node_id")))
def delete(self, request, *args, **kwargs): try: node, user = self.get_object() if node.remove_contributor(user, None, log=False): update_admin_log( user_id=self.request.user.id, object_id=node.pk, object_repr='Contributor', message='User {} removed from {} {}.'.format( user.pk, node.__class__.__name__.lower(), node.pk ), action_flag=CONTRIBUTOR_REMOVED ) # Log invisibly on the OSF. self.add_contributor_removed_log(node, user) except AttributeError: return page_not_found( request, AttributeError( '{} with id "{}" not found.'.format( self.context_object_name.title(), self.kwargs.get('guid') ) ) ) if isinstance(node, Node): return redirect(reverse_node(self.kwargs.get('guid')))
def post(self, request, *args, **kwargs): stuck_reg = self.get_object() if Registration.find_failed_registrations().filter(id=stuck_reg.id).exists(): stuck_reg.delete_registration_tree(save=True) messages.success(request, 'The registration has been deleted') else: messages.error(request, 'This registration may not technically be stuck,' ' if the problem persists get a developer to fix it.') return redirect(reverse_node(self.kwargs.get('guid')))
def delete(self, request, *args, **kwargs): node = self.get_object() update_node_share(node) update_admin_log( user_id=self.request.user.id, object_id=node._id, object_repr='Node', message='Node Reindexed (SHARE): {}'.format(node._id), action_flag=REINDEX_SHARE ) return redirect(reverse_node(self.kwargs.get('guid')))
def delete(self, request, *args, **kwargs): node = self.get_object() search.search.update_node(node, bulk=False, async=False) update_admin_log( user_id=self.request.user.id, object_id=node._id, object_repr='Node', message='Node Reindexed (Elastic): {}'.format(node._id), action_flag=REINDEX_ELASTIC ) return redirect(reverse_node(self.kwargs.get('guid')))
def delete(self, request, *args, **kwargs): node = self.get_object() node.confirm_ham(save=True) update_admin_log( user_id=self.request.user.id, object_id=node._id, object_repr='Node', message='Confirmed HAM: {}'.format(node._id), action_flag=CONFIRM_HAM ) return redirect(reverse_node(self.kwargs.get('guid')))
def delete(self, request, *args, **kwargs): node = self.get_object() osf_admin_change_status_identifier(node, 'unavailable | spam') node.confirm_spam(save=True) update_admin_log( user_id=self.request.user.id, object_id=node._id, object_repr='Node', message='Confirmed SPAM: {}'.format(node._id), action_flag=CONFIRM_SPAM ) return redirect(reverse_node(self.kwargs.get('guid')))
def delete(self, request, *args, **kwargs): try: node = self.get_object() flag = None osf_flag = None message = None if node.is_deleted: node.is_deleted = False node.deleted_date = None node.deleted = None flag = NODE_RESTORED message = 'Node {} restored.'.format(node.pk) osf_flag = NodeLog.NODE_CREATED elif not node.is_registration: node.is_deleted = True node.deleted = timezone.now() node.deleted_date = node.deleted flag = NODE_REMOVED message = 'Node {} removed.'.format(node.pk) osf_flag = NodeLog.NODE_REMOVED node.save() if flag is not None: update_admin_log( user_id=self.request.user.id, object_id=node.pk, object_repr='Node', message=message, action_flag=flag ) if osf_flag is not None: # Log invisibly on the OSF. osf_log = NodeLog( action=osf_flag, user=None, params={ 'project': node.parent_id, }, date=timezone.now(), should_hide=True, ) osf_log.save() except AttributeError: return page_not_found( request, AttributeError( '{} with id "{}" not found.'.format( self.context_object_name.title(), kwargs.get('guid') ) ) ) return redirect(reverse_node(self.kwargs.get('guid')))
def delete(self, request, *args, **kwargs): node = self.get_object() node.confirm_ham(save=True) osf_admin_change_status_identifier(node) update_admin_log( user_id=self.request.user.id, object_id=node._id, object_repr=self.object_type, message='Confirmed HAM: {}'.format(node._id), action_flag=CONFIRM_HAM ) if isinstance(node, Node): return redirect(reverse_node(self.kwargs.get('guid')))
def delete(self, request, *args, **kwargs): try: node = self.get_object() flag = None osf_flag = None message = None if node.is_deleted: node.is_deleted = False node.deleted_date = None flag = NODE_RESTORED message = 'Node {} restored.'.format(node.pk) osf_flag = NodeLog.NODE_CREATED elif not node.is_registration: node.is_deleted = True node.deleted_date = timezone.now() flag = NODE_REMOVED message = 'Node {} removed.'.format(node.pk) osf_flag = NodeLog.NODE_REMOVED node.save() if flag is not None: update_admin_log( user_id=self.request.user.id, object_id=node.pk, object_repr='Node', message=message, action_flag=flag ) if osf_flag is not None: # Log invisibly on the OSF. osf_log = NodeLog( action=osf_flag, user=None, params={ 'project': node.parent_id, }, date=timezone.now(), should_hide=True, ) osf_log.save() except AttributeError: return page_not_found( request, AttributeError( '{} with id "{}" not found.'.format( self.context_object_name.title(), kwargs.get('guid') ) ) ) return redirect(reverse_node(self.kwargs.get('guid')))
def post(self, request, *args, **kwargs): node = Node.load(self.kwargs.get('guid')) or Registration.load( self.kwargs.get('guid')) new_private_cap = request.POST.get('private-cap-input') new_public_cap = request.POST.get('public-cap-input') if float(new_private_cap) != (node.custom_storage_usage_limit_private or STORAGE_LIMIT_PRIVATE): node.custom_storage_usage_limit_private = new_private_cap if float(new_public_cap) != (node.custom_storage_usage_limit_public or STORAGE_LIMIT_PUBLIC): node.custom_storage_usage_limit_public = new_public_cap node.save() return redirect(reverse_node(self.kwargs.get('guid')))
def post(self, request, *args, **kwargs): from osf.management.commands.force_archive import archive, verify stuck_reg = self.get_object() if verify(stuck_reg): try: archive(stuck_reg) messages.success(request, 'Registration archive processes has restarted') except Exception as exc: messages.error(request, 'This registration cannot be unstuck due to {} ' 'if the problem persists get a developer to fix it.'.format(exc.__class__.__name__)) else: messages.error(request, 'This registration may not technically be stuck,' ' if the problem persists get a developer to fix it.') return redirect(reverse_node(self.kwargs.get('guid')))
def delete(self, request, *args, **kwargs): try: node, user = self.get_object() if node.remove_contributor(user, None, log=False): update_admin_log(user_id=self.request.user.id, object_id=node.pk, object_repr='Contributor', message='User {} removed from {} {}.'.format( user.pk, node.__class__.__name__.lower(), node.pk), action_flag=CONTRIBUTOR_REMOVED) # Log invisibly on the OSF. self.add_contributor_removed_log(node, user) except AttributeError: return page_not_found( request, AttributeError('{} with id "{}" not found.'.format( self.context_object_name.title(), self.kwargs.get('guid')))) if isinstance(node, Node): return redirect(reverse_node(self.kwargs.get('guid')))
def post(self, request, *args, **kwargs): validation_only = (request.POST.get('validation_only', False) == 'True') end_date = request.POST.get('date') user = request.user registration = self.get_object() try: end_date = pytz.utc.localize(datetime.strptime(end_date, '%m/%d/%Y')) except ValueError: return HttpResponse('Please enter a valid date.', status=400) try: if validation_only: validate_embargo_date(registration, user, end_date) else: change_embargo_date(registration, user, end_date) except ValidationError as e: return HttpResponse(e, status=409) except PermissionDenied as e: return HttpResponse(e, status=403) return redirect(reverse_node(self.kwargs.get('guid')))
def delete(self, request, *args, **kwargs): try: node, user = self.get_object() if node.remove_contributor(user, None, log=False): update_admin_log( user_id=self.request.user.id, object_id=node.pk, object_repr='Contributor', message='User {} removed from node {}.'.format( user.pk, node.pk ), action_flag=CONTRIBUTOR_REMOVED ) # Log invisibly on the OSF. osf_log = NodeLog( action=NodeLog.CONTRIB_REMOVED, user=None, params={ 'project': node.parent_id, 'node': node.pk, 'contributors': user.pk }, date=timezone.now(), should_hide=True, ) osf_log.save() except AttributeError: return page_not_found( request, AttributeError( '{} with id "{}" not found.'.format( self.context_object_name.title(), kwargs.get('node_id') ) ) ) return redirect(reverse_node(self.kwargs.get('node_id')))
def success_url(self): return reverse_node(self.guid)
def remove_node(request, guid): node = Node.load(guid) node.is_deleted = True # Auth required for node.deleted_date = datetime.utcnow() node.save() return redirect(reverse_node(guid))
def delete(self, request, *args, **kwargs): node = self.get_object() # TODO: update to force set private node.set_privacy('private') if isinstance(node, (Node, Registration)): return redirect(reverse_node(self.kwargs.get('guid')))
def restore_node(request, guid): node = Node.load(guid) node.is_deleted = False node.deleted_date = None node.save() return redirect(reverse_node(guid))
def delete(self, request, *args, **kwargs): node = self.get_object() update_storage_usage_cache(node.id, node._id) if isinstance(node, (Node, Registration)): return redirect(reverse_node(self.kwargs.get('guid')))
def remove_contributor(request, node_id, user_id): user = User.load(user_id) node = Node.load(node_id) node.remove_contributor(user, None, log=False) # TODO: log on OSF as admin return redirect(reverse_node(node_id))