Jump to content

Bulk deleting members


Recommended Posts

Hi! We are going to 'restart' our very old forum, which has been open but not managed during last few years. We have thousands of spam members and we would like to get rid of them. Is there any way how to bulk delete them, as taking them off one by one will take too much time?

Link to comment
Share on other sites

Hi @Kimmo,

You can only delete one member at a time via the AdminCP. It might seem monotonous, but it will prevent making any mistakes by deleting someone that may potentially be a regular member. You can always force your members, or only specific groups on your community, to have their password reset as a first step. Any members that don't change their passwords and/or continue to post spam can then be deleted.

You can do this in your AdminCP -> Members -> Force Password Reset -> then select the applicable groups you'd like this to be performed on. There are other parameters you can toggle to fine-tune this action too.

Members cannot delete their own posts here on Invision Community, but I'm sure it will be marked as solved/locked once a team member is active.

Link to comment
Share on other sites

Actually you can, but only if you have a criteria in which to search. Just be careful what you select. What you can do is to click the cog icon to do a search in the members section of the admin CP. Enter the criteria of the member you want to remove, then once you have them and have checked, select the "Prune" button

Always ensure you take a backup first

What I tend to do personally is use the "move" option to a new group first. I can then go through those members and make sure they are correct, then delete the people who are member of that group

Could contain: File, Webpage, Page, Text

Link to comment
Share on other sites

On 5/16/2024 at 11:12 AM, Marc Stridgen said:

Actually you can, but only if you have a criteria in which to search. Just be careful what you select. What you can do is to click the cog icon to do a search in the members section of the admin CP. Enter the criteria of the member you want to remove, then once you have them and have checked, select the "Prune" button

Always ensure you take a backup first

What I tend to do personally is use the "move" option to a new group first. I can then go through those members and make sure they are correct, then delete the people who are member of that group

Could contain: File, Webpage, Page, Text

 

I don't see this option?

 

Can you give the exact steps?

Link to comment
Share on other sites

Yes, that is correct. It prunes only the users, not the content. While I understand its not what you wanted to do there, it does do exactly what it states. If this is an issue for you, you would be best to revert to backup.

Its worth mentioning here, you appear to be blaming the tools that do what they say, when using a function which wasnt suggested and not awaiting an answer from ourselves when you asked the question. 

Link to comment
Share on other sites

Posted (edited)

Wow.

I am so over this.

Is there a way to delete all guest posts?

Please god just give me the SQL queries then I can fix this headache of software.

7 minutes ago, Marc Stridgen said:

It prunes only the users, not the content.

I don't know how on earth this is a function that passed QA. What even would be the purpose of this to deliberately introduce orphaned posts?

Not a bug but a logical error on Invision's part, IMO.

And the mess passed on to me is how it feels. 

Edited by Platinumwealth.co.za
Link to comment
Share on other sites

 

34 minutes ago, Platinumwealth.co.za said:

Please god just give me the SQL queries then I can fix this headache of software.

I am not a developer on the platform personally, so could not provide these. I moved your other ticket to our developer connection forum to see if someone can assist you. 

34 minutes ago, Platinumwealth.co.za said:

I don't know how on earth this is a function that passed QA. What even would be the purpose of this to deliberately introduce orphaned posts?

It has not produced orphaned posts. It has left the posts as guest posts, as the members have been deleted. This has been the same functionality for multiple decades on the platform, and is used on many occasions by our users who do not wish to remove posts when they delete a user.

As I mentioned above, I understand it may not have been your intention, however this does not make the function incorrect. 

I completely understand your frustration here, but unfortunately you are trying to do things quicker than anyone can possibly assist you in any way. You have had a post moved to the developer section to see if someone can assist. In the meantime you have gone ahead and done Something that has caused you unintended consequences. If I can offer one bit of advise, it would be to slow down a little. For example, you have typed 1 response, edited that response with more, and posted another reply, all while I am typing a single response to you. 

Link to comment
Share on other sites

1 minute ago, Marc Stridgen said:

I am not a developer on the platform personally, so could not provide these. I moved your other ticket to our developer connection forum to see if someone can assist you. 

10 minutes ago, Platinumwealth.co.za said:

I appreciate it. This is now my only hope.

Link to comment
Share on other sites

35 minutes ago, Platinumwealth.co.za said:

Is there a way to delete all guest posts?

If you go to Members->Content Moderation->Spam Prevention, you can delete all guests posts there. Note, this will be ALL guest posts, not just the ones you have just introduced

Link to comment
Share on other sites

1 hour ago, Marc Stridgen said:

If you go to Members->Content Moderation->Spam Prevention, you can delete all guests posts there. Note, this will be ALL guest posts, not just the ones you have just introduced

Thank you. 

Perfect (We do not allow guest posts, so this should be sufficient).

Unsure what to fill in here, instinctively I want to enter "Guest", but knowing Invision I suspect the obvious instinct is the wrong one.

