def delete(self, request, pk=None): profile = self.get_user(pk) allow_delete_user(request.user, profile) if request.method == 'POST': with transaction.atomic(): profile.lock() if request.data.get('with_content'): profile.delete_content() else: categories_to_sync = set() threads = profile.thread_set.select_related('category', 'first_post') for thread in threads.filter(is_hidden=False).iterator(): categories_to_sync.add(thread.category_id) hide_thread(request, thread) posts = profile.post_set.select_related('category', 'thread', 'thread__category') for post in posts.filter(is_hidden=False).iterator(): categories_to_sync.add(post.category_id) hide_post(request.user, post) post.thread.synchronize() post.thread.save() categories = Category.objects.filter(id__in=categories_to_sync) for category in categories.iterator(): category.synchronize() category.save() profile.delete() return Response({'detail': 'ok'})
def delete(self, request, pk=None): profile = self.get_user(pk) allow_delete_user(request.user, profile) if request.method == 'POST': with transaction.atomic(): profile.lock() if request.data.get('with_content'): profile.delete_content() else: categories_to_sync = set() threads = profile.thread_set.select_related('first_post') for thread in threads.filter(is_hidden=False).iterator(): categories_to_sync.add(thread.category_id) hide_thread(request.user, thread) posts = profile.post_set.select_related('thread') for post in posts.filter(is_hidden=False).iterator(): categories_to_sync.add(post.category_id) hide_post(request.user, post) post.thread.synchronize() post.thread.save() categories = Category.objects.filter( id__in=categories_to_sync) for category in categories.iterator(): category.synchronize() category.save() profile.delete() return Response({'detail': 'ok'})
def patch_is_hidden(request, event, value): if value: allow_hide_event(request.user, event) moderation.hide_post(request.user, event) else: allow_unhide_event(request.user, event) moderation.unhide_post(request.user, event) return {'is_hidden': event.is_hidden}
def patch_is_hidden(request, post, value): if value is True: allow_hide_post(request.user, post) moderation.hide_post(request.user, post) elif value is False: allow_unhide_post(request.user, post) moderation.unhide_post(request.user, post) return {'is_hidden': post.is_hidden}
def patch_is_hidden(request, event, value): if event.acl.get('can_hide'): if value: moderation.hide_post(request.user, event) else: moderation.unhide_post(request.user, event) return {'is_hidden': event.is_hidden} else: raise PermissionDenied(_("You don't have permission to hide this event."))