solved How to delete a large number of Profile/User AND their content?

Elise
Elise
@elise
8 years ago
249 posts
I'm looking for a way to keep my site's size manageable.
I'd like to delete old members who have not done anything in the last year. That could be hundreds at a time.

I want to delete:
- Their user
- Their Profile
- All their content (posts, images, etc).

How can I do this?
Thanks!
updated by @elise: 06/16/17 09:01:42AM
Strumelia
Strumelia
@strumelia
8 years ago
3,603 posts
Assuming that most of your members were imported at the same time, recently, from your ning site into your new JR site? Do you still have your Ning .CSV/memberdata file?


--
...just another satisfied Jamroom customer.
Migrated from Ning to Jamroom June 2015
Elise
Elise
@elise
8 years ago
249 posts
How is that relevant?
Elise
Elise
@elise
8 years ago
249 posts
I'm asking because I need to do this regularly, so although I do have the member file now, it will not be useful 6 months from now...
Strumelia
Strumelia
@strumelia
8 years ago
3,603 posts
Well, you know how when you first made your JR site, how the Activity Feed had nothing in it even when you imported all your ning members? That's because even though their content had dates associated with it, the new site didn't view all their content as having been actively posted there- it was simply imported from elsewhere. So, your activity feed began to be created once they began posting on your JR site. The members were there, but they weren't counted as having even logged in yet.
Your JR site does give you the date of member's last log in....log in to the JR site. but since the site is new it can't tell you that a member last logged in like six months ago. It will simply give you a blank date if they have not yet logged into the NEW site. And once they do, it'll keep accurate track of that info for the new site. But your ning .csv file WILL tell you when your old Ning members last logged into your ning site, whether it was 8 months ago, 2 yrs ago, or 3 months ago.
You can thus use your ning csv file in a spreadsheet to SORT your long inactive ning members and you'll then have a list of the members who have not gone to your site in a year. Then you could cross-check this against your JR site last log-in to make sure you are not going to delete members who got your password and actually logged in on the NEW site. In my opinion, the first step is to create this list of members.
What I did was delete those old inactive members before I imported them to my JR site, but I think you've already past that point?
Also, I'm assuming you can use the criteria of deleting members that have not actually logged in for a period of time. It would be harder to identify members based on when they last posted something I think.


--
...just another satisfied Jamroom customer.
Migrated from Ning to Jamroom June 2015

updated by @strumelia: 10/22/16 08:24:48PM
Elise
Elise
@elise
8 years ago
249 posts
Oh sorry, this is not what i am asking.
I am asking is there is a tool/module that allows me to delete the profile + user + content.

I don't want to leave orphans data behind.
Strumelia
Strumelia
@strumelia
8 years ago
3,603 posts
Oh, ok- when you said 'hundreds at a time' I thought you wanted to delete huge bunches of old ning members who hadn't logged in in years. I see- you wonder simply how to delete a profile + user + content all at same time, and perhaps apply it to many members at once. In the future. Am I understanding that better? If that's right, I should let the JR Team answer this.



--
...just another satisfied Jamroom customer.
Migrated from Ning to Jamroom June 2015

updated by @strumelia: 10/22/16 08:28:17PM
Elise
Elise
@elise
8 years ago
249 posts
Yes, that is right.
I will target member who have not logging in since the move first :)
Strumelia
Strumelia
@strumelia
8 years ago
3,603 posts
Well, do you know?- that if you go to your user acct browser at (yoursite.com)/user/browser , and you click on the column TITLE saying Last Login, it will at least SORT all users by their last active login date, rather than by when they joined or their user #. This helps you identify long inactive Users.

But if you go to DELETE a user from that broswer, it tells you first that the associated Profile will not be deleted.


--
...just another satisfied Jamroom customer.
Migrated from Ning to Jamroom June 2015
Strumelia
Strumelia
@strumelia
8 years ago
3,603 posts
However, if you go to your Profile Browser at /profile/browser , and you go to delete a Profile from there, it tells you:
"Are you sure you want to delete this Profile? Any User accounts ONLY associated with this Profile will also be removed."

By the way, you won't want to remove members who have created Groups with lots of valued content in them, before changing the Group Owner if you want to save that group's content. You can use the ChangeItemOwner module for this.


