WODA:
Manuel de l'Administrateur 4.xxx
accueil | caractéristiques | versions | aide | manuel | FAQ | télécharger | location

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.

Préambule: il existe beaucoup de systèmes de bases de données, certains vous permettent même d'accéder aux données par le Web. La plupart sont pourtant compliqué à installer et utiliser. Le créateur de Woda pense que la fabrication de sites Web, même de simples sites personnels, devrait être abordée à travers une application de base de données. Avec Woda, créer de telles bases de données sur le web, de petites ou moyennes taille, devient une bagatelle pour les novices. Ce qui n'empêche pas les experts de créer des applications professionnelles. L'idée derrière Woda est de décrire les données que votre application manipule, et toutes les pages dont vous avez besoin sont générées automatiquement, en se basant sur la structure des données.

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

ATTENTION: Ce document décrit la version 4, qui est très différente de la version 3. Les changements importants par rapport au manuel de la version 3 sont en violet.

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. wodafr.pm), 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, personnalise 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). Nos amis sur l'Internet ont créés des traductions dans d'autres langues. Vous le pouvez aussi

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 LINKOPTION et les fonctions comme &QRY() et &FLD() permettent la liaison de deux tables. Voir aussi la section sur les Possibilités relationnelles.

Toutes les données se rapportant à une table sont stockées dans un répertoire indiqué par $WBB{dataDir}, lui-même contient plusieurs sous-répertoires. Les sous-répertoire du système ont des noms commençant par un _tiret bas. Les sous-répertoires sont:

_cache

Contient plusieurs fichiers système, une représentation des données pratique pour la recherche et plusieurs fichiers pour accélérer les choses. Tous les fichiers sauf access*.* peuvent être automatiquement reconstruits.

_data

contient les données dans deux fichiers - fat.txt et records.txt.

_doc

Contient les fichiers qui doivent être traités par Woda.

_friend

contient les données relatives aux utilisateurs enregistrés de l'application.

_log

Contient les fichiers de log (journaux).

_qry

Contient un cache des requêtes dans d'autres tables.

_tmp

Contient des fichiers temporaires.

att

Contient les champs binaires sous forme de fichiers.

robots

Contient les matériaux pour les robots du Web.

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 originale du fichier comme .gif, .doc, .zip ou .tar.gz dans le sous répertoire att. Att et robots devraient être dans le chemin visible par le serveur Web, les autres ne le devraient pas.

Le répertoire _data contient tous les enregistrements d'une base de données. Le fichier Records.txt contient des lignes comme celles-ci:

231 988767
name
Audrey
lastName
Horne
address
Twin Peaks
221 988767
name
Tom
lastName
Peters
address
...

La première ligne donne la taille de l'enregistrement et sa date de modification au format de temps UNIX. Elle est suivie par les attributs et leurs valeurs. 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. C'est vrai, les connaisseurs vont trouver ça un peu primitif, c'est, cependant, très robuste et flexible. De toute façn, l'auteur ne crée pas un outil pour conccurencer Oracle, Sybase ou Microsoft sur la puissance brute des bases de données, mais sur la facilité d'installation, de paramétrage et d'utilisation!

Le fichier fat.txt contient des données permettant d'accéder plus vite aux enregistrements dans le fichier records.txt. Les nouveaux enregistrements sont simplement ajoutés à la fin. De même les versions modifiées des enregistrements.

Attention: ne modifiez pas manuellement ces deux fichiers sans très bien savoir ce que vous faites!

L'efficacité de plus grandes bases de données, en particulier pendant les recherches, est énormément améliorée en cachant (caching) certaines données dans le répertoire _cache. Les fichiers de cache sont créés périodiquement d'aprè les fichiers _data, soit aprè 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 lancez un touch sur fat.txt si vous avez besoin de reconstruire les fichiers de cache!

