MediaWiki
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
- Das Skin aus Gitlab in das Verzeichnis
/skins
der MediaWiki-Installation klonen:git clone -b REL1_39 --recurse-submodules https://gitlab.kit.edu/kit/kastel/sdq/code/mediawiki/sdq-vector.git
- Die Roboto-Schriftarten werden dazu aus dem Git-Repository von FontFaceKit (https://github.com/FontFaceKit/roboto) geholt
- Danach liegen die Schriftarten im Verzeichnis
skins/sdq-vector/fonts/roboto
.
- In der
LocalSettings.php
folgende Aufrufe hinzufügen:
wfLoadSkin( 'SDQ-Vector' );
$wgDefaultSkin = "vector-2022";
wgVectorResponsive=true;
/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.
- Es ist möglich, nur KIT-Konten die Anmeldung zu erlauben oder mehreren Einrichtungen aus der DFN-Föderation, z.B. andere Universitäten.
- Als URLs muss man die des Wikis nennen. Falls man URL-Rewriting verwendet, sind das zwei URLs, z.B. für dieses Wiki:
- Man erhält eine Client-ID und ein Secret, das man in den u.g. Konfigurationsdateien einfügen muss.
- 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";