disabled users cleanup

Author Message

Fabrice Girardot

Monday 03 March 2008 9:26:00 am

Hi,

I am looking for a script (or "something) to easily cleanup all disabled users. All suggestions are welcomed!

Thank you

Fabrice

--
Fabrice

Bruce Morrison

Monday 03 March 2008 3:27:52 pm

Hi Fabrice

Here you go:

<?php
include_once( 'kernel/classes/ezcontentobjecttreenode.php' );
include_once( 'kernel/classes/datatypes/ezuser/ezusersetting.php' );
include_once( 'kernel/classes/ezcontentobjecttreenodeoperations.php' );
include_once( 'lib/ezutils/classes/ezfunctionhandler.php' );


// Content Class ID of the user objects we want to purge
$userContentClassID = 44;

// Grab eZuser objects that are not activated
$users =& eZPersistentObject::fetchObjectList( eZUserSetting::definition(),
                                        null,
                                        array('is_enabled' => 0),true);
if($users)
{
  // build an array of user_ids
  $userIDs=array();
  foreach (array_keys($users) as $index)
  {
    $userSettings =& $users[$index];
    $userIDs[]=$userSettings->attribute('user_id');
  }
  // Get user content objects that were created more that a week ago
  $weekAgo = time()-3600*24*7;
  $cond = array('contentclass_id' => $userContentClassID,
                'id' => array($userIDs),
                'published' => array( '<', $weekAgo ) );

  $userObjects=eZPersistentObject::fetchObjectList( eZContentObject::definition(), null, $cond,true);
  if ($userObjects)
  {
    foreach (array_keys($userObjects) as $index)
    {
      $userObject =& $userObjects[$index];
      // Remove user
      $userObject->purge();
    }
  }
}
?>

This code removes users that are not active that have been created more than a week ago. Make sure you set the $userContentClassID value to the Content class Id of the user class you want to purge. I tend to create a specific "community" user class that is different to the user classes used for admin's & editors...just to be on the safe side. We don't want there removed!

Cheers
Bruce

My Blog: http://www.stuffandcontent.com/
Follow me on twitter: http://twitter.com/brucemorrison
Consolidated eZ Publish Feed : http://friendfeed.com/rooms/ez-publish

Fabrice Girardot

Monday 03 March 2008 11:56:29 pm

Thank you so much Bruce!

I am going to test that and try to run that as a cronjob.

--
Fabrice

Powered by eZ Publish™ CMS Open Source Web Content Management. Copyright © 1999-2014 eZ Systems AS (except where otherwise noted). All rights reserved.