diff options
Diffstat (limited to 'mod/bulk_user_admin/actions/bulk_user_admin/delete_by_domain.php')
-rw-r--r-- | mod/bulk_user_admin/actions/bulk_user_admin/delete_by_domain.php | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/mod/bulk_user_admin/actions/bulk_user_admin/delete_by_domain.php b/mod/bulk_user_admin/actions/bulk_user_admin/delete_by_domain.php new file mode 100644 index 000000000..c51076936 --- /dev/null +++ b/mod/bulk_user_admin/actions/bulk_user_admin/delete_by_domain.php @@ -0,0 +1,36 @@ +<?php +/** + * Bulk delete users by email + */ + +$domain = get_input('domain'); + +$errors = array(); + +$options = array( + 'limit' => 50, + 'offset' => 0, +); + +$users = bulk_user_admin_get_users_by_email_domain($domain, $options); + +while ($users) { + foreach ($users as $user) { + if (!$user->delete()) { + $errors[] = "Could not delete $user->name ($user->username)."; + } + } + + $options['offset'] = $options['offset'] + $options['limit']; + $users = bulk_user_admin_get_users_by_email_domain($domain, $options); +} + +if ($errors) { + foreach ($errors as $error) { + register_error($error); + } +} else { + system_message("Users deleted."); +} + +forward(REFERER); |