Benutzer:Christian/Neue Benutzerrechte
Aus ZUM-Unterrichten
Wie migrieren wir zu dem neuen Benutzerschema?
Beachtenswert
- Die Nutzergruppe user gibt es nicht in echt
- Sie ist virtuell im Code von MediaWiki und wird jedem angemeldeten Benutzer zugewiesen.
- Bestimmte Extensions verändern die Gruppenrechte, nachdem die LocalSettings.php bereits evaluiert wurde. Siehe
$wgExtensionFunctions[]
- Manche Namensräume sind durch spezielle Rechte geschützt, z.B. die Talk-Namensräume durch createtalk statt createpage
- Das erschwert das Nachdenken im Zusammenspiel mit
$wgNamespaceProtection
- Das erschwert das Nachdenken im Zusammenspiel mit
- Manche Rechte sind Fähigkeiten, z.B. autopatrol
$wgNamespaceProtection
funktioniert auf folgende Weise:- Man kann damit Namespaces schützen, indem man vorgibt, dass ein Nutzer ein bestimmtes Recht erst haben muss, bevor er editieren kann.
- Man kann Lese-Rechte damit nicht entziehen
- Unklar: Vermutlich können Extension-spezifische Sonderrechte damit nicht per Namensraum entfernt werden
Aktuelles Schema
- Anmerkung
- Diese Aufzählung ist nicht vollständig, sondern nur in Bezug auf das neue Schema bezogen.
anonym | angemeldet | sysops + co | Anmerkung | |
---|---|---|---|---|
Lesen bestimmter Seiten | ✅ | ✅ | ✅ | |
Lesen im Haupt-NS | ✅ | ✅ | ✅ | |
Schreiben im Haupt-NS | ❌ | ✅ | ✅ | |
Diskussionseiten sehen | ❌ | ✅ | ✅ | unklar ob das nur per UI gemacht ist |
Diskussionseiten bearbeiten | ❌ | ✅ | ✅ | unklar ob das nur per UI gemacht ist |
Editier-Knopf sichtbar | ❌ | ✅ | ✅ | |
Replacetext nutzen | ❌ | ✅ | ✅ | eigenartig, eigentlich sollten das nur SysOps dürfen |
Seiten Löschen | ❌ | ✅ | ✅ | |
Schreiben im Vorlagen-NS | ❌ | ✴️
(Gruppe: lernpfadprofi) |
✅ | via $wgNamespaceProtection
|
PageForms bearbeiten | ❌ | ❌ | ✅ | unklar, wird eigentlich nicht verwendet
außer auf den Profilseiten, und dort macht es Probleme |
Nutzer registrieren | ❌ | ❌ | ✅ |
Aktuelle Umsetzung
- Template Namensraum Editieren ist speziell geschützt
$wgNamespaceProtection[NS_TEMPLATE] = array( 'edit-template' );
Hinweise
- Anonyme Besucher
- können NICHT schreiben
$wgGroupPermissions['*']['edit'] = false;
- können NICHT registrieren
$wgGroupPermissions['*']['createaccount'] = false;
- können NICHT den Editierenknopf sehen
$wgGroupPermissions['*']['viewedittab'] = false;
- können lesen
$wgGroupPermissions['*']['read'] = true;
- können ein paar spezielle Seiten anschauen
$wgWhitelistRead = array( $wgMetaNamespace.':Datenschutz', $wgMetaNamespace.':Über '.$wgSitename, $wgMetaNamespace.':Impressum' );
- können NICHT schreiben
- Angemeldete Benutzer
- können lesen _Christian: unklar warum das gebraucht wird; sollte ja durch
['*']['read'] = true;
bereits erledigt sein_$wgGroupPermissions['user']['read'] = rue;
- können editieren _Christian: unklar warum das gebraucht wird. Ich vermute für VE_
$wgGroupPermissions['user']['writeapi'] = true;
- können replacetext verwenden _Christian: das scheint mir nicht so schlau_
$wgGroupPermissions['user']['replacetext'] = true;
- kann Seiten löschen _Christian: eigenartig_
$wgGroupPermissions['user']['delete'] = true; $wgGroupPermissions['user']['import'] = true; $wgGroupPermissions['user']['importupload'] = true;
- können lesen _Christian: unklar warum das gebraucht wird; sollte ja durch
- Lernpfadprofi
- kann Template Namensraum editieren
$wgGroupPermissions['lernpfadprofi']['edit-template'] = true;
- kann Template Namensraum editieren
- Sysops und Co
- kann Template Namensraum editieren
$wgGroupPermissions['sysop']['edit-template'] = true;
- kann Template Namensraum editieren
Neues Schema
- Anonyme Besucher
- kann sich selber registrieren
- Angemeldete Nutzer + verifizierte E-Mail
- kann nur eigene Benutzerseite bearbeiten
- kann Diskussionsseiten bearbeiten
- ZUM-Unterrichten Helfer
- Schüler sind ausgeschlossen
- ZUM-Unterrichten Autor
- Autorencheck
anonym | angemeldet | Helfer | Autor | sysops + co | Anmerkung | |
---|---|---|---|---|---|---|
Lesen bestimmter Seiten | ✅ | ✅ | ✅ | ✅ | ✅ | |
Lesen im Haupt-NS | ✅ | ✅ | ✅ | ✅ | ✅ | |
Lesen im Benutzer-NS | ✅ | ✅ | ✅ | ✅ | ✅ | |
Kann Seitenbewertung lesen | ✅ | ✅ | ✅ | ✅ | ✅ | z.B. Extension:VoteNY |
Schreiben im Benutzer-NS | ❌ | ✅ | ✅ | ✅ | ✅ | nur die eigene Benutzerseite
evtl. via Extension:UserPageEditProtection |
Diskussionseiten sehen | ❌ | ✅ | ✅ | ✅ | ✅ | |
Diskussionseiten bearbeiten | ❌ | ✅ | ✅ | ✅ | ✅ | |
Kann Ideen lesen | ❌ | ❌ | ✅ | ✅ | ✅ | z.B. Extension:InlineComments |
Kann Ideen posten | ❌ | ❌ | ✅ | ✅ | ✅ | z.B. Extension:InlineComments |
Kann Seitenbewertung abgeben | ❌ | ❌ | ✅ | ✅ | ✅ | z.B. Extension:VoteNY |
Schreiben im Vorlagen-NS | ❌ | ❌ | ❌ | ✅ | ✅ | via $wgNamespaceProtection
|
Schreiben im Haupt-NS | ❌ | ❌ | ❌ | ✅ | ✅ | via $wgNamespaceProtection
|
Seiten Löschen | ❌ | ❌ | ❌ | ✅ | ✅ | |
PageForms bearbeiten | ❌ | ❌ | ❌ | ❌ | ✅ | |
Nutzer registrieren | ❌ | ❌ | ❌ | ❌ | ✅ | |
Editier-Knopf sichtbar | ❌ | ❌ | ❌ | ❌ | ✅ | |
Replacetext nutzen | ❌ | ❌ | ❌ | ❌ | ✅ |
Problem: jeder Namensräume (auch durch Extensions neu hinzumkommende) müssen wir erstmal schützen mittels $wgNamespaceProtect
und dann die Gruppen zum-helfer und zum-autor berechtigen darauf zuzugreifen.
Mögliches Vorgehen
- Einführung einer neuen Gruppe
zum-group-helfer
- Einführung einer neuen Gruppe
zum-group-autor
- alle existierende Nutzern in die Gruppe
zum-group-helfer
undzum-group-autor
aufnehmen- per API
- ⁉️ mittels
$wgNamespaceProtect
alle bestehenden Namensräume vor Änderungen schützen mit der Berechtigung (zum-permission-verified
) - ⁉️ mittels
$wgNamespaceProtect
die Namensräume MAIN, TEMPLATE vor Änderungen schützen mit der Berechtigung (zum-permission-autor
) - ⁉️ die neue Berechtigung
zum-permission-verified
den Gruppenzum-group-autor
/zum-group-helfer
zuweisen - ⁉️ die neue Berechtigung
zum-permission-autor
den Gruppenzum-group-autor
zuweisen - Extension:UserPageEditProtection installieren und einrichten
- Editieren nur mit bestätigter Email-Adresse
$wgEmailConfirmToEdit = true;
$wgEmailAuthentication = true;
- edit Berechtigung für user Gruppe entfernen
$wgGroupPermissions['user']['edit'] = false;
- Meilenstein Jetzt können wir die Registrierung öffnen
- Selbst registrierende Nutzer können nur auf eigener Benutzerseite arbeiten
- bestehende Autoren können weiterhin überall arbeiten
- replacetext wieder auf sysop einschränken
- ❓PageForm aus UserProfile mechanismus entfernen