Could contain: Page, Text, File

Link to comment
Share on other sites

It works only on named guests. But going from your screenshot there, they all look to have been responses to the same topics which are actually using a named guest of Guest yisol88030 . So if you enter that, it will delete the topics there (of course including the replies

Link to comment
Share on other sites

Posted (edited)

There is >1000 users who got pruned. 

This won't work.

Please can they just connect in to my forum and run the required SQL query(s) to do this?

As the GUI offers no functional features to fix it. 

Could contain: Page, Text

 

There are over 1000 guests (pruned users) each with 1 to 5 posts and topics, >4000 orphaned posts.

This will take months of manual work.

Edited by Platinumwealth.co.za
Link to comment
Share on other sites

This is not something we would offer as a service, no. Its worth noting, it's a feature you wish to have, not something that is broken here, unfortunately. There isnt really a simple way of going about this, unfortunately

Link to comment
Share on other sites

dude, I am 100% sure one of the devs have an SQL query locally for this as this is something that is extremely common by design. 

Instead of gaslighting your clients, can I ask you to please ask the developer team the following:

Please provide a SQL query to delete all guest posts.

It is already possible to delete guests posts WHERE the user is named, so all I am asking for is the SQL query without the WHERE clause for the name. 

Please.

That is all I am asking, they will know what is needed and it will safe me literal months.

Whatever Query is built here behind the scenes will help

 

	/**
	 * Delete Guest Content
	 *
	 * @return	void
	 */
	public function deleteGuestContent()
	{
		\IPS\Dispatcher::i()->checkAcpPermission( 'membertools_delete' );
		
		$form = new \IPS\Helpers\Form;
		$form->add( new \IPS\Helpers\Form\Text( 'guest_name_to_delete', NULL, TRUE ) );
		if ( $values = $form->values() )
		{
			$classes = array();
			foreach ( \IPS\Content::routedClasses( FALSE, TRUE ) as $class )
			{
				if ( isset( $class::$databaseColumnMap['author'] ) and isset( $class::$databaseColumnMap['author_name'] ) )
				{
					\IPS\Task::queue( 'core', 'MemberContent', array( 'member_id' => 0, 'name' => $values['guest_name_to_delete'], 'class' => $class, 'action' => 'delete' ) );
				}
			}
			
			\IPS\Session::i()->log( 'acplog__deleted_guest_content', array( $values['guest_name_to_delete'] => FALSE ) );
			
			\IPS\Output::i()->redirect( \IPS\Http\Url::internal( "app=core&module=moderation&controller=spam&searchResult=guest_captcha" ), 'deleted' );
		}
		
		\IPS\Output::i()->output = $form;
	}

 

Link to comment
Share on other sites

11 minutes ago, Platinumwealth.co.za said:

dude, I am 100% sure one of the devs have an SQL query locally for this as this is something that is extremely common by design. 

Instead of gaslighting your clients, can I ask you to please ask the developer team the following:

Please provide a SQL query to delete all guest posts.

It is already possible to delete guests posts WHERE the user is named, so all I am asking for is the SQL query without the WHERE clause for the name. 

Please.

That is all I am asking, they will know what is needed and it will safe me literal months.

Whatever Query is built here behind the scenes will help

 

	/**
	 * Delete Guest Content
	 *
	 * @return	void
	 */
	public function deleteGuestContent()
	{
		\IPS\Dispatcher::i()->checkAcpPermission( 'membertools_delete' );
		
		$form = new \IPS\Helpers\Form;
		$form->add( new \IPS\Helpers\Form\Text( 'guest_name_to_delete', NULL, TRUE ) );
		if ( $values = $form->values() )
		{
			$classes = array();
			foreach ( \IPS\Content::routedClasses( FALSE, TRUE ) as $class )
			{
				if ( isset( $class::$databaseColumnMap['author'] ) and isset( $class::$databaseColumnMap['author_name'] ) )
				{
					\IPS\Task::queue( 'core', 'MemberContent', array( 'member_id' => 0, 'name' => $values['guest_name_to_delete'], 'class' => $class, 'action' => 'delete' ) );
				}
			}
			
			\IPS\Session::i()->log( 'acplog__deleted_guest_content', array( $values['guest_name_to_delete'] => FALSE ) );
			
			\IPS\Output::i()->redirect( \IPS\Http\Url::internal( "app=core&module=moderation&controller=spam&searchResult=guest_captcha" ), 'deleted' );
		}
		
		\IPS\Output::i()->output = $form;
	}

 

Please feel free to add this information to your topic in the developer connection forum. You now have 2 topics open on the same item, along with commenting on this one. 

Link to comment
Share on other sites

  • Management

That's not really in the scope of our support unfortunately. We would not give you raw SQL commands to run as this could lead to data loss.

If you would like to engage a third party developer to help you with this issue, then may I direct you to our provider's directoy.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...