Benutzer:Christian/Neue Benutzerrechte: Unterschied zwischen den Versionen

Aus ZUM-Unterrichten
(Die Seite wurde neu angelegt: „= Wie migrieren wir zu dem neuen Benutzerschema = {{int:filedesc}} Christian {{int:lang}} de __TOC__ {{int:toc}} right == 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 <code>$wgExtensionFunctions[]</code> * Manche Namensräume…“)
 
KKeine Bearbeitungszusammenfassung
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 30: Zeile 30:
! Schreiben im Haupt-NS    || ❌      || ✅        || ✅                      || ✅          ||
! Schreiben im Haupt-NS    || ❌      || ✅        || ✅                      || ✅          ||
|-
|-
! Diskussionseiten sehen  || ❌      || ✅        || ✅                      || ✅          || unklar<ref>Ob das nur per UI gemacht ist</ref>
! Diskussionseiten sehen  || ❌      || ✅        || ✅                      || ✅          || unklar ob das nur per UI gemacht ist
|-
|-
! Diskussionseiten bearbeiten || ❌  || ✅        || ✅                      || ✅          || unklar<ref>Ob das nur per UI gemacht ist</ref>
! Diskussionseiten bearbeiten || ❌  || ✅        || ✅                      || ✅          || unklar ob das nur per UI gemacht ist
|-
|-
! Schreiben im Vorlagen-NS || ❌      ||         || ✅                      || ✅          || via <code>$wgNamespaceProtection</code>
! Editier-Knopf sichtbar  || ❌      ||         || ✅                      || ✅          ||
|-
|-
! PageForms bearbeiten    || ❌      ||         ||                     || ✅          || unklar<ref>PageForms machen glaub nur Probleme im Userprofil und sind sonst nicht verwendet</ref>
! Replacetext nutzen      || ❌      ||         ||                     || ✅          || eigenartig, eigentlich sollten das nur SysOps dürfen
|-
|-
! Nutzer registrieren      || ❌      ||         ||                     || ✅          ||
! Seiten Löschen          || ❌      ||         ||                     || ✅          ||
|-
|-
! Editier-Knopf sichtbar  || ❌      || ✅        || ✅                      || ✅          ||
! Schreiben im Vorlagen-NS || ❌      || ✴️ (Gruppe: lernpfadprofi)
0
᧐‍
! ✅                      || ✅          || via <code>$wgNamespaceProtection</code>
|-
|-
! Replacetext nutzen      || ❌      ||         ||                     || ✅          || eigenartig<ref>Angemeldete Nutzer brauchen das eigentlich nicht</ref>
! PageForms bearbeiten    || ❌      ||         ||                     || ✅          || unklar, wird eigentlich nicht verwendet
außer auf den Profilseiten, und dort macht es Probleme
|-
|-
! Seiten Löschen          || ❌      ||         ||                     || ✅          ||
! Nutzer registrieren      || ❌      ||         ||                     || ✅          ||
|}
|}
* Template Namensraum Editieren ist speziell geschützt<pre>$wgNamespaceProtection[NS_TEMPLATE] = array( 'edit-template' );</pre>
* Template Namensraum Editieren ist speziell geschützt<pre>$wgNamespaceProtection[NS_TEMPLATE] = array( 'edit-template' );</pre>


