🇫🇷 Français | 🇬🇧 English | 🇩🇪 Deutsch | 🇪🇸 Español
Plugin DokuWiki pour restreindre l'affichage des pages, des médias et de certaines actions lorsque la requête provient de l'extranet.
Le plugin peut :
- détecter l'extranet à partir d'une valeur de
$_SERVERconfigurable ; - appliquer une politique par défaut
allow,block,force_allowouforce_block; - filtrer des pages et médias par identifiant exact, namespace, joker ou regex ;
- masquer le contenu d'une page restreinte par un message configurable ;
- remplacer les médias restreints par une image neutre ;
- désactiver certaines actions DokuWiki pour les visiteurs extranet ;
- gérer les macros
~~NOEXTRANET~~et~~EXTRANET~~; - s'intégrer à ProseMirror pour conserver correctement cet état en mode WYSIWYG.
Deux macros sont disponibles dans les pages :
~~NOEXTRANET~~: interdit la page depuis l'extranet quand la politique le permet ;~~EXTRANET~~: autorise la page depuis l'extranet quand la politique le permet.
Le comportement exact dépend de default_policy :
allow: tout est autorisé sauf les pages filtrées ou marquées~~NOEXTRANET~~block: tout est bloqué sauf les pages filtrées ou marquées~~EXTRANET~~force_allow: seules les règles de filtre s'appliquent,~~NOEXTRANET~~est ignoréforce_block: seules les règles de filtre s'appliquent,~~EXTRANET~~est ignoré
Dans le gestionnaire de configuration :
request_match_key: clé$_SERVERutilisée pour détecter l'extranet, par exempleREMOTE_ADDRou un headerHTTP_*extranet_match_list: liste de valeurs considérées comme extranet, séparées par des virgulesextranet_match_regex: regex permettant d'identifier l'extranet à partir de la valeur luedefault_policy: politique d'accès par défautfilter_list: liste de pages ou médias concernés par la politiquefilter_regex: regex complémentaire pour cibler pages ou médiashide_files: applique ou non les restrictions aux médiasdisable_actions: actions DokuWiki désactivées pour les visiteurs extranetrestricted_disable_actions: actions supplémentaires désactivées seulement si la page courante est restreintepreserve_first_title: conserve le premier titre lors du masquage d'une pagemessage_prefix: contenu ajouté avant le message de restrictionmessage_suffix: contenu ajouté après le message de restriction
Compatibilité :
server_ip_keyextranet_ip_listextranet_ip_regex
Ces anciens paramètres restent acceptés pour compatibilité, mais les nouveaux noms sont à privilégier.
Détection par IP directe :
request_match_key = REMOTE_ADDRextranet_match_regex = /^10\.100\./
Détection par header proxy :
request_match_key = HTTP_X_NETWORK_ZONEextranet_match_list = extranet
Détection par nom d'upstream :
request_match_key = HTTP_X_UPSTREAM_HOSTextranet_match_regex = /^frontend-ext-/
Charger le helper :
$extranet = plugin_load('helper', 'extranet');Méthodes principales :
getDefaultPolicy(): retourne la politique par défaut effectivegetRequestMatchKey(): retourne la clé$_SERVERutilisée pour la détectiongetExtranetMatchList(): retourne la liste de valeurs configuréesgetExtranetMatchRegex(): retourne la regex configuréeisExtranetRequest(): indique si la requête courante est considérée comme extranetisPageVisibleFromExtranet(): indique si une page est visible depuis l'extranetisMediaVisibleFromExtranet(): indique si un média est visible depuis l'extranetisPageAllowed(): indique si la page est autorisée dans le contexte courantisMediaAllowed(): indique si le média est autorisé dans le contexte courantparseRuleList(): convertit une liste de règles en tableau exploitableidMatchesRule(): teste un identifiant contre une règle
Le plugin segmente le cache de rendu pour distinguer les visiteurs intranet et extranet.
Quand une page est restreinte, son contenu est remplacé par un message configurable. Si preserve_first_title est actif, le premier titre est conservé.
Si hide_files est activé, les médias restreints sont remplacés par une image dédiée.
Le plugin repose sur un marqueur de requête fourni par l'infrastructure web. Il est adapté à une logique de segmentation intranet/extranet, mais ne doit pas être considéré comme un remplacement des ACL ou d'un contrôle d'accès fort.