Extensions
(Page créée avec « == Présentation == Cette page a pour objet de décrire les extensions supplémentaires du MediaWiki qui ont dû être installées et/ou paramétrées pour pouvoir le pers... ») |
m (Jordan a déplacé la page MediaWiki/Extensions vers Outillage/MediaWiki/Extensions sans laisser de redirection) |
Version du 6 juin 2019 à 12:22
Sommaire
Présentation
Cette page a pour objet de décrire les extensions supplémentaires du MediaWiki qui ont dû être installées et/ou paramétrées pour pouvoir le personnaliser.
La liste des extensions installées est disponible sur la page Spécial:Version
LDAP Authentication Plugin
Description
Cette extension permet d'authentifier un utilisateur via son compte Active Directory. Il permet également un filtrage de connexion en fonction des groupes d'appartenance dans l'AD.
La page officielle de cette extension se trouve à LDAP Authentication Plugin
Implémentation
Téléchargement de l'extension via la commande :
wget https://extdist.wmflabs.org/dist/extensions/LdapAuthentication-REL1_31-b19888c.tar.gz
Décompression du paquet de l'extension via dans le dossier des extension du MediaWiki :
tar -xzf LdapAuthentication-REL1_31-b19888c.tar.gz -C /dossier/installation/du/mediawiki/extensions
Paramétrage
Ajout des lignes suivantes dans le fichier LocalSettings.php :
## Beginning of LDAP Authentication/AD Configuration
require_once ("$IP/extensions/LdapAuthentication/LdapAuthentication.php");
$wgAuth = new LdapAuthenticationPlugin();
$wgLDAPDomainNames = array(
'undomaine'
);
$wgLDAPServerNames = array(
'undomaine' => 'AdServer.undomaine.com'
);
$wgLDAPSearchStrings = array(
'undomaine' => 'USER-NAME@undomaine.com'
);
$wgLDAPEncryptionType = array(
'undomaine' => 'clear'
);
$wgLDAPUseLocal = false;
$wgMinimalPasswordLength = 1;
$wgLDAPBaseDNs = array(
'undomaine' => 'DC=undomaine,DC=com'
);
$wgLDAPSearchAttributes = array(
'undomaine' => 'sAMAccountName'
);
$wgLDAPRetrievePrefs = array(
'undomaine' => true
);
$wgLDAPPreferences = array(
'undomaine' => array(
'email' => 'mail',
'realname' => 'displayName',
'nickname' => 'samaccountname'
)
);
$wgLDAPProxyAgent = array(
'undomaine' => 'CN=queryAdUser,OU=serviceAccounts,OU=Users,DC=undomaine,DC=com'
);
$wgLDAPProxyAgentPassword = array(
'undomaine' => 'xxxxxxxxx' // <== à récupérer dans un gestionnaire de mots de passe
);
$wgLDAPDisableAutoCreate = array(
'undomaine' => true
);
$wgLDAPGroupUseFullDN = array(
'undomaine' => true
);
$wgLDAPLowerCaseUsername = array(
'undomaine' => true
);
$wgLDAPGroupObjectclass = array(
'undomaine' => 'group',
);
$wgLDAPGroupAttribute = array(
'undomaine' => 'member',
);
$wgLDAPGroupNameAttribute = array(
'undomaine' => 'cn',
);
$wgLDAPGroupsUseMemberOf = array(
'undomaine' => false,
);
$wgLDAPUseLDAPGroups = array(
'undomaine' => true,
);
$wgLDAPRequiredGroups = array(
'undomaine' => array(
'CN=MyGroup,OU=Utilisateurs,OU=Departement,OU=Habilitation,DC=undomaine,DC=com',
)
);
$wgLDAPGroupsPrevail = array(
'undomaine' => true,
);
$wgLDAPGroupSearchNestedGroups = array(
'undomaine' => true,
);
$wgLDAPActiveDirectory = array(
'undomaine' => true,
);
$wgLDAPAuthAttribute = array(
'undomaine' => '!(userAccountControl:1.2.840.113556.1.4.803:=2)',
);
$wgHooks['SetUsernameAttributeFromLDAP'][] = 'SetUsernameAttribute';
function SetUsernameAttribute(&$LDAPUsername, $info) {
$LDAPUsername = $info[0]['samaccountname'][0];
return true;
}
//$wgLDAPDebug = 1; # <== à commenter une fois l'installation définitivement terminée
//$wgDebugLogGroups['ldap'] = '../logs/debug_ldap_wiki.log'; # <== à commenter une fois l'installation définitivement terminée
## End of LDAP Authentication/AD Configuration
Configuration des groupes dans l'Active Directory :
- Voir la page Personnalisation Groupes Active Directory
LabeledSectionTransclusion
Description
Cette extension permet d'étendre les fonctionnalités de l'extension native transclusion du mediawiki. Plus particulièrement, elle permet d'inclure dans des pages des sections d'autres pages.
Implémentation
Téléchargement de l'extension via la commande :
wget https://extdist.wmflabs.org/dist/extensions/LabeledSectionTransclusion-REL1_31-d6f59f5.tar.gz
Décompression du paquet de l'extension via dans le dossier des extension du MediaWiki :
tar -xzf LabeledSectionTransclusion-REL1_31-d6f59f5.tar.gz -C /dossier/installation/du/mediawiki/extensions
Utilisation
Définition des marques
Utilisez les marques <section>
de la façon suivante :
<section begin=chapter1 />Ceci est une section à inclure<section end=chapter1 />
Inclusion des marques
Inclure la section précédemment définie comme ceci :
{{#lst:articleX|chapter1}}
Inclusion avec exclusion
Il est possible d'inclure toute la page en excluant uniquement ce qui a été précédemment défini comme ceci :
{{#lstx:articleX|chapter1}}
Plus d'informations sur Labeled Section Transclusion.
SubPageList
Présentation
Cette extension permet d'afficher de façon simple les sous-pages d'une page
Implémentation
Depuis la console serveur, faire :
cd /dossier/installation/du/mediawiki/ composer require mediawiki/sub-page-list "~1.5"
Vérifier dans le fichier LocalSettings.php que la variable suivante est définit comme ceci :
$GLOBALS['wgNamespacesWithSubpages'][NS_MAIN] = 1;
Dans le fichier de configuration de l'extension, modifier la variable suivante comme ceci :
vi extensions/SubPageList/SubPageList.settings.php
$GLOBALS['egSPLAutorefresh'] = true;
Plus d'informations sur la page officielle de l'extension SubPageList
Lockdown
Présentation
L'extension Lockdown permet de limiter l'accès à des espaces de noms (namespace) spécifiques et à des pages spéciales à un ensemble donné de groupes d'utilisateurs.
Implémentation
Se connecter au serveur et télécharger l'extension via la commande :
wget https://extdist.wmflabs.org/dist/extensions/Lockdown-REL1_31-7db0221.tar.gz
Puis, la déployer via :
tar -xzf Lockdown-REL1_31-7db0221.tar.gz -C /dossier/installation/du/mediawiki/extensions
Ensuite, l'activer en ajoutant la ligne suivante dans le fichier LocalSettings.php :
wfLoadExtension( 'Lockdown' );
Configuration
La configuration se fait dans le fichier LocalSettings.php au niveau de la gestion des droits d'accès.
VisualEditor
Présentation
L'extension VisualEditor permet de modifier des pages en tant que contenu riche. Il existe également un projet du même nom visant à créer un éditeur de texte enrichi fiable pour le Web et MediaWiki.
L’extension VisualEditor s’appuie sur un service d’analyseur Parsoid déporté basé sur nodeJS qui doit être installé et activé pour pouvoir en modifier les pages.
Plus d'information sur https://www.mediawiki.org/wiki/Extension:VisualEditor .
Implémentation
Installation de npm
yum install npm
Installation de l'extension parsoid
wget -O downloads/VisualEditor-REL1_32-e82e120.tar.gz https://extdist.wmflabs.org/dist/extensions/VisualEditor-REL1_32-e82e120.tar.gz tar -xzf downloads/VisualEditor-REL1_32-e82e120.tar.gz -C /dossier/installation/du/mediawiki/extensions
Installation du service parsoid
- Téléchargement et installation des sources
mkdir -p /local cd /local/ git clone --recursive https://gerrit.wikimedia.org/r/mediawiki/services/parsoid/deploy git clone https://gerrit.wikimedia.org/r/mediawiki/services/parsoid cd parsoid npm install
- Dupliquer le fichier config.example.yaml
cp /local/parsoid/config.example.yaml /local/parsoid/config.yaml
- Editer le fichier /local/parsoid/config.yaml afin que la variable uri soit la suivante :
uri: 'https://wiki.jordan-lenuff.com/api.php'
- Editer le fichier /usr/lib/systemd/system/parsoid.service et y renseigner le contenu suivant :
[Unit]
Description=Mediawiki Parsoid web service on node.js
Documentation=http://www.mediawiki.org/wiki/Parsoid
Wants=local-fs.target network.target
After=local-fs.target network.target httpd.service
[Install]
WantedBy=multi-user.target
[Service]
Type=simple
User=parsoid
Group=parsoid
WorkingDirectory=/local/parsoid
ExecStart=/usr/bin/node /local/parsoid/bin/server.js
KillMode=process
Restart=on-success
PrivateTmp=true
StandardOutput=syslog
- Création du user parsoid
groupadd -g 499 parsoid useradd -u 499 -g 499 -c "Parsoid service user" -m -r parsoid chown -R parsoid:parsoid /local/parsoid
- Activation du service parsoid
systemctl daemon-reload systemctl enable parsoid systemctl start parsoid
Configuration
- Configuration de l'extension VisualEditor dans le fichier LocalSettings.php
## VisualEditor configuration
// Enable by default for everybody
$wgDefaultUserOptions['visualeditor-enable'] = 1;
// Add non-default namespaces
$wgVisualEditorAvailableNamespaces = [
NS_ANAMESPACE => true,
NS_OTHERNAMESPACE => true,
NS_ANOTHERNAMESPACEAGAIN => true,
];
# Disable popup message
$wgVisualEditorShowBetaWelcome = false;
// Optional: Set VisualEditor as the default for anonymous users
// otherwise they will have to switch to VE
// $wgDefaultUserOptions['visualeditor-editor'] = "visualeditor";
// Don't allow users to disable it
#$wgHiddenPrefs[] = 'visualeditor-enable';
// OPTIONAL: Enable VisualEditor's experimental code features
#$wgDefaultUserOptions['visualeditor-enable-experimental'] = 1;
$wgVirtualRestConfig['modules']['parsoid'] = array(
// URL to the Parsoid instance
// Use port 8142 if you use the Debian package
'url' => 'http://localhost:8000',
// Parsoid "domain", see below (optional)
'domain' => 'localhost',
// Parsoid "prefix", see below (optional)
'prefix' => 'localhost'
);
// This feature requires a non-locking session store. The default session store will not work and
// will cause deadlocks (connection timeouts from Parsoid) when trying to use this feature. Only required for MediaWiki 1.26.x and earlier!
$wgSessionsInObjectCache = true;
// Forward users' Cookie: headers to Parsoid. Required for private wikis (login required to read).
// If the wiki is not private (i.e. $wgGroupPermissions['*']['read'] is true) this configuration
// variable will be ignored.
//
// WARNING: ONLY enable this on private wikis and ONLY IF you understand the SECURITY IMPLICATIONS
// of sending Cookie headers to Parsoid over HTTP. For security reasons, it is strongly recommended
// that $wgVirtualRestConfig['modules']['parsoid']['url'] be pointed to localhost if this setting is enabled.
$wgVirtualRestConfig['modules']['parsoid']['forwardCookies'] = true;
# End of VisualEditor configuration