aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/controllers/admin/user.php109
1 files changed, 61 insertions, 48 deletions
diff --git a/app/controllers/admin/user.php b/app/controllers/admin/user.php
index 5a0cd9d..d4ddc14 100644
--- a/app/controllers/admin/user.php
+++ b/app/controllers/admin/user.php
@@ -291,42 +291,29 @@ class Admin_UserController extends AuthenticatedController
$user = User::find($user_id);
//check user
- if (!count($user)) {
+ if (!$user) {
PageLayout::postError(_('Fehler! Zu löschende Person ist nicht vorhanden.'));
//antwort ja
- } elseif (!empty($user) && Request::submitted('delete')) {
+ } elseif (Request::submitted('delete')) {
CSRFProtection::verifyUnsafeRequest();
//if deleting user, go back to mainpage
$parent = '';
- //preparing delete
- $umanager = new UserManagement();
- $umanager->getFromDatabase($user_id);
-
- //delete
- if (
- $umanager->deleteUser(
- $delete_documents,
- $delete_content_from_course,
- $delete_personal_documents,
- $delete_personal_content,
- $delete_names,
- $delete_memberships,
- Request::bool('mail', false),
- $delete_courseware
- )
- ) {
- $details = explode('§', str_replace(['msg§', 'info§', 'error§'], '', mb_substr($umanager->msg, 0, -1)));
- PageLayout::postSuccess(htmlReady(sprintf(_('"%s (%s)" wurde erfolgreich gelöscht'), $user->getFullName(), $user->username)), $details);
- } else {
- $details = explode('§', str_replace(['msg§', 'info§', 'error§'], '', mb_substr($umanager->msg, 0, -1)));
- PageLayout::postError(htmlReady(sprintf(_('Fehler! "%s (%s)" konnte nicht gelöscht werden'), $user->getFullName(), $user->username)), $details);
- }
+ $this->deleteUser(
+ $user,
+ $delete_documents,
+ $delete_content_from_course,
+ $delete_personal_documents,
+ $delete_personal_content,
+ $delete_names,
+ $delete_memberships,
+ Request::bool('mail', false),
+ $delete_courseware
+ );
//sicherheitsabfrage
- } elseif (!empty($user) && !Request::submitted('back')) {
-
+ } elseif (!Request::submitted('back')) {
$this->flash['delete'] = [
'question' => sprintf(_('Wollen Sie "%s (%s)" wirklich löschen?'), $user->getFullName(), $user->username),
'action' => ($parent != '') ? $this->url_for('admin/user/delete/' . $user_id . '/' . $parent) : $this->url_for('admin/user/delete/' . $user_id),
@@ -337,7 +324,7 @@ class Admin_UserController extends AuthenticatedController
} else {
$user_ids = Request::getArray('user_ids');
- if (count($user_ids) == 0) {
+ if (count($user_ids) === 0) {
PageLayout::postError(_('Bitte wählen Sie mindestens eine Person zum Löschen aus.'));
$this->redirect('admin/user/' . $parent);
return;
@@ -346,15 +333,10 @@ class Admin_UserController extends AuthenticatedController
if (Request::submitted('delete')) {
CSRFProtection::verifyUnsafeRequest();
- foreach ($user_ids as $i => $_user_id) {
- $users[$i] = User::find($_user_id);
- //preparing delete
- $umanager = new UserManagement();
- $umanager->getFromDatabase($_user_id);
-
- //delete
- if (
- $umanager->deleteUser(
+ User::findEachMany(
+ function (User $user) use ($delete_documents, $delete_content_from_course, $delete_personal_documents, $delete_personal_content, $delete_names, $delete_memberships, $delete_courseware) {
+ $this->deleteUser(
+ $user,
$delete_documents,
$delete_content_from_course,
$delete_personal_documents,
@@ -363,27 +345,58 @@ class Admin_UserController extends AuthenticatedController
$delete_memberships,
Request::bool('mail', false),
$delete_courseware
- )
- ) {
- $details = explode('§', str_replace(['msg§', 'info§', 'error§'], '', mb_substr($umanager->msg, 0, -1)));
- PageLayout::postSuccess(htmlReady(sprintf(_('"%s (%s)" wurde erfolgreich gelöscht'), $users[$i]->getFullName(), $users[$i]->username)), $details);
- } else {
- $details = explode('§', str_replace(['msg§', 'info§', 'error§'], '', mb_substr($umanager->msg, 0, -1)));
- PageLayout::postError(htmlReady(sprintf(_('Fehler! "%s (%s)" konnte nicht gelöscht werden'), $users[$i]->getFullName(), $users[$i]->username)), $details);
- }
- }
+ );
+ },
+ $user_ids
+ );
}
}
//liste wieder anzeigen
- if ($parent == 'edit') {
+ if ($parent === 'edit') {
$this->redirect('admin/user/edit/' . $user_id);
} else {
$this->redirect('admin/user/' . $parent);
}
}
-
+ private function deleteUser(
+ User $user,
+ bool $delete_documents,
+ bool $delete_content_from_course,
+ bool $delete_personal_documents,
+ bool $delete_personal_content,
+ bool $delete_names,
+ bool $delete_memberships,
+ bool $mail,
+ bool $delete_courseware
+ ): void {
+ $umanager = new UserManagement();
+ $umanager->getFromDatabase($user);
+
+ if (
+ $umanager->deleteUser(
+ $delete_documents,
+ $delete_content_from_course,
+ $delete_personal_documents,
+ $delete_personal_content,
+ $delete_names,
+ $delete_memberships,
+ $mail,
+ $delete_courseware
+ )
+ ) {
+ PageLayout::postSuccess(
+ htmlReady(sprintf(_('"%s (%s)" wurde erfolgreich gelöscht'), $user->getFullName(), $user->username)),
+ explode('§', str_replace(['msg§', 'info§', 'error§'], '', mb_substr($umanager->msg, 0, -1)))
+ );
+ } else {
+ PageLayout::postError(
+ htmlReady(sprintf(_('Fehler! "%s (%s)" konnte nicht gelöscht werden'), $user->getFullName(), $user->username)),
+ explode('§', str_replace(['msg§', 'info§', 'error§'], '', mb_substr($umanager->msg, 0, -1)))
+ );
+ }
+ }
/**
* Display all information according to the selected user. All details can