--
...just another satisfied Jamroom customer.
Migrated from Ning to Jamroom June 2015

updated by @strumelia: 10/22/16 08:48:29PM
michael
@michael
8 years ago
7,743 posts
Strumelia's correct with the "click on the Last Login" column header to see USERS who haven't logged in, but you're wanting to delete their profile too.

Feel 70% sure I've built a jrPrune module in the past for someone to cull users and profiles, but I can't find it.

Every item is timestamped so we can know if its older than a year old. Is that something you'd also like? an option to "delete any forum posts, or blog posts or other content that is older than 1 year" even if the user is still an active user on the site?

( Thinking does it need automation )
--edit--
Found it, but its an old module for Jamroom 4. adding it to suggestions.
updated by @michael: 10/23/16 01:44:44AM
Strumelia
Strumelia
@strumelia
8 years ago
3,603 posts
michael:
Strumelia's correct with the "click on the Last Login" column header to see USERS who haven't logged in, but you're wanting to delete their profile too.

Michael, can you clarify for me?- are you guys saying that you need the USER browser to be able to delete both the User and its associated Profiles when one hits the Delete button on a user? ...the goal being?- not having to do the TWO steps for each member of: 1) identify the last login in the USER browser, and then 2) having to go pull them up in the PROFILE browser in order to delete them from there to catch both user and profile?


--
...just another satisfied Jamroom customer.
Migrated from Ning to Jamroom June 2015
Elise
Elise
@elise
8 years ago
249 posts
michael:
Strumelia's correct with the "click on the Last Login" column header to see USERS who haven't logged in, but you're wanting to delete their profile too.
Feel 70% sure I've built a jrPrune module in the past for someone to cull users and profiles, but I can't find it.
Every item is timestamped so we can know if its older than a year old. Is that something you'd also like? an option to "delete any forum posts, or blog posts or other content that is older than 1 year" even if the user is still an active user on the site?
( Thinking does it need automation )
--edit--
Found it, but its an old module for Jamroom 4. adding it to suggestions.

Right, I want to delete their profile and all their content if they're not active anymore.

Looks like it's manual.

Is there an SQL query that can check the last time they logged in for a specific profile? So I can make sure I am not deleting active members before I hit the kill switch?

Btw strum, I too did this before I moved from Ning because I had 10 000+ member initially. I ended up writing an automated script to delete members from my list of inactives. I'm looking for a way to do this in Jamroom.

Since it was manual (sort of) on Ning too, I'm not in worst shape than I was :)
Elise
Elise
@elise
8 years ago
249 posts
Ah yes, I see how to do it the way you described it.

Thanks!
michael
@michael
8 years ago
7,743 posts
Strumelia:....Michael, can you clarify for me?- are you guys saying that you need the USER browser to be able to delete both the User and its associated Profiles when one hits the Delete button on a user? ...the goal being?- not having to do the TWO steps for each member of: 1) identify the last login in the USER browser, and then 2) having to go pull them up in the PROFILE browser in order to delete them from there to catch both user and profile?

The way you have described @strumelia is the best way to do it currently available. I've added to my TODO list to look into a way to do it in bulk, but that way doesn't exist yet.

Elise:....I'm looking for a way to do this in Jamroom.....
A module is what you want.

First step in building it is defining what it.
* what will it do: delete inactive members user accounts and their profiles (and any forum posts made by them???? and any comments made by them?????)
- will it do it automatically or is it a tool that the admin views and runs????

My guess would be that what is wanted is something like the current DASHBOARD -> DATA BROWSER -> Profiles list with a "Last Login" column (like the -> Users has) and some checkboxes to check for a mass delete option.

Not sure how to handle the interface for deleting the associated comments and forum posts or whether they should go or stay.
Elise
Elise
@elise
8 years ago
249 posts
I'm still struggling with this as my site grows and I can't afford to upgrade.
I know I will have to switch to self hosted eventually but I'd like to delay that as much as possible...

- I have over 4000 topics in my forums, some are 9 years old.
- I have 3300 profiles, some for users that have never logged in.

I need a way to
- Delete the profile of users who are older then xxx months and have never logged in.
- Delete posts older than a certain date (and all their comments, picture, videos, etc).

