Documentation sur le logiciel SYMPA

Ceci est une ancienne révision du document !


Wiki associé à une liste

En cours de rédaction

  • Soit la package des sources modifiés

en cours d'élaboration

Version du wiki

dokuwiki-2009-02-14

Emplacement et arborescence du wiki

/var/www/html/wikifarm

  • create_wiki.pl : script qui créée le wiki associé à une liste
  • dokuwiki : lien sur dokuwiki-2009-02-14
  • dokuwiki-2009-02-14\
  • farm-controler\ : lien sur dokuwiki
  • modeles\ : fichier à recopier pour la création d'un wiki
  • RCS
  • virtualwrapper.c

create_wiki.pl

modifier les paramètres du script

  • my $sympa_expl = '/home/sympa/list_data/';
  • my $hostname = 'crocus-test.inpg.fr' ;
  • my $listmaster = 'webcri@grenoble-inp.fr' ;
  • $typeauth{$hostname} = 'shibboleth';

farm-controler

Le dossier /var/www/html/wikifarm/farm-controler contient :

  • des sous dossiers renvoyant sur des sous-dossiers de /var/www/html/dokuwiki
bin         -> ../dokuwiki/bin/
conf        -> ../dokuwiki/conf/ 
data        -> ../dokuwiki/data/
doku.php    -> ../dokuwiki/doku.php
feed.php    -> ../dokuwiki/feed.php
inc         -> ../dokuwiki/inc/
index.php   -> ../dokuwiki/index.php
lib         -> ../dokuwiki/lib/
README      -> ../dokuwiki/README
VERSION     -> ../dokuwiki/VERSION
 
  • des fichiers
    • COPYING
    • index.html sert à rien propre à renater
    • farmlist sert à rien propre à renater
    • farm.patch
    • wsdl sert à rien propre à renater
  • les sous dossiers pour les wikis associés aux listes

Nomenclature : [nom liste]@[nom robot]

Exemples :

  • test2@serveur.grenoble-inp.fr
  • test3@serveur.grenoble-inp.fr
  • test4@serveur.grenoble-inp.fr

Dossier associé à un wiki

Chaque dossier d'un wiki

  • conf : fichiers de configuration du wiki
  • data : données de publication du wiki
  • doku.php
  • install.php

des sous dossiers renvoyant sur des sous-dossiers

inc       -> ../inc
index.php -> doku.php  
lib       -> ../lib

modeles

  • httpd.conf : partie à copier dans /etc/httpd/conf/httpd.conf pour la déclaration du wiki
  • list : dossier à copier pour la création du dossier du wiki
  • sympa_tpl : dossier des templates
  • à remplacer pour la liste
    • admin.tt2 : partie droite du menu admin de la liste si un wiki a été créé
    • list_menu.tt2 : menu gauche de la liste si un wiki a été créé
      • .htaccess
      • conf
      • data
      • doku.php
      • install.php
    • FR_fr
      • admin.tt2 : à modifier pour remplacer les liens en dur vers le cru

httpd.conf

Alias /wiki/(%list%) /var/www/html/wikifarm/farm-controler/(%list%)@(%robot%)

<directory "/var/www/html/wikifarm/farm-controler/(%list%)@(%robot%)">

  Options All -Indexes
  AllowOverride All

</directory>

Ajouter

Order deny,allow
Deny from all
Allow from .grenoble-inp.fr
AuthType shibboleth
ShibRequireSession Off
require shibboleth

list/.htaccess

  
## Enable this to restrict editing to logged in users only

## You should disable Indexes and MultiViews either here or in the
## global config. Symlinks maybe needed for URL rewriting.
#Options -Indexes -MultiViews +FollowSymLinks

## make sure nobody gets the htaccess files
<Files ~ "^[\._]ht">
    Order allow,deny
    Deny from all
    Satisfy All
</Files>

## Uncomment these rules if you want to have nice URLs using
## $conf['rewrite'] = 1 - not needed for rewrite mode 2
RewriteEngine on
#
## Not all installations will require the following line.  If you do,
## change "/dokuwikio the path to your dokuwiki directory relative
## to your document root.
RewriteBase /wiki/(%list%)
#
RewriteRule ^_media/(.*)              lib/exe/fetch.php?media=$1  [QSA,L]
RewriteRule ^_detail/(.*)             lib/exe/detail.php?media=$1  [QSA,L]
RewriteRule ^_export/([^/]+)/(.*)     doku.php?do=export_$1&id=$2  [QSA,L]
RewriteRule ^$                        doku.php  [L]
RewriteCond %{REQUEST_FILENAME}       !-f
RewriteCond %{REQUEST_FILENAME}       !-d
RewriteRule (.*)                      doku.php?id=$1  [QSA,L]
RewriteRule ^index.php$               doku.php

