Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ability for mods to remove votes #5569

Open
5 tasks done
DraconicNEO opened this issue Mar 30, 2025 · 15 comments
Open
5 tasks done

Add ability for mods to remove votes #5569

DraconicNEO opened this issue Mar 30, 2025 · 15 comments
Labels
area: moderation enhancement New feature or request
Milestone

Comments

@DraconicNEO
Copy link
Contributor

DraconicNEO commented Mar 30, 2025

Requirements

  • Is this a feature request? For questions or discussions use https://lemmy.ml/c/lemmy_support or the matrix chat.
  • Did you check to see if this issue already exists?
  • Is this only a feature request? Do not put multiple feature requests in one issue.
  • Is this a backend issue? Use the lemmy-ui repo for UI / frontend issues.
  • Do you agree to follow the rules in our Code of Conduct?

Is your proposal related to a problem?

Mods are now able to view votes on posts and comments to be able to detect voting fraud and brigading in communities, though as of now the only recourse is to ban these people. Their votes stick around. So if someone spammed downvotes in the community they remain even after banning the person with content removal.

This can be problematic if hundreds of downvotes were spammed by bots, as it can push posts down in the feed to a point which they never fully recover. Even though you can ban the bots bad actors are still able to use them to suppress posts or communities even after their bots are banned or they delete their accounts.

Describe the solution you'd like.

Add the ability for mods to delete votes (downvotes or upvotes) from the voting menu, similar to post or comment removal.
As well as having all of a person's votes be removed from the community if they are banned with content removal. This would allow better cleanup of downvote spam and brigading. Though obviously being able to remove individual votes can be problematic and have abuse potential.

Describe alternatives you've considered.

Could instead of allowing individual vote removal instead only make it so they are removed when the user is banned with content removal. Would reduce the risk of a rogue mod curating votes too much in their community by making it be an all or nothing choice.
This may be a better option if abuse is a concern.

Additional context

If admins don't have the ability to remove votes in this way on local communities they should get the ability to do that as well from the API and possibly also UI.

Related to #4386

@DraconicNEO DraconicNEO added the enhancement New feature or request label Mar 30, 2025
@dessalines
Copy link
Member

Just a note, but we also added the ability for servers to block all federated votes (either up, down, or both): #4086 .

Federated downvote attacks are becoming increasingly common, so this is one way to combat that.

I think that's a bit safer, and then you don't have issues where mods or admins are removing legitimate votes, or perceived to have the power to do so.

@DraconicNEO
Copy link
Contributor Author

Just a note, but we also added the ability for servers to block all federated votes (either up, down, or both): #4086 .

Federated downvote attacks are becoming increasingly common, so this is one way to combat that.

I think that's a bit safer, and then you don't have issues where mods or admins are removing legitimate votes, or perceived to have the power to do so.

That's partially why I suggested having it be a nuke option only as the alternative to more granular control. I think that feature is good to have but I think suggesting it as an alternative or replacement to this one is to imagine the problem incorrectly. It would work for servers who's only purpose was vote manipulation, but would not be a good solution for large servers which have large user-bases since blocking those could kill interaction in communities.
I know that that feature is not going to be used on bigger servers with more legitimate voters than bots but still a fair number of bots and double voters, since it would produce unfavorable results.

I don't really think messing with votes is as big of a concern as some people might think it is, since mods can already kind of do that by banning people and banned users can't contribute votes, and thus won't contribute to any future votes. So being able to clean up damage from brigades that have already happened doesn't seem like it would cause more harm than it does benefit, and it is beneficial. Especially if like in my alternative, it's something that can only be done en'masse, as opposed to being able to delete individual votes.

@Nutomic
Copy link
Member

Nutomic commented Apr 1, 2025

Votes can also be deleted directly in the database. I dont know of any case where that was needed, so implementing a special feature seems unnecessary.

@fxomt2
Copy link

fxomt2 commented Apr 1, 2025

I dont know of any case where that was needed, so implementing a special feature seems unnecessary.

Fwiw i've encountered quite a few. I think it'd be a pretty useful feature imo. A small one, but definitely nice.

Despite being an admin i don't have direct access to the server, and i'm in no mood to bug dbzer0 every five minutes. And mods would probably like this feature without having to contact the admins each time.

@sunshinehot
Copy link

Removing votes actions should show up in the modlogs to prevent moderator abuse.

@MrKaplan-lw
Copy link

