WODA Manuel de l'Administrateur 3.303

Ceci est la traduction française de http://www.ddatabase.com/

ATTENTION: la version 4 de WODA a rendu ce manuel obsolète. Lisez plutôt la documentation française de la nouvelle version. Ou rendez-vous sur http://www.ddatabase.com/ pour télécharger la dernière version de Woda.

Ce document indique comment installer, créer et maintenir des bases de données sur le Web en utilisant le moteur WODA. Les administrateurs de base de données doivent le lire.

ATTENTION: il y a eu des changements récents dans WODA, qui touchent les paquets, etc. Le manuel et les exemples peuvent ne pas encore les refléter. Par exemple, les fichiers ne sont pas appelés wb* mais woda*. De même les fichiers de librairies sont dans /usr/local/woda et non /usr/local/wbase ...

Ce document est traduit par Xavier Brochard (xavier [ici la petite oreille] alternatif.org). Les remarques (sur la traduction) sont les bienvenues. Le document original est à http://itc.fgg.uni-lj.si/woda/man.htm

Contenu:

Apperçu technique
Télécharger et installer WODA
Créer une base de données
Lancer des applications WODA
Personnaliser WODA
Attributs dans le fichier de définition
Possibilités relationnelles
Sécurité et privilèges
Maintenance
Internationalisation
Compatibilité
Où en apprendre plus

1. Apperçu technique

1.1 Language de définition de données

WODA est un système de gestion de bases de données pour le World Wide Web. Il consiste en un programme Perl (ex. woda-fr.pl), qui contient le moteur WODA. Chacune des applications de base de données est définie dans le fichier de définition de base de données (définition). Ce fichier définit le dictionnaire de données, customize l'interface utilisateur et enfin appelle le moteur pour tous les traitements. Pour cela, il utilise 2 tableaux de hash (tableaux associatifs de scalaires): Un moteur supporte donc plusieurs bases de données et il est complètement indépendant de la base de données. Tous les paramètres dépendants du système d'exploitation sont définis dans le moteur. Il y a quelque moteurs en langues étrangères comme woda-uk.pl ou woda-si.pl pour les langues Anglaise (uk) et Slovène (si).

1.2 Stockage des données

Dans le vocabulaire de WODA, une base de données est en fait une table. Une table peut contenir un nombre arbitraire d'enregistrements. Chaque enregistrement peut contenir n'importe quel nombre de champs. Les champs peuvent contenir des données textuelle ou binaire. Les champs de type LINK et OPTIONLINK et les fonctions comme &QRY() et &FLD() permettent la liaison de deux tables. Voir également la section sur les Possibilités relationnelles.

Les zones textuelles d'un enregistrement sont principalement enregistrées comme fichiers, un enregistrement par fichier. Ces fichiers ont des noms comme key.rec où la clé est un identifiant unique de l'enregistrement. Tous les enregistrements d'une base de données partagent le même répertoire qui devrait être réservé exclusivement à cette base de données. Ce répertoire est indiqué dans $WBB{dataDir}.

Les champs binaires comme les images, les sons, les documents... sont enregistrés chacun dans un fichier différent nommé clé.nomChamp.extclé est l'identifiant de l'enregistrement et ext est l'extension origianle du fichier comme .gif, .doc, .zip ou .tar.gz.

Le format des fichiers .rec est très simple, lisible et efficace. Ils commencent par le caractère \n (une ligne vide) suivi par une liste de paires nom valeurs, comme par exemple:

name
Audrey
lastName
Horne
address
Twin Peaks ...

Ces items sont écris dans in fichier ASCII, un item par ligne. Comme les items ne peuvent contenir des fins de lignes, celles-ci sont échappées dans le caractère \034. Les champs textes d'une base de donnée ne peuvent pas non plus contenir le caractère \033.