list/data/.htaccess

order allow,deny
deny from all

list/conf

local.protected.php

inclus dans local.php, à paramétrer

$conf['start'] = 'index.php';

$conf['plugin']['shibbolethauth']['sympaApplicationId'] = 'wikishib';
$conf['plugin']['shibbolethauth']['sympaApplicationPwd'] = 'shwk10f+d';$conf['plugin']['shibbolethauth']['shibbolethLoginURL'] = 
   'https://listes.grenoble-inp.fr/sympa/sso_login/federation_renater/Shibboleth.sso/Login';
$conf['plugin']['shibbolethauth']['shibbolethLogoutURL'] = 
   'http://listes.grenoble-inp.fr/sympa/sso_login/federation_renater/Shibboleth.sso/Logout?return=http%3A%2F%2Fcrocus-test.inpg.fr/wiki/(%list%)@(%robot%)';
$conf['resendpasswd'] = '0';

sympa_tpl

FR_fr/admin.tt2
<form action="http://virtualsympa.cru.fr/cgi-bin/delete_wiki.cgi"  method="post">
.....
<input class="MainMenuLinks" type="submit" name="action_restore_email" value="Supprimer le wiki de la liste [%list%]" />
  : merci de consulter <a href="http://www.cru.fr/services/wiki/index">la description du service de wiki.</a>
.....
<form action="http://virtualsympa.cru.fr/cgi-bin/create_wiki.cgi"  method="post">
.....
<input class="MainMenuLinks" type="submit" name="action_restore_email" value="Créer le wiki de la liste [%list%]" />
  : merci de consulter <a href="http://www.cru.fr/services/wiki/index">la description du service de wiki.</a>

dokuwiki

Modifications apportées

inc/auth

Ajout

  • punbb.class.php
  • shibboleth.class.php
  • sympa.class.php
shibboleth.class.php

Modification pour que l'adresse mail renvoyée soit en minuscule

function trustExternal($user,$pass,$sticky=false){
.......
        $USERINFO['name'] = $user = strtolower($_SERVER[$conf['plugin']['shibbolethauth']['shibbolethEmailAttribute']]);
        $USERINFO['mail'] = $mail = strtolower($_SERVER[$conf['plugin']['shibbolethauth']['shibbolethEmailAttribute']]);
        
        
function getUserData( $user ) {

$user = strtolower($user);

function getUserGroups($user) {

lib/exe

Modification de la 1ère ligne

if(!defined('DOKU_INC'))
   define('DOKU_INC',dirname(join('/',
           array_slice(explode(/',$_SERVER['SCRIPT_FILENAME']),0,-2))).'/');

pour

  • css.php
  • js.php
  • mediamanager.php
  • opensearch.php

lib/plugins

Ajout <columns>

  • batchedit
  • box
  • code
  • color
  • delicious
  • divalign
  • doodle
  • gallery
  • goto
  • header

<newcolumn>

  • highlight
  • importoldchangelog
  • importoldindex
  • include
  • loglog
  • logstats
  • note
  • nssize
  • odt
  • pagelist

<newcolumn>

  • pagemove
  • permissioninfo
  • searchindex
  • shibbolethauth
  • styler
  • superacl
  • sympaauth
  • tmp
  • txtconf

</columns>

CGI

/var/www/cgi-bin

  • create_wiki.cgi
  • delete_wiki.cgi

Les droits sont -rwsr-sr-x 1 root root : chmod 6755

Modifier les constants my $listmaster

remplacer http par https si besoin

httpd.conf

#
# Load config files from the config directory "/etc/httpd/conf.d".
#


AccessFileName .htaccess

<Directory "/var/www/html">
    Options Indexes FollowSymLinks +ExecCGI

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from grenoble-inp.fr
</Directory>

AddHandler cgi-script .cgi .pl .c

<VirtualHost xxx.xxx.xxx.xxx:443>
   ServerName listes.grenoble-inp.fr
   
   ....
   Include conf.d/wiki/*.conf
   ....
</VirtualHost>

mkdir /etc/httpd/conf.d/wiki

sympa

Modifier les templates suivants

~sympa/etc/web_tt2

  • admin.tt2
  • list_menu.tt2
  • fr_FR
    • admin.tt2

Récupérer l’icône wait.gif sous /home/sympa/static_content/icons/

/etc/sudoers

# visudo

## Allows apache to rum config script
  apache ALL=(root) NOPASSWD: CONF

Création/Suppression du wiki

Sur le serveur

Création

/var/www/html/wikifarm/create_wiki.pl --create --list=test444 --robot=crocus-test.inpg.fr

résultat de la création wiki

Suppression

/var/www/html/wikifarm/create_wiki.pl --delete --list=test444 --robot=crocus-test.inpg.fr