Zeile 89: Zeile 92:
! Lesen im Benutzer-NS          ||    ✅ ||        ✅ ||    ✅ ||    ✅ ||        ✅ ||
! Lesen im Benutzer-NS          ||    ✅ ||        ✅ ||    ✅ ||    ✅ ||        ✅ ||
|-
|-
! Kann Seitenbewerten lesen    ||    ✅ ||        ✅ ||    ✅ ||    ✅ ||        ✅ ||
! Kann Seitenbewerten lesen    ||    ✅ ||        ✅ ||    ✅ ||    ✅ ||        ✅ ||[https://www.mediawiki.org/wiki/Extension:VoteNY Extension:VoteNY]
|-
|-
! Schreiben im Benutzer-NS      ||    ❌ ||        ✅ ||    ✅ ||    ✅ ||        ✅ || nur die **eigene Benutzerseite**
! Schreiben im Benutzer-NS      ||    ❌ ||        ✅ ||    ✅ ||    ✅ ||        ✅ || nur die '''eigene''' Benutzerseite
evtl. via [https://www.mediawiki.org/wiki/Extension:UserPageEditProtection Extension:UserPageEditProtection]
|-
|-
! Diskussionseiten sehen        ||    ❌ ||        ✅ ||    ✅ ||    ✅ ||        ✅ || unklar<ref>Ob das nur per UI gemacht ist</ref>
! Diskussionseiten sehen        ||    ❌ ||        ✅ ||    ✅ ||    ✅ ||        ✅ ||
|-
|-
! Diskussionseiten bearbeiten  ||    ❌ ||        ✅ ||    ✅ ||    ✅ ||        ✅ || unklar<ref>Ob das nur per UI gemacht ist</ref>
! Diskussionseiten bearbeiten  ||    ❌ ||        ✅ ||    ✅ ||    ✅ ||        ✅ ||
|-
|-
! Kann Ideen lesen              ||    ❌ ||        ❌ ||    ✅ ||    ✅ ||        ✅ ||
! Kann Ideen lesen              ||    ❌ ||        ❌ ||    ✅ ||    ✅ ||        ✅ ||[https://m.mediawiki.org/wiki/Extension:InlineComments Extension:InlineComments][https://www.mediawiki.org/wiki/Extension:CommentStreams Extension:CommentStreams]
|-
|-
! Kann Ideen posten            ||    ❌ ||        ❌ ||    ✅ ||    ✅ ||        ✅ ||
! Kann Ideen posten            ||    ❌ ||        ❌ ||    ✅ ||    ✅ ||        ✅ ||[https://m.mediawiki.org/wiki/Extension:InlineComments Extension:InlineComments][https://www.mediawiki.org/wiki/Extension:CommentStreams Extension:CommentStreams]
|-
|-
! Kann Seitenbewertung abgeben  ||    ❌ ||        ❌ ||    ✅ ||    ✅ ||        ✅ ||
! Kann Seitenbewertung abgeben  ||    ❌ ||        ❌ ||    ✅ ||    ✅ ||        ✅ ||[https://www.mediawiki.org/wiki/Extension:VoteNY Extension:VoteNY]
|-
|-
! Schreiben im Vorlagen-NS      ||    ❌ ||        ❌ ||    ❌ ||    ✅ ||        ✅ || via <code>$wgNamespaceProtection</code>
! Schreiben im Vorlagen-NS      ||    ❌ ||        ❌ ||    ❌ ||    ✅ ||        ✅ || via <code>$wgNamespaceProtection</code>
|-
|-
! Schreiben im Haupt-NS        ||    ❌ ||        ❌ ||    ❌ ||    ✅ ||        ✅ ||
! Schreiben im Haupt-NS        ||    ❌ ||        ❌ ||    ❌ ||    ✅ ||        ✅ ||via <code>$wgNamespaceProtection</code>
|-
|-
! Seiten Löschen                ||    ❌ ||        ❌ ||    ❌ ||    ✅ ||        ✅ ||
! Seiten Löschen                ||    ❌ ||        ❌ ||    ❌ ||    ✅ ||        ✅ ||
|-
|-
! PageForms bearbeiten          ||    ❌ ||        ❌ ||    ❌ ||    ❌ ||        ✅ || unklar<ref>PageForms machen glaub nur Probleme im Userprofil und sind sonst nicht verwendet</ref>
! PageForms bearbeiten          ||    ❌ ||        ❌ ||    ❌ ||    ❌ ||        ✅ ||
|-
|-
! Nutzer registrieren          ||    ❌ ||        ❌ ||    ❌ ||    ❌ ||        ✅ ||
! Nutzer registrieren          ||    ❌ ||        ❌ ||    ❌ ||    ❌ ||        ✅ ||
Zeile 115: Zeile 119:
! Editier-Knopf sichtbar        ||    ❌ ||        ❌ ||    ❌ ||    ❌ ||        ✅ ||
! Editier-Knopf sichtbar        ||    ❌ ||        ❌ ||    ❌ ||    ❌ ||        ✅ ||
|-
|-
! Replacetext nutzen            ||    ❌ ||        ❌ ||    ❌ ||    ❌ ||        ✅ || eigenartig<ref>Angemeldete Nutzer brauchen das eigentlich nicht</ref>
! Replacetext nutzen            ||    ❌ ||        ❌ ||    ❌ ||    ❌ ||        ✅ ||
|}
|}


Problem: '''jeder''' Namensräume (auch durch Extensions neu hinzumkommende) müssen wir erstmal schützen mittels <code>$wgNamespaceProtect</code> und dann die Gruppen zum-helfer und zum-autor berechtigen darauf zuzugreifen.
== Mögliches Vorgehen ==


== Vorgeschlagene Änderungen ==
# Einführung einer neuen Gruppe <code>zum-helfer</code>
# Einführung einer neuen Gruppe <code>zum-autor</code>
# alle existierende Nutzern in die Gruppe <code>zum-helfer</code> und <code>zum-autor</code> aufnehmen
#* per API
# ⁉️ mittels <code>$wgNamespaceProtect</code> alle bestehenden Namensräume vor Änderungen schützen mit der Berechtigung ( <code><NS>-edit</code> )
# ⁉️ die neue <code><NS>-edit</code> den Gruppen <code>zum-autor</code>/<code>zum-helfer</code> zuweisen
#

Version vom 5. Mai 2024, 12:27 Uhr

Wie migrieren wir zu dem neuen Benutzerschema

Beschreibung Christian ⧼lang⧽ de

Inhaltsverzeichnis right

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
  • 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 angemeldet+lernpfadprofi 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)

0 ⃣ ᧐‍

via $wgNamespaceProtection
PageForms bearbeiten unklar, wird eigentlich nicht verwendet

außer auf den Profilseiten, und dort macht es Probleme

Nutzer registrieren
  • Template Namensraum Editieren ist speziell geschützt
    $wgNamespaceProtection[NS_TEMPLATE] = array( 'edit-template' );


  1. 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'
       );
  2. 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;
      
  3. Lernpfadprofi
    • kann Template Namensraum editieren
      $wgGroupPermissions['lernpfadprofi']['edit-template'] = true;
  4. Sysops und Co
    • kann Template Namensraum editieren
      $wgGroupPermissions['sysop']['edit-template'] = true;

Neues Schema

  1. Anonyme Besucher
    • kann sich selber registrieren
  2. Angemeldete Nutzer + verifizierte E-Mail
    • kann nur eigene Benutzerseite bearbeiten
    • kann Diskussionsseiten bearbeiten
  3. ZUM-Unterrichten Helfer
    • Schüler sind ausgeschlossen
  4. ZUM-Unterrichten Autor
    • Autorencheck
anonym angemeldet Helfer Autor sysops + co Anmerkung
Lesen bestimmter Seiten
Lesen im Haupt-NS
Lesen im Benutzer-NS
Kann Seitenbewerten lesen Extension:VoteNY
Schreiben im Benutzer-NS nur die eigene Benutzerseite

evtl. via Extension:UserPageEditProtection

Diskussionseiten sehen
Diskussionseiten bearbeiten
Kann Ideen lesen Extension:InlineCommentsExtension:CommentStreams
Kann Ideen posten Extension:InlineCommentsExtension:CommentStreams
Kann Seitenbewertung abgeben 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

  1. Einführung einer neuen Gruppe zum-helfer
  2. Einführung einer neuen Gruppe zum-autor
  3. alle existierende Nutzern in die Gruppe zum-helfer und zum-autor aufnehmen
    • per API
  4. ⁉️ mittels $wgNamespaceProtect alle bestehenden Namensräume vor Änderungen schützen mit der Berechtigung ( <NS>-edit )
  5. ⁉️ die neue <NS>-edit den Gruppen zum-autor/zum-helfer zuweisen