info@a-coding-project.de

MediaWiki: User-Verwaltung

Die Rechte von anonymen Usern ist ein gutes Beispiel dafür, mit welchen Optionen die Administratoren die Rechte und Möglichkeiten der User beeinflussen können. Der folgende Abschnitt der Dokumentation zeigt einige der wichtigsten Optionen zur Konfiguration.
Die Standardrechte für die User bzw. die Usergruppen sind in der DefaultSettings.php hinterlegt. Die folgenden Tabellen zeigen zum einen die wichtigsten Usergruppen und zum anderen ein paar der bedeutendesten Rechtebereiche, die aktiviert bzw. deaktiviert werden können.

Usergruppe Bedeutung
* Alle Gruppen
User registrierte User
Sysop Administratoren
Emaiconfirmed registrierte User mit Email-Adresse
... und die Rechtebereiche:

Rechtebereiche Bedeutung
Edit bearbeiten von ungeschützten Artikeln
Createaccount Anlegen neuer User-Accounts
Createpage Anlegen von neuen Seiten ("edit" notwendig!)
Move Umbenennen von Titeln ungeschützer Artikel

Welche User dürfen Artikel nicht verändern?

In Abhängigkeit der User-Kategorie müssen dazu in der "LocalSettings.php"-Datei entsprechende Variablen hinzugefügt werden.

//Anonyme User: 
$wgGroupPermissions['*']['edit'] = true;

//Alle User außer Administratoren:
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['user']['edit'] = false;
$wgGroupPermissions['sysop']['edit'] = true;

Einschränkung beim Einstellen von neuen Artikeln

Allgemein gibt es nur eine Möglichkeit, um User davor zu bewahren bzw. die Anzahl der User einzuchränken, neue Artikel einzustellen. Man muss die Gruppe, zu der der betreffende User gehört, ändern. Es gibt keine Option, einen bestimmten User von bestimmten Artikeln auszuschließen. Auch hier muss die LocalSettings.php-Datei entsprechend erweitert werden:

//Anonyme User: 
$wgGroupPermissions['*']['createpage'] = false;
 
//User mit min. 4 Tage alten Account
$wgGroupPermissions['*'            ]['createpage'] = false;
$wgGroupPermissions['user'         ]['createpage'] = false;
$wgGroupPermissions['autoconfirmed']['createpage'] = true;
$wgAutoConfirmAge = 86400 * 4;

Passwort-Rücksetzung für einen User

Wenn ein User sein Passwort vergessen hat, gibt es für den Administrator zwei Alternativen, um ein neues Passwort zu vergeben. Zum einen gibt es ein Skript, was jedoch auf Shell-Ebene - nicht im Browser! - ausgeführt werden muss. Im Ordner "maintenance" befindet sich das Skript "changePassword.php", was in der Kommandozeile wiefolgt aufgerufen werden muss: "
php changePassword.php --user=username --password=somepass". Damit wird das Passwort automatisch aktualisiert.
Die zweite Möglichkeit ist die direkte Änderung des Passwortes in der Datenbank. In Abhängigkeit der verwendeten Datenbank-Version sind dazu die folgenden Kommandos notwendig:

MySQL: 
UPDATE user SET user_password = MD5(CONCAT(user_id, '-',  
           MD5('somepass'))) WHERE user_name = 'someuser';

PostgreSQL: 
UPDATE mwuser SET user_password = md5(user_id || '-' || 
           md5('somepass')) WHERE user_name='someuser';

Hinweis: Wenn der Fehler "dbname.user table does not exist" angezeigt wird, muss die Variable $wgDBprefix in der "LocalSettings.php"-Datei überprüft werden. Wenn ein Wert bei der Variable angegeben ist, muss im SQL-Statement das "UPDATE user" durch "UPDATE [Wert von $wgDBprefix_user]" ersetzt werden.

Über uns

Stefan Wienströer

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project

Auch interessant