### Eclipse Workspace Patch 1.0
#P 19stable
Index: lang/en_utf8/moodle.php
===================================================================
RCS file: /cvsroot/moodle/moodle/lang/en_utf8/moodle.php,v
retrieving revision 1.141.2.27
diff -u -r1.141.2.27 moodle.php
--- lang/en_utf8/moodle.php	4 Feb 2008 12:17:49 -0000	1.141.2.27
+++ lang/en_utf8/moodle.php	21 Feb 2008 04:42:06 -0000
@@ -238,6 +238,7 @@
 $string['confirmcheckfull'] = 'Are you absolutely sure you want to confirm $a ?';
 $string['confirmed'] = 'Your registration has been confirmed';
 $string['confirmednot'] = 'Your registration has not yet been confirmed!';
+$string['confirmforcepassword'] = 'Are you absolutely sure you want to force password change for $a ?';
 $string['continue'] = 'Continue';
 $string['continuetocourse'] = 'Click here to enter your course';
 $string['convertingwikitomarkdown'] = 'Converting Wiki to Markdown';
Index: admin/user/user_bulk.php
===================================================================
RCS file: /cvsroot/moodle/moodle/admin/user/user_bulk.php,v
retrieving revision 1.4.2.4
diff -u -r1.4.2.4 user_bulk.php
--- admin/user/user_bulk.php	5 Feb 2008 15:22:08 -0000	1.4.2.4
+++ admin/user/user_bulk.php	21 Feb 2008 04:42:06 -0000
@@ -24,6 +24,7 @@
         case 3: redirect($CFG->wwwroot.'/'.$CFG->admin.'/user/user_bulk_delete.php');
         case 4: redirect($CFG->wwwroot.'/'.$CFG->admin.'/user/user_bulk_display.php');
         case 5: redirect($CFG->wwwroot.'/'.$CFG->admin.'/user/user_bulk_download.php');
+        case 6: redirect($CFG->wwwroot.'/'.$CFG->admin.'/user/user_bulk_forcepassword.php');
     }
 }
 
Index: admin/user/user_bulk_forms.php
===================================================================
RCS file: /cvsroot/moodle/moodle/admin/user/user_bulk_forms.php,v
retrieving revision 1.1.2.3
diff -u -r1.1.2.3 user_bulk_forms.php
--- admin/user/user_bulk_forms.php	20 Dec 2007 10:54:07 -0000	1.1.2.3
+++ admin/user/user_bulk_forms.php	21 Feb 2008 04:42:06 -0000
@@ -24,7 +24,9 @@
         if (has_capability('moodle/user:update', $syscontext)) {
             $actions[5] = get_string('download', 'admin');
         }
-
+        if (has_capability('moodle/user:update', $syscontext)) {
+            $actions[6] = get_string('forcepasswordchange');
+        }
         $objs = array();
         $objs[] =& $mform->createElement('select', 'action', null, $actions);
         $objs[] =& $mform->createElement('submit', 'doaction', get_string('go'));
Index: admin/user/user_bulk_forcepassword.php
===================================================================
RCS file: admin/user/user_bulk_forcepassword.php
diff -N admin/user/user_bulk_forcepassword.php
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ admin/user/user_bulk_forcepassword.php	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,46 @@
+<?php //$Id: user_bulk_confirm.php,v 1.3.2.1 2007/11/13 09:02:12 skodak Exp $
+/**
+* script for bulk user delete operations
+*/
+
+require_once('../../config.php');
+require_once($CFG->libdir.'/adminlib.php');
+
+$confirm = optional_param('confirm', 0, PARAM_BOOL);
+
+admin_externalpage_setup('userbulk');
+require_capability('moodle/user:update', get_context_instance(CONTEXT_SYSTEM));
+
+$return = $CFG->wwwroot.'/'.$CFG->admin.'/user/user_bulk.php';
+
+if (empty($SESSION->bulk_users)) {
+    redirect($return);
+}
+
+admin_externalpage_print_header();
+
+//TODO: add support for large number of users
+
+if ($confirm and confirm_sesskey()) {
+    $in = implode(',', $SESSION->bulk_users);
+    if ($rs = get_recordset_select('user', "id IN ($in)", '', 'id, username, secret, confirmed, auth, firstname, lastname')) {
+        while ($user = rs_fetch_next_record($rs)) {
+            set_user_preference('auth_forcepasswordchange', 1, $user->id);
+        }
+        rs_close($rs);
+    }
+    redirect($return, get_string('changessaved'));
+
+} else {
+    $in = implode(',', $SESSION->bulk_users);
+    $userlist = get_records_select_menu('user', "id IN ($in)", 'fullname', 'id,'.sql_fullname().' AS fullname');
+    $usernames = implode(', ', $userlist);
+    $optionsyes = array();
+    $optionsyes['confirm'] = 1;
+    $optionsyes['sesskey'] = sesskey();
+    print_heading(get_string('confirmation', 'admin'));
+    notice_yesno(get_string('confirmforcepassword', '', $usernames), 'user_bulk_forcepassword.php', 'user_bulk.php', $optionsyes, NULL, 'post', 'get');
+}
+
+admin_externalpage_print_footer();
+?>

