3 * script for bulk user delete operations
6 require_once('../config.php');
7 require_once($CFG->libdir
.'/adminlib.php');
9 $confirm = optional_param('confirm', 0, PARAM_BOOL
);
10 $sitecontext = get_context_instance(CONTEXT_SYSTEM
, SITEID
);
12 require_capability('moodle/user:delete', $sitecontext);
14 // clean-up users list
15 $primaryadmin = get_admin();
17 foreach ($SESSION->bulk_susers
as $k => $v) {
18 $user = get_record('user', 'id', $v, null, null, null, null, 'id,firstname,lastname,email');
19 if (!empty($user) && $user->id
!= $primaryadmin->id
) {
20 $userlist[$k] = $user;
24 if (empty($userlist)) {
25 redirect($CFG->wwwroot
. '/admin/user_bulk.php');
28 admin_externalpage_setup('editusers');
29 admin_externalpage_print_header();
30 if (empty($confirm)) {
32 foreach ($userlist as $user) {
33 $usernames[] =& fullname($user, true);
35 $usernames = implode(', ', $usernames);
36 $optionsyes['confirm'] = 1;
37 $optionsyes['sesskey'] = sesskey();
38 print_heading(get_string('confirmation', 'admin'));
39 notice_yesno(get_string('deletecheckfull', '', $usernames), 'user_bulk_delete.php', 'user_bulk.php', $optionsyes, NULL, 'post', 'get');
41 foreach ($userlist as $k => $user) {
42 $user->username
= addslashes($user->email
. time()); // Remember it just in case
44 $user->email
= ''; // Clear this field to free it up
45 $user->timemodified
= time();
46 $user->idnumber
= ''; // Clear this field to free it up
47 if (update_record('user', $user)) {
48 // not sure if this is needed. unenrol_student($user->id); // From all courses
49 delete_records('role_assignments', 'userid', $user->id
); // unassign all roles
50 // remove all context assigned on this user?
51 // notify(get_string('deletedactivity', '', fullname($user, true)) );
52 unset($SESSION->bulk_susers
[$k]);
54 notify(get_string('deletednot', '', fullname($user, true)));
57 redirect($CFG->wwwroot
. '/admin/user_bulk.php', get_string('changessaved'));
59 admin_externalpage_print_footer();