Une telle organisation est commode pour une petite base de données de quelques centaines d'enregistrements. L'efficacité de plus grandes bases de données, en particulier en recherche, est énormémentt améliorée en cachant (caching) de l'information dans le répertoire _cache. Les fichiers de cache sont créés périodiquement d'après les fichiers .rec, soit après chaque mise à jour de la base de données, soit toutes les quelques heures, ou bien comme résultat d'un cron job (définissable par l'administrateur). Plusieurs fichiers de ce type vont être créés, pré-triés selon les expressions de tri qui auront été définies. Quelques uns des fichiers qui sont mis en cache (comme ceux des sommaires arborescent) dépendent des fichiers de définition. Les changements dans les fichiers de définition ne vont pas automatiquement mettre à jour le cache - suprimez le cache manuellement ou créez (touch) les données aux besoins!

Tout fichier commençant par un underscore, est un fichier système de WODA. Les champs systèmes commencent aussi par un underscore. Les clés des enregistrements ne devrait donc pas commencer par _ (le caractère underscore)!

Actuellement, la recherche est effectuée en utilisant la force brute (brute force). Cette solution a été jugée suffisament rapide pour des bases de données allant jusqu'à 15 megaoctets. Pour les bases très chargées (heavy load) le système interne de cache des résultats de recherche réduit énormément la charge CPU.

2. Télécharger et installer WODA

WODA est disponible en 2 langues (ll): Il est disponible en 2 configurations qui offres des fonctionnalités identiques:

