def block_user(request, username): user = get_object_or_404(User, **{username_field: username}) if not perms.may_block_user(request.user, user): raise PermissionDenied user.is_active = False user.save() if 'block_and_delete_messages' in request.POST: # individually delete each post and empty topic to fire method # with forum/topic counters recalculation posts = Post.objects.filter(user=user) topics = posts.values('topic_id').distinct() forums = posts.values('topic__forum_id').distinct() posts.delete() Topic.objects.filter(user=user).delete() for t in topics: try: Topic.objects.get(id=t['topic_id']).update_counters() except Topic.DoesNotExist: pass for f in forums: try: Forum.objects.get(id=f['topic__forum_id']).update_counters() except Forum.DoesNotExist: pass msg = _('User successfuly blocked') messages.success(request, msg, fail_silently=True) return redirect('pybb:index')
def block_user(request, username): user = get_object_or_404(User, **{username_field: username}) if not perms.may_block_user(request.user, user): raise PermissionDenied user.is_active = False user.save() if "block_and_delete_messages" in request.POST: # individually delete each post and empty topic to fire method # with forum/topic counters recalculation posts = Post.objects.filter(user=user) topics = posts.values("topic_id").distinct() forums = posts.values("topic__forum_id").distinct() posts.delete() Topic.objects.filter(user=user).delete() for t in topics: try: Topic.objects.get(id=t["topic_id"]).update_counters() except Topic.DoesNotExist: pass for f in forums: try: Forum.objects.get(id=f["topic__forum_id"]).update_counters() except Forum.DoesNotExist: pass msg = _("User successfuly blocked") messages.success(request, msg, fail_silently=True) return redirect("pybb:index")
def block_user(request, username): ''' Will have problems as blocking at user level will result in the same user account against another community being blocked. ''' user = get_object_or_404(User, **{username_field: username}) if not perms.may_block_user(request.user, user): raise PermissionDenied user.is_active = False user.save() if 'block_and_delete_messages' in request.POST: # individually delete each post and empty topic to fire method # with forum/topic counters recalculation posts = Post.objects.filter(user=user) topics = posts.values('topic_id').distinct() forums = posts.values('topic__forum_id').distinct() posts.delete() Topic.objects.filter(user=user).delete() for t in topics: try: Topic.objects.get(id=t['topic_id']).update_counters() except Topic.DoesNotExist: pass for f in forums: try: Forum.objects.get(id=f['topic__forum_id']).update_counters() except Forum.DoesNotExist: pass msg = _('User successfuly blocked') messages.success(request, msg, fail_silently=True) return redirect('pybb:index')
def unblock_user(request, username): user = get_object_or_404(User, **{username_field: username}) if not perms.may_block_user(request.user, user): raise PermissionDenied user.is_active = True user.save() msg = _('User successfuly unblocked') messages.success(request, msg, fail_silently=True) return redirect('pybb:index')
def block_user(request, username): user = get_object_or_404(get_user_model(), username=username) if not perms.may_block_user(request.user, user): raise PermissionDenied user.is_active = False user.save() msg = _('User successfuly blocked') messages.success(request, msg, fail_silently=True) return redirect('pybb:index')
def block_user(request, username): user = get_object_or_404(User, **{username_field: username}) if not perms.may_block_user(request.user, user): raise PermissionDenied user.is_active = False user.save() if 'block_and_delete_messages' in request.POST: # individually delete each post and empty topic to fire method # with forum/topic counters recalculation for p in Post.objects.filter(user=user): p.delete() for t in Topic.objects.annotate(cnt=Count('posts')).filter(cnt=0): t.delete() msg = _('User successfuly blocked') messages.success(request, msg, fail_silently=True) return redirect('pybb:index')