I've banned quite a few vote abuse accounts in the past but this doesn't remove votes they cast before.
One of the sets of these accounts were a larger number of accounts with only about 10-20 votes total each.
They would sign up for new accounts, do a couple votes and then abandon the account to move on to the next one, so banning is basically useless currently, as their votes will not get removed and the accounts are abandoned at that point anyway.
As a result, it's super easy to manipulate votes with disposable accounts and admins or mods can basically nothing about that.
The only real alternative would be to discard votes from users that aren't established yet.

@DraconicNEO
Copy link
Contributor Author

Removing votes actions should show up in the modlogs to prevent moderator abuse.

I agree, they should be displayed in the modlog when they are removed from posts or comments, or when they are batch removed from a ban with content removal.

@DraconicNEO
Copy link
Contributor Author

I've banned quite a few vote abuse accounts in the past but this doesn't remove votes they cast before. One of the sets of these accounts were a larger number of accounts with only about 10-20 votes total each. They would sign up for new accounts, do a couple votes and then abandon the account to move on to the next one, so banning is basically useless currently, as their votes will not get removed and the accounts are abandoned at that point anyway. As a result, it's super easy to manipulate votes with disposable accounts and admins or mods can basically nothing about that. The only real alternative would be to discard votes from users that aren't established yet.

I don't even see faking out or refusing to send votes as a viable alternative since that's just a form of shadowbanning, and people can still game that system and poison the well with fake votes easily. Being able to clean their votes up actually solves the problem by retroactively destroying all the effort they put in.

@DraconicNEO
Copy link
Contributor Author

Votes can also be deleted directly in the database. I dont know of any case where that was needed, so implementing a special feature seems unnecessary.

The difference between removal from database by an admin and moderative removal of votes is that this removal as a mod action would also federate to other communities or instances. A person's vote being removed wouldn't just remove it from one server, it would remove it everywhere it federated (on servers that support vote moderation) very useful in the case of downvote spammers and fraudulent voters. Like how @MrKaplan-lw pointed out.

@dessalines
Copy link
Member

They would sign up for new accounts, do a couple votes and then abandon the account to move on to the next one, so banning is basically useless currently, as their votes will not get removed and the accounts are abandoned at that point anyway.
As a result, it's super easy to manipulate votes with disposable accounts and admins or mods can basically nothing about that.

Whatever we decide here, we need to prioritize tackling the problem at its root, not downstream by cleaning up their votes after the fact. Otherwise this will be an endless struggle for admins.

A few things we can do:

  1. After banning a user + removing content, remove all their votes. I think the DB triggers should already work for this, @dullbananas correct me if I'm wrong.
  2. Have the vote views for admins / mods show their activity counts. I usually have to check these anyway to help ban no-content accounts. We already expose this in the API, but don't show it in lemmy-ui, or jerboa.
  3. Have the admin panel show dead accounts, or no-content accounts.

Things we have currently:

  • Registration applications
  • Hiding downvotes
  • Disabling downvotes
  • Blocking federated downvotes (next release)

I'm not a fan of the stackoverflow model of make accounts not be able to do certain abilities based on XYZ rules.

I think 1. would probably work better than custom removing votes for certain people and items.

@DraconicNEO
Copy link
Contributor Author

I'm not a fan of the stackoverflow model of make accounts not be able to do certain abilities based on XYZ rules.

I agree, it's really unfriendly to new users to make them have to work to be able to vote, post, or comment. It was one of the biggest problems with Reddit's Karma Requirements as well.

I think 1. would probably work better than custom removing votes for certain people and items.

I agree. Even though I started off with the suggestion of individual vote removal I think that batch removal when banning with content removal is a much better implementation since it reduces the abusability and it just makes more sense to delete all votes from fraudulent voters instead of specific ones here and there.

@DraconicNEO
Copy link
Contributor Author

I think the DB triggers should already work for this, @dullbananas correct me if I'm wrong.

Will this federate their removal or will it only remove them on the local instance? Removal of fraudulent votes should federate same as post or comment removal.

@Nutomic
Copy link
Member

Nutomic commented Apr 3, 2025

Yes this would be federated together with the removal action.

@dessalines dessalines added this to the 1.0.0 milestone Apr 4, 2025
@Nutomic Nutomic modified the milestones: 1.0.0, 1.1.0 Apr 7, 2025
@dullbananas
Copy link
Collaborator

DB triggers should work, and removal should be done by adding a "vote_removed" column to the actions tables and only setting that column

@dessalines
Copy link
Member

I think in that case, the a row on the mod table ban should be okay, and then DB delete their vote rows both locally, and in an apub ban receive.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: moderation enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

7 participants