Il est disponibles en paquets (Ndt: 'package', mais je l'ai fait exprès) avec 2 méthodes de compressions:

Cela signifie qu'il y a 8 fichiers associés à chaque version de WODA.

2.1 Environnement requis

Le système sur lequel vous installez WODA doit vous permettre d'exécuter des scripts CGI en Perl. L'administrateur système devrait vous avoir informé:

2.2 Procédure d'installation

  1. Téléchargez un fichier du répertoire répertoire /files. Les anciennes versions avec des conventions de nommage différentes sont dans un sous-répertoire, par exemple les fichiers *.dct sontles derniers fichiers utilisés pour traduire le code de WODA.
  2. Décompressez-le dans un répertoire temporaire. Faites cela de telle sorte que soit préservée la casse des noms de fichiers et que les répertoires soient créés. Les sous-répertoires woda, cgi et gif doivent avoir été créés. Si vous avez téléchargé la configuration pl, le répertoire 'woda/uk' sera aussi créé.
  3. Executez le programme d'installation:

  4. perl install

    et répondez aux questions.

  5. Essayez l'installation en ouvrant http://votre.serveur.com/répertoire-cgi-que-vous-utilisez/test.cgi et en ouvrant ensuite la démonstration installée à demo.cgi.

2.3 Notes d'installation pour systèmes UNIX

La procédure d'installation n'essaye pas de sécuriser l'installation. Tout est fait en mode 777. Si vous savez ce que vous faites, mettez les droits comme vous voulez.

2.4 Notes d'installation pour Windows 95, 98 et NT

L'environnement naturel de WODA est UNIX mais il fonctionne sur les sytèmes d'exploitation 32 bits de Microsoft, il fonctionne même sur les ordinateurs portables sans connexion à l'Internet. En dernier ressort, vous devez installer le protocole TCP/IP et utiliser des URL comme http://127.0.0.1/ pour accéder à votre serveur. Mais vous avez besoin de:

2.5 Problèmes avec l'installation

La page de FAQ aborde quelques problèmes courants.

2.5 Note sur la rapidité

On a trouvé WODA très rapide, même en comparaison des grosses bases SQL. Le tableau ci-dessous présente des comparaisons de vitesse selon les différentes versions de WODA et de Perl. Le temps de réponse a été mesuré, les plus petits nombres signifient de meilleures performances. Seul le temps de réponse CGI/WODA a été mesuré. N'importe quel processus se rajoute par-dessus, presque linéairement - ex. une recherche complexe ajoutera autant de temps à toutes les façons d'installer WODA.
 
 
distribution Woda / version de Perl Perl 4.036 Perl 5.x
pm WODA 3.1 5.0
pl WODA 1.6 2.0
MOD_PERL et pm WODA - 0.2

Eh oui, ce sont des secondes sur une machine de la classe 486/16MB avec une charge httpd normale.
 

2.6 Architecture(s) de WODA

3. Créer une base de données

A ce niveau il serait utile de se logger dans une base de données de travail comme administrateur. Choisissez le menu login et loggez vous comme admin. Utilisez le mot de passe que vous avez défini dans le fichier principal de WODA (woda*.p?) près de $ADMUSER ou bien le mot de passe que vous avez défini dans votre application.

Les étapes de création d'une base de données en utilisant WODA sont typiquement celles-ci (ou encore mieux, modifiez simplement le fichier demo.cgi):

  1. Créez un répertoire vide où seront stockées les données de votre base de données. Le répertoire n'a pas besoin d'être dans l'arborescence servie par le serveur http. Si vous prévoyez d'avoir des restrictions de sécurité vous devriez interdire l'accès aux fichiers .rec et à tous les fichiers dans le sous-répertoire _cache.

  2. ATTENTION: vérifiez que les scripts CGI auront les permissions de lecture et d'écriture dans ce répertoire. En général, les processus CGI s'éxecutent sous le privilège guest ou nobody et pas en tant que Joe Doe! Si le serveur est une machine UNIX et que $WBB{dataDir} est /users/joe/www/woda1/, donnez tous les droits à tout le monde:

    chmod 0777 /users/joe/www/woda1/

    Plus tard vous pouvez vouloir restreindre l'accès à l'utilisateur CGI et à vous-même. Demandez à l'administrateur du serveur comment faire cela.

  3. Choisissez un endroit pour placer le programme de définition de la base de données. C'est un programme CGI et il devrait être soit dans le répertoire cgi-bin directory, soit, si c'est permis, avoir simplement l'extension .cgi.
  4. Facultatif Choisissez un répertoire pour tous les fichiers html que le moteur WODA peut créer. Toutes les pages de WODA peuvent être générées par le script mais vous pouvez choisir d'avoir quelques pages générées en html statique pour préserver la charge du serveur.
  5. Si vous n'êtes pas préoccupés par la sécurité et que toutes les donnée dans la base de données sont publiques, vous pouvez partager le même répertoire entre tous les items discutés ci-dessus, lequel peut-être accédé à travers une URL.Ceci sera fortement découragé dans les futures versions de WODA.
  6. Ensuite vous devez créer une définition de base de données. Vous pouvez au choix améliorer demo.cgi ou créer une base de données à partir de zéro en suivant le lien dans Administration ... Create new database ou Create new from .CSV data. Commencez avec une définition simple où vous définissez tous les champs, mais ne perdez pas de temps sur les champs optionnels indiqués par une étoile *.
  7. Essayez la base de donnée, vérifiez qu'elle s'exécute, puis affinez-là en utilisant l'option Modify structure dans la page Administration menu. Veuillez noter cependant que l'outil d'administration ne vous permet pas d'insérer, suprimer, renommer ou réordonner les champs. Pour faire cela, vous devez éditer à la main le fichier de définition. Et aussi, renommer un champ dans le fichier de définition ne convertit pas les enregistrements!

3.1 Tuyaux pour créer une base de données

3.2 Créer une base de données à partir de données exemples

On peut rapidement obtenir un premier brouillon de la base de donnée en choisissant l'option "Create from Data" dans le menu Administrateur:
  1. préparez les données dans un fichier .CSV à l'aide d'un programme comme MS Access ou MS Excel
  2. remplissez le formulaire
  3. et voilà, vous avez une première version utilisable de la base de données - si le serveur Web a pu créer tous les fichiers et répertoires requis.
  4. retravaillez la base de donnée à l'aide du menu modify structure

3.3 Sample base de donnéess (obsolete)

Here are a few sample base de données definitions you might like to use as templates for your own.

Please do not add-to or change the data in the base de donnéess listed below. They are real applications! Have a look but do not enter data; then examine the source code and apply it to your problem.

However, you are free to play with the dummy base de données as guest. You can even have the administrative rights and you can use its administration menu to define a base de données of your own (temporary disabled).
 

Source Description Running application
people.pl Database of people, addresses, vitae ...  EMDB
publicat.pl Bibliographic base de données  EMDB
papers.pl Submission of conference papers  W78-96
urls.pl Resource directory  ICARIS
oglasnik.pl Classifieds (in Slovenian)  OGLASNIK

3.4 Importer des données dans une base de données

Vous pouvez importer les données depuis un fichier .CSV qui peut-être créé à l'aide de logiciels du type Excel ou Access. Dans ce format les champs sont délimités par des points-virgules ou des virgules. Si un champ contient une nouvelle ligne, un point-virgule ou des guillemets ("), les champs sont encadrés par des guillements et chaque guillemet est remplacé par deux guillemets. L'importation réussit seulement si tous les enregistrements passent tous les controles définis..

4. Lancer des applications WODA

Les base de données WODA se lancent: Typiquement, une URL qui demande un service de base de données WODA ressemble à ça:
http://www.quelqun.com/cgi/livredor/Search?search=ziga&since=12112122
Ci-dessus, livredor est le nom du fichier de définition, Search est l'action qu'on veut voir exécutée, et à la suite du '?' on indique des paramètres séparés par '&'. On peut présenter l'exemple ci-dessus dans une forme plus abstraite (en enlevant la partie serveur):
/cgi/script[PATH_INFO][?QUERY_STRING]
Les crochets [] représentent des options. PATH_INFO est ce qui vient après le nom du script (y compris la barre de fraction - slash) et QUERY_STRING correspond aux paramètres après le point d'interrogation. On peut demander exactement la même action depuis la ligne de commande sur le serveur:
$ ./script -x 'PATH_INFO' 'QUERY_STRING' ['USERNAME:PASSWORD']
Les résultats seront affichés sur la sortie standard. L'interface CGI reçoit des variables d'environment additionnelles, qui sont différentes lorsque le script est appelé depuis la ligne de commande. Ces variables doivent être créées par le menu administrateur (Affichez les cron jobs et créez les variables) avant de lancer des scripts WODA depuis la ligne de commande. Exécuté depuis la ligne de commande, WODA a les privilèges d'administrateur tant qu'on ne requiert pas d'autre droits sur la ligne de commande.

Il y a une autre façon de faire la requête par URL, sous la forme (stoppé depuis la version 3.200):

/cgi/woda-uk/livredor/Search?search=ziga&since=12112122
ou de façon abstraite: /cgi/woda-uk/definition[PATH_INFO][?QUERY_STRING] ATTENTION: Il peut être vraiment difficile de composer des requêtes (query string) correctes et d'échapper correctement les caractères spéciaux du shell.
ATTENTION: N'utilisez pas d'URLs comme http://www.quelqun.com/cgi/livredor sans définir d'actions. Microsoft Explorer ne passera pas correctement les cookies à des adresses de ce genre. Préférez http://www.quelqun.com/cgi/livredor/Home pour afficher la page d'accueil.

4.1 Nom d'utilisateur et mot de passe

PATH_INFO peut aussi inclure le nom d'utilisateur et le mot de passe.Les requêtes devront ressembler à: /cgi/definition[/utilisateur:passe][/Action][?QUERY_STRING] par exemple: /cgi/livredor/guest:/Search?search=ziga Depuis la version 2.7 WODA vous donnera les droits d'administration seulement si vous ajoutez explicitement admin: à l'URL. Vous pouvez omettre le mot de passe si vous venez de la bonne adresse IP.

Depuis la version 2.8 WODA permet aux utilisateur d'utiliser le mécanisme des cookies pour s'identifier dans la base de données.

5. Personnaliser le moteur WODA

Il y a plusieurs façons de personnaliser les base de donnéess qui utilisent le moteur WODA.
  1. En configurant les quelques variables dans le code source du moteur WODA. Ces variables doivent être configurées.
  2. En indiquant des valeurs pour la plupart des attributs qui définissent la base de données et les champs de la base de données. Cela peut-être fait à travers l'interface web dans le menu d'administration de n'importe quelle application WODA. Pour plus d'information lisez l'aide en ligne. Cela comprend les feuilles de style cascadées (CSS).
  3. En remplaçant les fonctions cgi* définies dans le moteur WODA avec des fonctions personnalisées. Le mécanisme qui permet cela ne requiert aucun changement dans le moteur WODA. Woda-uk.pl ou wodauk.pm devraient être laissées intacts afin de pouvoir être rapidement remplacés par la version mise à jour. Les pages générées par votre application de base de données auront des URLs du genre http://un.serveur.com/cgi-bin/votrescript/Search, où "script" est le nom de votre script cgi et Search est la commande que le script doit exécuter. La commande Search est exécutée par la sous-routine cgiSearch. Si vous n'aimez pas ce que fait cgiSearch, copiez-la à l'intéreur du fichier votrescript, renommez-la en mySearch, modifiez tout ce dont vous avez besoin et la routine my* sera toujours utilisée à la place de la routine cgi*.
  4. En traduisant tous les messages systèmes affichés par WODA. Regardez ci-dessous les instructions de traduction.
  5. En utilisant un autre ensemble d'icones. Veuillez noter que la LARGEUR et la HAUTEUR sont codées en dur dans le programme.

6. Attributs dans le fichier de définition

Le fichier de définition est actuellement un programme Perl qui définit à quoi ressemble la base de données et ensuite appelle woda-uk.pl (le moteur) pour traiter la base de données. Les définitions de base de données consistent en deux sortes d'attributs. Les premiers (WBB) définissent les caractéristiques générales de la base de données, les seconds (WBF) les caractéristiques de chacun des champs de la base de données. Peu d'attributs sont obligatoires, la plupart sont facultatifs et peuvent être laissés indéfinis. L'information sur tous les attributs est disponible dans le menu d'administration. Il y a deux façons de définir les attributs:

6.1 Expressions de chaînes (string expressions)

Les expressions de chaînes sont des expressions dont le résultat est une chaîne en Perl. Trois exemple d'expressions de chaîne sont:
        "Author name: " . $rec{name}
     "Author name: $rec{name}"
     "<A HREF=$this$rec{title}</A"

La première ligne utilise l'opérateur point pour concaténer les chaînes. La seconde et la troisième fabriquent une chaîne en encadrant tout par des guillements. Voyez ci-dessous pour une explication sur les variables ($rec, $this) que vous pouvez utiliser.

6.2 Expressions logiques

Une expression logique est tout ce qui peut-être interprété comme une valeur vraie ou fausse. 0 ou les chaîne vides signifient FAUX, nonzéro et les chaîne non-vides signifie 1. Exemples:
        $_   20

        $_ eq "USD"

        m/.{5,20}/
Est-ce que la valeur est supérieure à 20; est-elle égale à "USD"? sa longueur est-elle comprise entre 5 et 20 caractères? Cette dernière est en fait une expression rationnelle entre les slashes (barres de fraction).

6.3 Expressions rationelles

Les expressions rationelles comparent une chaîne à un modèle. Ex.:
        \.com$

        .*

        ^193\.2\.92\..*
La première compare les chaînes qui se terminent en".com" (notez l'antislash grâce auquel le point n'est pas interprété comme un joker. Le seconde compare n'importe quel nombre de répétitions (l'étoile) de n'importe quel caractère (le point). La troisième compare une chaîne qui commence avec 193.2.92. Notez que . signifie n'importe quoi et * n'importe quel nombre de répétition du caractère précédent, ^ le début et $ la fin.

6.4 Variables et functions prédéfinies

Dans les expressions ci-dessus on peut utiliser des variables. Les valeurs prédéfinies sont: Vous pouvez utiliser n'importe quelle fonction ou expression Perl. See next section for some more functions. Suivez le lien "Display Global Variables" dans le menu Administrateur pour voir les variables globales utlisées par WODA que vous pouvez utiliser dans les expressions. Do not set them, just read them.

7. Possibilités relationnelles - tables liées

Les possibilités relationnelles sont pour l'instant limitées à:
La façon correcte de référencer d'autres tables dans est définir le champ $WBB{tables}. Il doit définir comment faire correspondre les alias de base de données (noms logiques), leur répertoire de données et le programme cgi qui les gère. Il y a deux façons de le faire:
  1. Vous pouvez créer un fichier ASCII central qui indique cette correspondance. Le fichier a plusieurs lignes, de trois colonnes chacune:
alias cgiPath dataDir Une telle table centrale est très bien si vous voulez garder cohérentes vos définitions. Vous paramétrez $WBB{tables} dans chaque base de donnéess pour pointer vers ce fichier.
 
  1. Vous pouvez écrire les données dans le format défini ci-dessus, directement dans le champ $WBB{tables}de chaque base de données.

7.1 Exemple de mise en place d'une relation entre deux tables

Supposons que nous avons 2 tables - une table de professeurs et une table de classes. Chaque professeur enseigne à 0 ou plus classes. Dans la définition de la table classes, nous allons ajouter un champ qui va pointer vers le professeur de la classe, comme ceci::

$x='professeur'; # ------------------------------
$WBF{$x,srt}=$i--;
$WBF{$x,'p'} = 'Professeur enseignat à cette classe';
$WBF{$x} = '1;';
$WBF{$x,'type'} = 'LINKOPTION';
$WBF{$x,'into'} = 'professeurs';
$WBF{$x,'picture'} = '"<A HREF=/cgi/professeurs?$_>$_</A>"';

dans l'exemple ci-dessus, seul le code identifiant (_id) des enregistrement de professeurs apparaîtra dans le menu déroulant. Si nous modifions le champ into ci-dessus en:

$WBF{$x,'into'} = '&ROWS("professeurs","_id,prenom,nom")';

le menu déroulant inclura le prénom et le nom du professeur.

Si nous perfectionnons le champ picture:

$WBF{$x,'picture'} = '
$xx = &FLD(professeurs,$_,nom) . " " .&FLD(professeurs,$_,prenom);
"<A HREF=/cgi/professeurs?$_>$xx</A>"';

le prénom et le nom du professeur seront également visibles dans le formulaire de sortie.

Finallement, dans l'enregistrement professors, nous aimerions voir la liste des classes qu'il ou elle enseigne:

$x='classes'; # ------------------------------
$WBF{$x,srt}=$i--;
$WBF{$x} = '1;';
$WBF{$x,'type'} = 'COMPUTE';
$WBF{$x,'picture'} = '"<A HREF=http://fgg.uni-lj.si/cgi/classes/Search?search=$rec{_id}%5Cb
Classes he/she teaches</A"';

Le code ci-dessus affiche seulement un lien vers une requête (query). La modification ci-dessous affiche les enregistrements:

$WBF{$x,'picture'} = '&QRY("classes","+professor:$rec{_id}");';

L'approche ci-dessus peut ne pas être suffisamment lisse, mais ça marche. Dans les futures versions, des raccourcis seront probablement définis.

8. Sécurité et Privilèges

Avant la version 3.0, WODA faisait seulement la distinction entre les groupes d'utilisateurs. Depuis la version 3.0 Woda fait la distinction entre les utilisateurs et les groupes d'utilisateurs. Les permissions sur les actions sont encore basées sur le groupe auquel l'utilisateur appartient. Trois niveaux de sécurité peuvent être assignés à une table de Woda:
  1. Minimum; seulement pour les groupes. Aucun groupe n'est défini. Les groupes admin et guest créés par défaut sont utilisés. Admin peut tout faire. Guest peut tout faire sauf accéder aux actions d'aministrations ou enregistrer des recherches.
  2. Personnalisé; seulement pour les groupes. Les autres groupes sont définis dans $WBB{groups} et les droits d'accès du groupes sont définis dans $WBB{rights}.
  3. Personnalisé; groupes et utilisateurs. On crée une table WODA séparée pour les informations d'utilisateurs. $WBB{userTable} pointe dessus. D'autres paramètres dans $WBB{user*} sont utilisés pour définir à quel groupe tous ces utilisateurs appartiennent (tant que leur groupe est défini dans leur $rec{groupe}) et comment évaluer s'ils sont le droit d'utiliser la base de donnée.

8.1 Définir des groupes

Les groupes sont définis dans le champ $WBB{groups}. Ce champ contient une table avec des champs: nom du groupe, adresse IP et mot de passe:
        joe             193.8.9.34     password1
        company         we.com$        password2
WODA commence au début de la table et cherche une correspondance d'addresse et de mot de passe (si défini). Quand une correspondance avec les informations données est trouvée, on obtient le groupe. Il y a deux utilisateurs par défaut, admin et guest. Les informations d'administration sont données lors de l'installation!

8.2 Passer les informations de groupe (ou utilisateur) et mot de passe à WODA

Il y a trois façons de le faire:
  1. Par l'adresse IP de la station cliente. Elle sera comparée à la seconde colonne ci-dessus.
  2. En passant le login et le mot de passe via l'URL. Voir plus haut comment faire.
  3. En se loggant avec le bouton de login qui figure au bas de toutes les pages WODA et en passant ces informations plus tard via un cookie.
WODA tente d'abord d'interpréter le login comme nom d'utilisateur et le confronte avec les utilisateurs dans $WBB{userTable}de la base de données. Remarquez que les noms d'utilisateur outrepassents les groupes, sauf pour les groupes guest (invité) et admin!

8.3 Autoriser/interdire des actions

On peut autoriser ou interdire certaines actions dans la base de données aux utilisateurs. Ces actions sont indiquées dans l'URL avant le ? et après le nom du script. Les actions peuvent être autorisées ou interdites à certains utilisateurs dans une table définie dans $WBB{rights}. Ce champ est une table comme celle-ci:

        allow   joe     ^Search

        deny    .*      ^Search


La première colonne contient les mots allow (autoriser) ou deny (interdire). Dans la seconde il y a un modèle (pattern) qui sera comparé (match) à l'utilisateur courant et dans la dernière le modèle (pattern) qui sera comparé à l'action demandée (lisible dans l'URL). Le programme commencera au début et parcourera les lignes tant qu'il ne trouvera pas de correspondance (match) valable aussi bien pour l'utilisateur que pour l'action. Ensuite il l'autorise, ou bien la refuse. S'il n'y a pas eu de correspondance valable, l'action est autorisée. Ci-dessus, seuls joe et admin (bien entendu) seront autorisés à chercher.

Les droits des base de données en lecture seule ressemblent à:

$WBB{'rights'} = 'deny .* ^Edit|^Delete|^Add|^Adm';

NB: Attention, si le champ rights est défini, il faut aussi interdire les actions d'administrateur (Adm*). Depuis la version 2.4, dans la plupart des pages, les actions non-autorisées n'apparaîssent pas dans les menus.

8.4 Autoriser/interdire l'accès à un champ

Dans le champ $WBF{champ,sees} un modèle d'utlisateurs est défini, qui pourra voir le contenu de ce champ. Dans $WBF{champ,modifies}un modèle d'utlisateurs est défini, qui pourra modifier le contenu du champ. S'il ne sont pas définis, tout le monde aura l'accès.

Attention: Les utilisateurs peuvent toujours faire une recherche dans les champs qu'ils ne voient pas. Ils ne seront pas montrés dans les pages générées par WODA, mais seront affichés dans les expressions $WBB{format;DEFAULT} s'ils sont explictement requis.

8.5 Interdire l'accès aux enregistrements

En général, chaque enregistrement entré dans une base de donnée WODA est immédiatement accessible à tous les utilisteurs de la base de données et il apparaît dans toutes les recherches. Les administrateurs peuvent paramétrer une base de données de telle façon qu'ils puissent effacer l'enregistrement avant qu'il soit visible pour les autres ou qu'ils puissent simplement filtrer certains enregistrements qui contiennent par exemple des contenus obscènes.

WBB{filter} définit une expression qui est silencieusement ajoutée à chaque chaîne de requête. Ainsi en mettant -sexe, aucun enregistrement contenant le mot sexe n'apparaîtra dans les recherches. Si vous indiquez

$WBB{filter} = "+azerty" seuls les enregistrements qui contiennent la chaîne azerty seront trouvés. L'administrateur devra utliser les options des champs 'sees' et 'edits' pour que lui seul puisse mettre des valeurs dans ces champs qu'il sera aussi le seul autorisé à éditer.

9. Maintenance

Un cron job qui nettoiera automatiquement la base de données et exécutera les demandes de l'agent (chacune lancées sur une base journalière) peut-être suggéré par une option dans le menu d'administration. Le même résultat peut aussi être obtenu en utilisant la commande at. Vous devriez demander à votre Webmaster de vous laisser utiliser cron ou at.

10. Internationalisation

Un ensemble d'attributs $WBB{intl*} autorise l'administrateur à définir: Toutes les chaînes système dans WODA (sauf dans les routines d'administration) peuvent être traduits.

10.1 Faire une version dans votre langue

Tous les textes dans WODA, sauf ceux des sections d'administration, sont extraits dans un fichier de traduction.Le format de ce fichier est assez simple:
==========

Lignes originales

en Anglais

----------

N O T   T R A N S L A T E D:

Lignes originales

en Anglais (qui réclament une traduction).

==========

Lignes originales en Anglais

----------

Traductions

==========
Quelques règles de traduction: Vous pouvez télécharger des exemples de fichiers de traduction depuis le répertoire files.

German WODA is maintained at http://www.ausschlafen.com/woda/.

11. Compatibilité

11.1 IIS

Sur plusieurs points importants Internet Information Serveur de Microsoft ne se comporte pas comme de plus décents serveurs Web le font. En particulier il ne crée pas la variable d'environnement PATH_INFO correctement et ne la parse pas correctement non plus. Par exemple, en lui donnant une URL comme: /cgi/myprog/Search il va chercher le programme Search dans le répertoire /cgi/myprog. Alors qu'en fait il aurait du exécuter myprog en lui passant /Search comme PATH_INFO. Ca prendrait beaucoup de travail de réécrire WODA pour passer outre.

11.2 Windows

Tout dépend du portage particulier de Perl que vous utilisez. De toute façon, rien n'est 100% compatible avec l'original. Les problèmes sont:

11.3 Mod_perl et woda*.pm

Pour utiliser WODA avec mod_perl vous devrez décommenter la ligne package dans woda*.pm.

Dans ce cas le codeWODA est compilé dans le paquetage WODAUK. Tous les processus sont effectués dans ce paquetage, aussi bien que les évaluations des chaînes définies dans le fichier de définition de la base de données. Si vous définissez des fonctions ou des constantes dans le fichier de définition, vous devriez aussi faire ceci:

12. Où en apprendre plus

Follow the links from the documentation section of the Administration menu of WODA.

There is a help file which is pointed to from the WODA applications, which has some more information on creating and managing WODAs. Release notes provide information about new features.

Also consider joining the woda mailing list. Send a message to maiser@fagg.uni-lj.si and write

sub woda as the only line of the body of the message. To unsubscribe you would write unsub woda to the same address.