All thoughts/suggestions would be appreciated.
PS: I migrated out of the Ning groups, so deleting group owners is not an issue for me.
paul
@paul
8 years ago
4,330 posts
We have a custom module that at the moment deletes all members, and their content, who have not logged in. Couple easily add another field to it for 'older than'. I'll check it out.


--
Paul Asher - JR Developer and System Import Specialist
Strumelia
Strumelia
@strumelia
8 years ago
3,603 posts
Paul, that would be a FANTASTIC tool for site owners- to be able to easily delete all members and their content who have not logged into the site since a specified date that we can set...or who have never logged in since joining (those showing a 'last login' date of " - "). This would allow us to keep our sites fresh and relevant without getting weighed down by people who moved on years ago.

One note though- we'd need to be able to look over all the members targeted for removal and remove a few before deletion, because for example there might be some deceased members with important older content that we want to remain on the site...and we may not recall those until we see them on the removal target list. I have one or two valued members per year who pass away, and some of them have content I want to make an exception of and keep. Over time this list of people slowly grows. 'Departed but still valuable' members.


--
...just another satisfied Jamroom customer.
Migrated from Ning to Jamroom June 2015
brian
@brian
8 years ago
10,148 posts
Strumelia:
One note though- we'd need to be able to look over all the members targeted for removal and remove a few before deletion

Doesn't this mean you would need to manually look through each user? In that way it is already supported.

To be honest I'm not be a big fan of "batch deleting" - too many ways it can go wrong, and typically it is a "one time cost" operation - i.e. it's not something you do on a regular basis, so optimizing and tweaking code that is used ONCE for the lifetime of the site (or say once a year) is hard to put at the top of the priority list of coding work that needs to be done.

Not saying we're not going to do it, but just wanted to point out the thought process when looking at if this is what we spend limited development hours working on.


--
Brian Johnson
Founder and Lead Developer - Jamroom
https://www.jamroom.net
paul
@paul
8 years ago
4,330 posts
Hi Strumelia - I think this custom module was originally built for you anyway, iifc?
As well as a last logging threshold I'm also going to add a 'by quota' selection. There is also a 'dry run' option where you'll see the profiles that will be deleted, so maybe clone your members quota and move your 'cherised' members to it.
hth
Pa


--
Paul Asher - JR Developer and System Import Specialist
Elise
Elise
@elise
8 years ago
249 posts
@paul I'm happy to re-use something that is already available for profiles. I like the idea of having members that we want to keep in a separate profile so they're safe :)

I don't see this being relevant to forum posts though.
Is there a way to batch delete locked topics?
Strumelia
Strumelia
@strumelia
8 years ago
3,603 posts
Brian- yes understood. This is a housekeeping type chore that might be done only once after importing from Ning, or once a year, or once every several years, depending on the type of site and how quickly one accumulates members and content. But it could translate to saving significant costs over time in server size- especially if one's members tend to add lots of bulky content.

Paul- I know I/we did some filtering of members like this about 6 months after I went live from Ning. I wanted to get rid of all members who had not logged into my new site after 6 months of reminders.
But I think it was you who arranged the specific details of how it was done, and I can't find a custom module for it on my site. Did we not simply do a one-time deletion of all users who had " -" as their last login date?...I think that's what you helped me get done. And yes I DO remember a 'dry run' thing where I was able to remove some cherished gone members from the list targeted for deletion.
BUT- I don't recall that I had (or have) the ability to punch in a new last login DATE and do the same now, going forward... if I do then it must be a tool somewhere that I can't find, since I don't seem to have a custom module for this. Unless I'm just not seeing it...but looked under all my module categories just now.


--
...just another satisfied Jamroom customer.
Migrated from Ning to Jamroom June 2015

updated by @strumelia: 12/06/16 07:40:50AM
paul
@paul
8 years ago
4,330 posts
Strum - I guess wemust have installed this module on your site, ran it then deleted it.
The 'last login date' as well as 'by quota' are features I'll add to it.


