Wie kann man BenutzerInnen löschen/entfernen (FAQ, OJS 2.4.8)

Wir werden von OJS-Nutzern oft gefragt, wie man BenutzerInnen löschen kann.

In OJS kann man BenutzerInnen nicht wirklich löschen. Das liegt daran, dass es im System wichtige Referenzen auf die Person geben kann, die nicht gelöscht werden dürfen (z.B. eine Einreichung, ein Review etc). Wenn man die Person löschen würde, würden die Referenzen auf nicht vorhandene Einträge verweisen und einen Fehler erzeugen.

Daher gibt es in OJS drei Möglichkeiten, BenutzerInnen zumindest teilweise zu löschen. Welche man davon wählen sollte, hängt von der jeweiligen Situation ab.

1. BenutzerInnen aus einer Zeitschrift entfernen

Unter Persönliche Startseite > Zeitschriftenverwalter/in > Bei dieser Zeitschrift registrierte Benutzer/innen sind alle bei der Zeitschrift registrierten Benutzer/innen aufgelistet. Klickt man in der Spalte Aktion auf Entfernen werden dem/der Benutzer/in alle Rollen bei diese Zeitschrift entzogen. Sie ist damit nicht mehr bei der Zeitschrift registriert, aber noch im System aufgeführt, woraus folgt, dass Nutzername und Email-Adresse nicht neu vergeben werden können. Man kann sich Benutzer/innen ohne Rollen unter Persönlichke Startseite > Zeitschriftenverwalter/in > Nutzer/innen ohne Rolle anzeigen anzeigen lassen. Man kann den entfernten Benutzer/innen jederzeit wieder Rollen zuweisen und die Entfernung damit rückgängig machen.

2. BenutzerInnen deaktiveren

Klickt man in einer Auflistung von Benutzer/innen in der Spalte Bearbeiten auf Deaktivieren kann der/die Benutzer/in sich nicht mehr bei dieser Zeitschrift anmelden. Man kann für die Sperrung einen Grund angeben (der beim Einloggversuch angezeigt wird), sie rückgängig machen (“Aktivieren”) und mit “Benutzer entfernen” kombinieren. Benutzername und Email-Adresse bleiben im System und können nicht neu vergeben werden.

3. Benutzer/innen zusammenführen

Dem Löschen am nähesten kommt die dritte Möglichkeit, das “Zusammenführen von Benutzer/innen”. Dabei werden alle Referenzen einer/s Benutzers/in auf eine andere übertragen und somit ist können ihr Benutzername sowie ihre Email-Adresse aus dem System gelöscht werden (und OJS tut das auch). Benutzername und Email-Adressen können daher nach dem Zusammenführen neu vergeben werden.

Man kann zu löschende Benutzer/innen mit einer echten Person zusammenführen, aber man kann auch abstrakte Personen anlegen, wie z.B. Spamuser und/oder DeletedUsers. So kann man später besser auseinanderhalten, aus welchen Quellen die möglichen Referenzen der gelöschten Benutzer/innen ursprünglich stammen.

In OJS 2.4.8. findet man die Funktionalität für das Zusammenführen von Benutzer/innen unter Persönliche Startseite > Zeitschriftenverwalter/in > Benutzer/innen zusammenführen.

PKP FAQ: How to delete a test user account?

Wir mußten mal 2000 Fake-User löschen, das haben wir in phpmyadmin gemacht. Die User stehen in der Tabelle “users”. Aber da kann man einiges falsch machen, das sollte einer der Spezialisten erklären. Auf alle Fälle vor jedem Versuch, sowohl die ganze Datenbank als auch die Tabelle “users” sichern.

Hallo @Aragon,

wenn man User über die Datenbank löscht, dann hat man das oben beschriebene Problem, dass Referenzen auf den User ins Leere zeigen. Das kann schlimmstenfalls dazu führen, dass Seiten nicht mehr angezeigt werden können, weil die notwendigen Daten nicht geladen werden können.

Allerdings haben Fake-User meist keine Rerenzen (zumindest nicht, wenn man sich nicht selbst als Autor registrieren kann).

viele Grüße,
Carola

EDIT: Gegen Fake-User sollte man Captcha und Email-Validierung aktivieren (dann kann man zumindest die unvalidierten über die Datenbank schnell und in einem Schritt identifizieren/löschen).

Wenn man sie aus der Tabelle “users” und der Tabelle “user settings” löscht, kann dann noch etwas passieren?
Daniel

Hallo @Aragon,

die User-Ids stehen ja nicht nur in users und user_settings, sondern z.B. auch in articles, review_assignements etc. Man müsste zuerst schauen, wo überall man die User-Ids löschen/behandeln muss, merge macht das automatisch (aber leider nur einzeln).

Carola

Aber wenn man Fake-User aus users und user settings löscht, müßte es doch gehen, oder? Captcha ist inzwischen an, Email-Validierung habe ich bisher keine gefunden. 2000 Fake-User per Hand mit merge bearbeiten, ist mühsam.

Hallo @Aragon,

das kommt drauf an, ob diese Fake User schon etwas gemacht haben, z.B. einen Artikel eingereicht haben. Sobald sie einen Artikel eingereicht haben, steht ihre user_id auch in der Tabelle ‘articles’. Wenn dann der Autor des Artikels aufgerufen wird, wird ein Fehler produziert.

Bei mir führt das z.B. dazu, dass ich keinen Editor mehr zuweisen und die Einreichung nicht archivieren kann.

Wenn die Fake-User nichts im System gemacht haben und es somit keine Referenzen auf ihre Id gibt, dann kann man sie über die Datenbank löschen, ohne dass es zu Problemen kommt.

Die Email-Validierung kann man auch in der Konfigurationsdatei einstellen (require_validation).

Carola

1 Like

Man muss die User ja nicht einzeln mergen. Man kann alle User, die man mergen möchte über die Checkboxes auswählen und dann unten auf den Merge-Button klicken (anstatt den Merge-Link in der Zeile des Users zu benutzen).

Bei 2000 Fake Usern ist auch das mühsam, aber letztendlich muss man eh einzeln durchgehen und entscheiden, wer gelöscht wird, auch wenn man über die Datenbank geht.

Carola

Systemadministratoren können folgendes Tool verwenden:

tools/mergeUsers.php

Carola