$kill_list = array_unique($kill_list); $query = "SELECT * FROM auth_user_md5 WHERE username IN (?)"; $statement = DBManager::get()->prepare($query); $statement->execute(array($kill_list ?: '')); while ($row = $statement->fetch(PDO::FETCH_ASSOC)) { $kill_user[$row['username']] = $row; } if (!is_array($kill_user)) { fwrite(STDOUT, 'No user from list found in database.' . chr(10)); exit(0); } $umanager = new UserManagement(); foreach ($kill_user as $uname => $udetail) { if (!KILL_ADMINS && ($udetail['perms'] == 'admin' || $udetail['perms'] == 'root')) { fwrite(STDOUT, "user: {$uname} is '{$udetail['perms']}', NOT deleted" . chr(10)); } else { $umanager->user_data = array(); $umanager->msg = ''; $umanager->getFromDatabase($udetail['user_id']); //wenn keine Email gewünscht, Adresse aus den Daten löschen if (!SEND_MAIL_ON_DELETE) { $umanager->user_data['auth_user_md5.Email'] = ''; } if ($umanager->deleteUser()) { fwrite(STDOUT, "user: {$uname} successfully deleted:" . chr(10) . parse_msg_to_clean_text($umanager->msg) . chr(10)); } else { fwrite(STDOUT, "user: {$uname} NOT deleted:" . chr(10) . parse_msg_to_clean_text($umanager->msg) . chr(10)); } } } exit(1);
function delete_action($user_id = NULL) { //deleting one user if (!is_null($user_id)) { $user = UserModel::getUser($user_id); //check user if (!Request::getArray('user_ids') && empty($user)) { PageLayout::postMessage(MessageBox::error(_('Fehler! Der zu löschende Benutzer ist nicht vorhanden oder Sie haben keinen Nutzer ausgewählt.'))); //antwort ja } elseif (!empty($user)) { //CSRFProtection::verifyUnsafeRequest(); //if deleting user, go back to mainpage $parent = ''; //deactivate message if (!Request::int('mail')) { $dev_null = new blackhole_message_class(); $default_mailer = StudipMail::getDefaultTransporter(); StudipMail::setDefaultTransporter($dev_null); } //preparing delete $umanager = new UserManagement(); $umanager->getFromDatabase($user_id); //delete if ($umanager->deleteUser(Request::option('documents', false))) { $details = explode('§', str_replace(array('msg§', 'info§', 'error§'), '', substr($umanager->msg, 0, -1))); PageLayout::postMessage(MessageBox::success(htmlReady(sprintf(_('Der Benutzer "%s %s (%s)" wurde erfolgreich gelöscht.'), $user['Vorname'], $user['Nachname'], $user['username'])), $details)); } else { $details = explode('§', str_replace(array('msg§', 'info§', 'error§'), '', substr($umanager->msg, 0, -1))); PageLayout::postMessage(MessageBox::error(htmlReady(sprintf(_('Fehler! Der Benutzer "%s %s (%s)" konnte nicht gelöscht werden.'), $user['Vorname'], $user['Nachname'], $user['username'])), $details)); } //reavtivate messages if (!Request::int('mail')) { StudipMail::setDefaultTransporter($default_mailer); } //sicherheitsabfrage } else { $user_ids = Request::getArray('user_ids'); if (count($user_ids) == 0) { PageLayout::postMessage(MessageBox::error(_('Bitte wählen Sie mindestens einen Benutzer zum Löschen aus.'))); $this->redirect('show' . $parent); return; } //CSRFProtection::verifyUnsafeRequest(); //deactivate message if (!Request::int('mail')) { $dev_null = new blackhole_message_class(); $default_mailer = StudipMail::getDefaultTransporter(); StudipMail::setDefaultTransporter($dev_null); } foreach ($user_ids as $i => $user_id) { $users[$i] = UserModel::getUser($user_id); //preparing delete $umanager = new UserManagement(); $umanager->getFromDatabase($user_id); //delete if ($umanager->deleteUser(Request::option('documents', false))) { $details = explode('§', str_replace(array('msg§', 'info§', 'error§'), '', substr($umanager->msg, 0, -1))); PageLayout::postMessage(MessageBox::success(htmlReady(sprintf(_('Der Benutzer "%s %s (%s)" wurde erfolgreich gelöscht'), $users[$i]['Vorname'], $users[$i]['Nachname'], $users[$i]['username'])), $details)); } else { $details = explode('§', str_replace(array('msg§', 'info§', 'error§'), '', substr($umanager->msg, 0, -1))); PageLayout::postMessage(MessageBox::error(htmlReady(sprintf(_('Fehler! Der Benutzer "%s %s (%s)" konnte nicht gelöscht werden'), $users[$i]['Vorname'], $users[$i]['Nachname'], $users[$i]['username'])), $details)); } } //reactivate messages if (!Request::int('mail')) { StudipMail::setDefaultTransporter($default_mailer); } } } }