--
Paul Asher - JR Developer and System Import Specialist
Strumelia
Strumelia
@strumelia
8 years ago
3,603 posts
Yes, that strikes a chord in my memory Paul! I think we just ran it once and deleted it, like a tool to get rid of 'dead' ning members who had NEVER logged into the new jr site after many months. But it could be immensely useful aside from 'old ning cleanup' as well.

Adding 'by lastlogindate' and 'by quota' would be perfect to add to it ....and then we could all use it to periodically houseclean our sites! :D


--
...just another satisfied Jamroom customer.
Migrated from Ning to Jamroom June 2015

updated by @strumelia: 12/06/16 01:27:20PM
brian
@brian
8 years ago
10,148 posts
Strumelia:
But if you go to DELETE a user from that broswer, it tells you first that the associated Profile will not be deleted.

Just an update on this - the latest User module now shows you a nice little modal window when you go to delete a user account that gives you the option of deleting the associated profile as well. Hopefully this saves some clicks :)


--
Brian Johnson
Founder and Lead Developer - Jamroom
https://www.jamroom.net
Strumelia
Strumelia
@strumelia
8 years ago
3,603 posts
Brian, that an excellent little improvement. :)


--
...just another satisfied Jamroom customer.
Migrated from Ning to Jamroom June 2015
Elise
Elise
@elise
8 years ago
249 posts
brian:
Just an update on this - the latest User module now shows you a nice little modal window when you go to delete a user account that gives you the option of deleting the associated profile as well. Hopefully this saves some clicks :)

OMG THANK YOU! I have spent the last 2 days deleting about 50 members a night...Click on user. Click on their profile. Click delete. Click confirm. Close tab. Repeat.

This is actually a huge time saver for me. I really appreciate it :)
Holly Dilatush
Holly Dilatush
@holly-dilatush
8 years ago
212 posts
I'll add my "Hooray!" here too!
This is an excellent, much-appreciated update.
Elise
Elise
@elise
7 years ago
249 posts
@paul @brian
Would it be possible to have a "Delete All Profiles and Users" button that allows me to delete all the users I can see on a page? I have a specific query that looks up user who have never logged in.
See screenshot...
deleteAll.jpg
deleteAll.jpg  •  48KB

paul
@paul
7 years ago
4,330 posts
So to be clear, you want to delete all users that haven't as yet logged in? I think we have a custom module to do this that we developed for Strumelia - let me check it out.


--
Paul Asher - JR Developer and System Import Specialist
Strumelia
Strumelia
@strumelia
7 years ago
3,603 posts
Yes, Paul it was something you came up with duration my migration from Ning. But if I recall correctly- I only needed it after having sent imported members their password/login reminder like 4 times during our first 6 months live on JR. At the 6 month mark i opted to delete all members who STILL had not logged in via the temp password that was sent to them, despite having sent them 4 reminders/warnings.


--
...just another satisfied Jamroom customer.
Migrated from Ning to Jamroom June 2015
Elise
Elise
@elise
7 years ago
249 posts
@paul
This is something I have to do regularly. A lot of people sign up and never use their accounts.

I'm reluctant to use a custom module because those are not necessarily maintained.
The delete button on user module IS maintained because you guys use it too :)

Thus my strong desire to add a way to delete a whole page of users returned by my specific query. So deleting 2000 users takes 20 clicks (one per page of 100 users) instead of 2000 (one per user).
paul
@paul
7 years ago
4,330 posts
Am a bit wary of 'Delete All' buttons as it may be ok for your specific requirements but having it there generally is an opportunity for other users to use it in error, or to regret their action later, if you see what I mean?
I still think that this is best addressed by a seperate module. The one I did for Strumelia is very simple and could easily be adapted to add a search/filter field afterwhich would need little or no maintenence going forward.
Let me know what you think.


--
Paul Asher - JR Developer and System Import Specialist
Elise
Elise
@elise
7 years ago
249 posts
Yes, i totally understand the concern. If this module would be maintained by the team, that works too.
brian
@brian
7 years ago
10,148 posts
Yep - not a fan of "delete all" buttons either. The functions you are doing right now are "one time cost" options - I know it takes a bit, but it's not something you are doing on a regular basis, so spending time optimizing and creating modules for one time cost events is low priority.


--
Brian Johnson
Founder and Lead Developer - Jamroom
https://www.jamroom.net

Tags