MediaWiki

Aus SDQ-Wiki

Dieses Wiki verwendet die Software MediaWiki. Dazu wurde ein Skin erstellt, das auf das Corporate Design des KIT angepasst ist. Weiterhin ist es möglich, sich mit einem KIT-Benutzerkonto anzumelden. Auf dieser Seite beschreiben wir, wie man das Skin und den Login einrichtet. Ansprechperson für diese Erweiterungen ist Erik Burger.

Skin im KIT-Design

Basierend auf dem populären Vector-Skin von MediaWiki wurde das Skin, das auch in diesem Wiki verwendet wird, auf das Corporate Design des KIT angepasst. Das Skin kann hier heruntergeladen werden: https://gitlab.kit.edu/kit/kastel/sdq/code/mediawiki/sdq-vector

Derzeit werden MediaWiki 1.31, 1.35 (LTS) und 1.39 (LTS) unterstützt. Nur die Version für MediaWiki 1.39 (REL1_39, entspricht master) wird aktuell gehalten.

Installation

wfLoadSkin( 'SDQ-Vector' );
$wgDefaultSkin = "vector-2022"; 
wgVectorResponsive=true;
Achtung: Das Skin kann nicht gleichzeitig mit dem Vector-Skin aktiviert sein. Das Vector-Skin kann zwar noch in /skins liegen, der Aufruf wfLoadSkin( 'Vector' ); muss jedoch entfernt oder auskommentiert werden.
  • Das Skin ist bis Version 1.35 nur für den klassischen Stil (Legacy Mode) angepasst, ab Version 1.39 für den modernen Stil (Vector 2022) angepasst.

Anpassungen (≥ 1.39)

Die folgenden Anpassungen können z.B. in MediaWiki:Common.css eingefügt werden.

Das moderne Vector-Layout von 2022 ist standardmäßig in der Breite beschränkt. Um die Vorlage auf Vollbreite umzustellen:

.mw-page-container, .mw-workspace-container, .mw-content-container, #mw-sidebar-checkbox:not(:checked) ~ .vector-sidebar-container-no-toc ~ .mw-content-container, .vector-sticky-header, .mw-article-toolbar-container {
    max-width: unset;
}

Der Banner oben kann durch folgendes Schnipsel angepasstwerden, z.B. mit Motiven aus der KIT-Bildwelt:

.kit-banner {
    background-image: url(images/KIT-Bildwelt-Faecher_02Ebene_Mobilitaet_1920x140.jpg);
    background-color: #1aa0c3;
}

Anmeldung per KIT-Konto

Um sich per KIT-Konto am Wiki anmelden zu können, sind folgende Schritte nötig:

  • Beim Dienst OpenID Connect des SCC (Matthias Bonn) anmelden.
  • Im Wiki die Erweiterungen PluggableAuth und OpenID Connect aus dem Master-Branch (Version ≥ 6.0) installieren.
  • In der LocalSettings.php folgendes einfügen (###CLIENTID### usw. durch die tatsächlichen Werte ersetzen):
# OpenID Authentification
wfLoadExtension( 'PluggableAuth' );
wfLoadExtension( 'OpenIDConnect' );

$wgPluggableAuth_Config[] = [
        'plugin' => 'OpenIDConnect',
        'buttonLabelMessage' => 'login-message-kit', 
        'data' => [
                'providerURL' => 'https://oidc.scc.kit.edu/auth/realms/kit', # oder https://bwidm.scc.kit.edu/oidc/realms/bwidm für föderierten Login
                'clientID' => '###CLIENTID###',
                'clientsecret' => '###CLIENTSECRET###',
                'scope' => ['openid', 'profile', 'email'],
                'name' => 'KIT-Konto',
                'icon' => '###URL_LOGO###'
        ]
];

$wgGroupPermissions['*']['autocreateaccount'] = true;
$wgPluggableAuth_EnableAutoLogin = true; # nur für private Wikis; Benutzer werden automatisch auf Anmeldeseite geleitet, falls sie nicht angemeldet sind
$wgPluggableAuth_EnableLocalLogin = true; # weiterhin lokale Benutzerkonten erlauben

$wgOpenIDConnect_UseRealNameAsUserName = true;
$wgOpenIDConnect_UseEmailNameAsUserName = true;
$wgOpenIDConnect_MigrateUsersByUserName = true;

# In Benutzernamen das '@'-Symbol und Doppelpunkte erlauben
$wgInvalidUsernameCharacters = '';

# CSS auf Login-Seite erlauben, um z.B. den KIT-Anmeldelink anders zu färben.
$wgAllowSiteCSSOnRestrictedPages = true;

Login-Knopf/-Text

  • Auf der Anmeldeseite von Mediawiki sollte man einen Text einfügen, damit Benutzer wissen, dass sie zuerst den Knopf drücken müssen, bevor sie die Benutzerdaten eingeben. Dieser Text kann auf MediaWiki:Loginprompt verändert werden.
  • Um den Text des Login-Knopfs zu erstellen, bitte die Seiten MediaWiki:Login-message-kit oder MediaWiki:Login-message-kit/de anlegen und bearbeiten.
  • Zum Anmelden müssen die Benutzer dann auf den Knopf Mit KIT-Konto anmelden klicken, ohne zunächst Benutzerdaten einzugeben.
    • Die Benutzer werden dann auf die Shibboleth-Seite des SCC weitergeleitet.
    • Um dies auf der Anmeldeseite anzuzeigen, kann der Text MediaWiki:Loginprompt des Wikis geändert werden.
    • Anmeldung mit lokalen Benutzerkonten des Wikis ist weiterhin möglich.
    • Beispiel: Anmeldeseite dieses Wikis

Weiterhin wurde die MediaWiki:Common.css so angepasst, dass der KIT-Login-Knopf in KIT-Grün gefärbt ist und den KIT-Fächer anzeigt.

button#mw-input-pluggableauthlogin0 {
  background-color: #00876C;
  border-color: transparent;
  color: white;
  background-image: url(images/kit-faecher-icon-white.svg);
  background-size: 1.2em;
  background-repeat: no-repeat;
  background-position-y: center;
  background-position-x: .3em;
  padding-left: calc(12px + 1.2em);
}

button#mw-input-pluggableauthlogin0:hover {
background-color: #007755;
border-color: #007755;
}

Benutzergruppen

  • Mit der o.g. Konfiguration wird für jeden Benutzer, der sich mit KIT-Konto anmeldet, ein Benutzer im Wiki angelegt
  • Dieser Benutzer ist in der Gruppe user und hat die entsprechenden Rechte
  • Es empfiehlt sich daher, der Gruppe user minimale Rechte zu erteilen und weitere Gruppen zu erstellen (z.B. mitarbeiter, studierende).
  • Die Benutzer müssen sich dann einmalig per KIT-Konto anmelden, und ein Wiki-Admin/-Bürokrat muss sie über Spezial:Benutzerrechte in die o.g. Gruppen hinzufügen

Klartextnamen für Benutzerkonten

  • Standardmäßig werden die Benutzer mit ihrem SCC-Kürzel ab1234 angezeigt.
  • Über die Erweiterung Realnames können diese in der UI durch den echten Namen ersetzt werden
  • Wir verwenden $wgRealnamesLinkStyle = "replace";