Index: lazyreg.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/lazyreg/lazyreg.module,v
retrieving revision 1.1
diff -u -r1.1 lazyreg.module
--- lazyreg.module	5 Mar 2007 12:49:53 -0000	1.1
+++ lazyreg.module	7 Jun 2008 01:34:11 -0000
@@ -33,7 +33,7 @@
         if ($user->uid) {
           $res = db_query('SELECT * from {lazyreg} where uid = %d', $user->uid);
           if (db_num_rows($res) > 0) {
-            $block['content'] = t('You are using a temporary account. To keep this account, please go to <a href="%url">your account</a> and edit your info.', array('%url' => url('user/'.$user->uid)));
+            $block['content'] = t('You are using a temporary account. To keep this account, please go and edit ' . l(t('your account'), 'user/'.$user->uid.'/edit') . ' info.');
           }
         }
         break;
@@ -79,14 +79,18 @@
       );      
     $items[] = array(
       'path' => 'admin/settings/lazyreg',
+      'type' => MENU_NORMAL_ITEM,
       'title' => t('lazy registration'),
-      'access' => node_access('administer lazy registration'),
-      'callback' => 'lazyreg_admin');
+      'access' => user_access('administer site configuration'),
+      'callback' => 'drupal_get_form',
+      'description' => t('Control details regarding lazy registration.'),
+      'callback arguments' => array('lazyreg_admin_settings')
+      );
   }
   return $items;
 }
 
-function lazyreg_admin() {
+function lazyreg_admin_settings() {
   $adhandler = variable_get('site_403', '');
   if ($adhandler == 'lazyreg') {
     $lren = 1;
@@ -134,7 +138,7 @@
   $roles = user_roles(1);
   $form['lazyreg_role'] = array('#type' => 'select',
     '#title' => t('Temporary user role'),
-    '#options' => $roles,
+    '#options' => array($roles),
     '#default_value' => variable_get('lazyreg_role', 2),
     '#description' => t('The temporary accounts created by the module will be assigned this role. Make sure the role has the "change own username" permission. Add new roles <a href="%url">here</a>.', array('%url' => url('admin/access/roles'))),
     );
@@ -166,12 +170,11 @@
     %site administrators")),
     '#description' => t('This template will be used when email confirmation is required and no password will be sent to the user. You can use the following variables which will be replaced: %user, %confirmation_link, %site.'),
     );
-  $form['submit'] = array('#type' => 'submit', '#value' => t('Save options'));
   
-  return drupal_get_form('lazyreg_form_options', $form);
+  return system_settings_form($form);
 }
 
-function lazyreg_form_options_submit($form_id, $form_values) {
+function lazyreg_admin_settings_submit($form_id, $form_values) {
   if ($form_values['lazyreg_enabled']) {
     variable_set('site_403', 'lazyreg');
   }
@@ -186,7 +189,7 @@
   variable_set('lazyreg_purge', $form_values['lazyreg_purge']);
   variable_set('lazyreg_template', $form_values['lazyreg_template']);
   variable_set('lazyreg_ptemplate', $form_values['lazyreg_ptemplate']);
-  drupal_set_message(t('The options have been saved.'));
+  drupal_set_message(t('The lazyreg options have been saved.'));
   
   return 'admin/settings/lazyreg';
 }
@@ -492,6 +495,7 @@
     $now = time();
     $delay = $purge_delay * 24 * 60 * 60;
     
+    set_time_limit(0); // sometimes this can take a while removing users
     $uids = array();
     $res = db_query('select u.uid from {users} u, {lazyreg} r where %d - access > %d and u.uid = r.uid', $now, $delay);
     while ($o = db_fetch_object($res)) {
@@ -499,6 +503,8 @@
     }
     
     foreach ($uids as $uid) {
+      db_query("UPDATE {node} SET uid=0 WHERE uid=%d", $uid); // change owners on deleted users' nodes TODO: make optional
+      db_query("UPDATE {comments} SET uid=0 WHERE uid=%d", $uid); // change owners on deleted users' comments TODO: make optional
       db_query('DELETE FROM {users} WHERE uid = %d', $uid);
       db_query('DELETE FROM {sessions} WHERE uid = %d', $uid);
       db_query('DELETE FROM {users_roles} WHERE uid = %d', $uid);