Tout fichier commençant par un tiret bas (ou caractère souligné, est un fichier système de WODA. Les champs systèmes commencent aussi par un tiret bas. Evitez tous les noms commençant par un tiret bas!

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

L'auteur fournit WODA en 2 langues: Il est disponible en deux configurations qui offrent des fonctionnalités identiques:

Il est disponibles avec deux packaging différents:

Eh oui! ça signifie qu'il y a 8 fichiers associés à chaque version de WODA!

Ndt: en anglais, le ton est celui d'un bonimenteur de foire, et Ziga fait des jeux de mots avec pack.

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 Woda. Les anciennes versions avec des conventions de nommage différentes sont dans un sous-répertoire, par exemple les fichiers *.dct sont les 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/wodauk' sera aussi créé.
  3. Executez le programme d'installation:
    perl install
    et répondez aux questions.
  4. 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 Windows 95 et suivants. Il fonctionne même sur les ordinateurs portables sans connexion à l'Internet. Dans ce dernier cas, vous devrez 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

2.6 Architecture(s) de WODA

architecture woda pm

architecture woda split

architecture woda avec mod_perl

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 à tous les répertoires commençant par un tiret bas. Woda écrit automatiquement les fichiers .htaccess nécessaires aux serveurs compatibles Apache ou NCSA.
    ATTENTION: vérifiez que les scripts CGI auront les permissions de lecture/écriture dans ce répertoire. En général, les processus CGI s'exécutent sous le privilège guest ou nobody et pas en tant que Pierre Dupont! Si le serveur est une machine UNIX et que $WBB{dataDir} est /users/pierre/www/wdat/, donnez tous les droits à tout le monde:
    chmod 0777 /users/pierre/www/wdat/
    Plus tard vous pouvez vouloir restreindre l'accès à l'utilisateur CGI et à vous-même. Demandez à l'administrateur du serveur comment faire cela.
  2. 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.
  3. 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.
  4. Si vous n'êtes pas préoccupé par la sécurité et que toutes les données 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és à travers une URL.
  5. 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.
  6. Essayez la base de données, vérifiez qu'elle s'exécute, puis affinez-là en utilisant l'option Modify structure dans la page Administration menu.

3.1 Notes sur la création de base de données

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

Un moyen très rapide d'obtenir un premier brouillon de la base de données est d'utiliser 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 - si le serveur Web a pu créer tous les fichiers et répertoires requis.
  4. retravaillez la base de données à l'aide du menu modify structure

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.

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è le nom du script (y compris la barre de fraction - slash) et QUERY_STRING correspond aux paramètres aprè 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' ['u=USERNAME&p=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.

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 à ça:

/cgi/definition[/u=username&p=password][/Action][?QUERY_STRING]

par exemple:

/cgi/livredor/u=guest/Search?search=ziga

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, dans la sous-routine mainConfig 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. Ca 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. Ca 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érieur 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. Voir ci-dessous.
  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îne s. 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, pas zé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. Exemple:


 \.com$

        .*

        ^193\.2\.92\..*

La première compare les chaîne s 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. Voyez le chapitre suivant pour plus de fonctions. 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. Ne les paramétrez pas, lisez-les c'est tout.

7.Possibilité relationnelles - tables liées

Les possibilité 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énè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éentes 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 à zéro ou plus de 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 par l'administrateur. Trois groupes: admin, friend et guest, créés par défaut, sont utilisés. Admin peut tout faire. Un visiteur (guest) peut tout faire sauf accéder aux actions d'aministrations ou enregistrer des recherches. Les amis (friends) sont des visiteurs qui ont choisi de s'inscrire.
  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é pour les groupes et les 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ées.

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è 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|^Changed|^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'apparaissent 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 explicitement requis.

8.5 Interdire l'accès aux enregistrements

En général, chaque enregistrement entré dans une base de données 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�. L'administrateur devra utiliser 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 journalisée) 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îne s 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ôles 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 les serveurs Web normaux 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

Support for Modperl is discontinued in Version 4. It may work, but the author is not using it.

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

Dans ce cas le code WODA 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

Suivez les liens dans la rubrique documentation du menu Administration de WODA.

Les applications WODA pointent sur un fichier d'aide, qui contient plus d'informations sur la création et la gestion de bases WODA. Les notes de version fournissent des informations sur les nouvelles caractéristiques.

Rejoignez-nous sur la liste de discussion de Woda. Envoyez un message à maiser@fgg.uni-lj.si et écrivez

sub woda

qui doit être la seule ligne du message. Pour vous désabonner, vous devriez écrire

unsub woda

à la meme adresse.

WODA: the database tool for the World Wide Web
Original version: http://www.ddatabase.com/man.htm
22 avril 2002