mybb / mybb

MyBB is a free and open source forum software.
https://mybb.com
GNU Lesser General Public License v3.0
1.07k stars 407 forks source link

Add options to delay or disable Purge Spammer permanent effects #4208

Open dvz opened 3 years ago

dvz commented 3 years ago

Extend the Purge Spammer feature to allow administrators to configure:

to prevent accidental removals.

Administrators/moderators should be able to reverse the action and restore all content before scheduled deletion (e.g. by removing the account ban and restoring soft-deleted posts using existing mass moderation functions).

This may be implemented using a task system queue where the account ban status is checked before taking action, and leave the possibility of forcing the removal to purge content that cannot be moderated individually (Private Messages, plugin features).

Related: #4153

kawaii commented 3 years ago

I believe that in addition to both hard and soft deletion, the option of invoking a moderation tool on the user's content should also be available. Many forums archive user threads and posts to a 'junk' forum, in order to maintain their forum statistics. A switch between account deletion and permanent ban would also be ideal.

effone commented 3 years ago

We don't need to invoke any moderation tool or soft delete any post. There is a better way, I believe. We can add a column to user table called purged which will carry purge tool commence timestamp. If this stamp is present against any user no content created by that user will be displayed. No profile, no PM.

So the main function of the purge tool will just be adding the purge timestamp against the user to the database. User visiting the site having timestamp in purge column will get Banned notice (we can alter is_banned() function for that).

The task will run to check the set interval against recorded purge timestamp and commit actual purging / banning / SFS submission.

Revoking a purge will then be as easy as removing just the timestamp from the database against the user.

Makes sense?

dvz commented 3 years ago

We can add a column to user table called purged which will carry purge tool commence timestamp. If this stamp is present against any user no content created by that user will be displayed. No profile, no PM.

That would involve changing conditions wherever user content is displayed. Currently e.g. posts and threads have their own visible condition, but after these changes there would be an additional dependency on the author's user table row.

Some administrators may also prefer to keep all content, even if purged (so it would stay soft-deleted).