WATERBEAR:Sécurité
But
Dans cette article, nous ajoutons un écran de gestion des bases de la sécurité. Il gère les utilisateurs, les postes et leurs groupes
Cette action a trois volets:
- Prise en compte des langues
- Ajout de la notion de gestion de groupes d'utilisateurs et de groupes de postes.
- Ajout de scripts
- Ajout dans le registre
Langues
La gestion des langues se passe à deux niveaux.
- La langue d'affichage qui est choisie lors de l'authentification à l'entrée du logiciel. Par défaut, c'est le français qui est installé. Pour nos tests et les exemples, nous avons ajouté l'anglais.
Cet ajout se fait dans le registre au noeud:
system/langues
On ajoute l'entrée : "_en = Anglais".
- => langues
- => _en = Anglais
- => _fr = Français
Dès qu'on entre dans le logiciel avec une langue donnée, ce sont toutes les traductions sous le noeud du registre:
profiles/defaut/langues
pour la langue choisie qui vont s'appliquer. Dans les écrans, pour autant que ceci soit pris en compte dans les scripts, tous les textes sont concernés. Il est évident que si la traduction pour cette langue n'est pas implantée, l'affichage en sera perturbé.
- Dans la gestion qui nous concerne, le but est notamment la traduction en plusieurs langue. A droite de l'écran une liste déroulante permet de choisir la langue. Les zones concernées par la traduction pourront être traduites indépendamment de la langue d'affichage général. Les langues concernées doivent être configurées. Nous le verrons plus loin lors du paramétrage de l'interface.
Gestion des listes
Actuellement quand on veut ajouter, modifier ou supprimer un utilisateur ou un poste, opération à effectuer dès le début de l'utilisation, il faut aller dans le registre.
La gestion des utilisateurs se fait au noeud "system/users". On y remarque que chaque utilisateur fait référence à un groupe d'utilisateurs qui n'existe pas.
De même, la gestion des postes se fait au noeud "system/postes". Là aussi, on remarque que chaque poste fait référence à un groupe de postes qui n'existe pas. Il fait aussi référence au nom d'une bibliothèque. La gestion de cette dernière existe dans les écrans de gestion des listes ("listes du catalogage" et "listes des lecteurs et prêts").
Nous allons procéder à l'ajout de ces deux types de groupes dans le registre. La configuration pour le français et l'anglais sont présentées pour être conforme à nos exemples.
- Les groupes des utilisateurs
Nous ajoutons le noeud:
system/groupes-users
Sous ce noeud, nous ajoutons trois groupes utilisés à l'installation dans le registre: admin, utilisateur et benevole. Evidemment cette liste est à adapter selon votre infrastructure, aux groupes déjà utilisés ou à venir. La première entrée est ajout pour une facilité de gestion des données manquantes. Le code peut être adapté à volonté.
- => groupes-users
- => -
- => nom
- => _en = -
- => _fr = -
- => nom
- => admin
- => nom
- => _en = Administrators
- => _fr = Administrateurs
- => nom
- => benevole
- => nom
- => _en = Volunteers
- => _fr = Bénévoles
- => nom
- => utilisateur
- => nom
- => _en = Users
- => _fr = Utilisateurs
- => nom
- => -
- Les groupes des postes
Nous ajoutons le noeud:
system/groupes-postes
Sous ce noeud, nous avons ajouté pour l'exemple, deux groupes: interne et externe. De même cette liste est à adapter selon votre infrastructure, aux groupes déjà utilisés ou à venir. La première entrée est ajout pour une facilité de gestion des données manquantes. Le code peut être adapté à volonté.
- => groupes-postes
- => -
- => nom
- => _en = -
- => _fr = -
- => nom
- => externe
- => nom
- => _en = External
- => _fr = Externe
- => nom
- => interne
- => nom
- => _en = Internal
- => _fr = Interne
- => nom
- => -
Ces listes sont importantes. Il faut les configurer en premier via les nouveaux écrans créés. Leur contenu est utilisé dans les listes déroulantes respectivement pour la gestion des utilisateurs et des postes. Si vous ne le faites pas, un message d'erreur vous invitera à le faire.
Note: Ces deux groupes sont joints aux scripts pour l'ajout dans le registre téléchargeable en fin de page.
Scripts
Les nouveaux scripts PHP et JavaScript ont été ajoutés au logiciel. Ils ont été ajoutés à l'ensemble qui est téléchargeable au lien suivant:
Télécharger le fichier ZIP des modifications de Waterbear
Un autre fichier ne comprenant que ces scripts est téléchargeable au lien suivant:
Télécharger le fichier ZIP des scripts de sécurité de Waterbear
Voici la liste des scripts:
- "include/pages/bib/admin/admin_securite.php" : Page d'entrée
- "include/pages/bib_ws/admin/admin_securite_tete.php" : Web Service associé pour la récolte des données propre à la gestion des listes déroulantes de l'entête
- "include/pages/bib_ws/admin/admin_securite_liste.php" : Web Service associé pour la récolte des données propre à la gestion du tableau
- "include/templates/defaut/bib/admin/admin_securite.php" : Script de préparation du modèle de base de la page (les deux listes déroulantes et tableau)
- "include/templates/defaut/bib/admin/admin_securite/javascript.php" : Script JavaScript de gestion interactive de la page
Registre
Comme pour tous les écrans, la création de nouveaux écrans passe par une configuration du registre. Nous nous sommes basés sur le module de gestion des listes. Sur cette base nous avons créé de nouveaux scripts et par ce fait, de nouvelles entrées doivent être faites dans le registre.
Langue
On démarre par la définition de quelques entrées de traduction:
- Ce noeud définit l'intitulé principal du menu.
profiles/defaut/langues/bib/menus/admin/_intitules/menu_securite
Ajouts sous ce noeud:
- => menu_securite
- => _fr = Sécurité
- => _en = Security
- Ce noeud définit l'intitulé principal du sous-menu qui donne accès à cette page.
profiles/defaut/langues/bib/menus/admin/_intitules/securite
Ajouts sous ce noeud:
- => securite
- => _fr = Postes-Utilisateurs-Groupes
- => _en = Posts-Users-Groups
- Ce noeud définit le titre de la page de cette gestion de sécurité.
profiles/defaut/langues/bib/admin/admin_securite
Ajouts sous ce noeud:
- => admin_securite
- => _intitules
- => titre_page
- => _fr = Gestion de la sécurité
- => _en = Security management
- => titre_page
- => _intitules
profiles/defaut/langues/bib/admin/securite
+ securite + _intitules
+ action + _en => Action + _fr => Action + anglais + _en => English + _fr => Anglais + bib + _en => Library + _fr => Bibliothèque + code + _en => Key + _fr => Code + francais + _en => French + _fr => Français + groupe + _en => Group + _fr => Groupe + groupes-postes + _en => Posts (Groups) + _fr => Postes (Groupes) + groupes-users + _en => Users (Groups) + _fr => Utilisateurs (Groupes) + langue + _en => Language + _fr => Langue + liste + _en => List + _fr => Liste + mdp + _en => Password + _fr => Mot de passe + nom + _en => Name + _fr => Nom + postes + _en => Posts + _fr => Postes + users + _en => Users + _fr => Utilisateurs
Comme cette fonctionnalité est du domaine de l'administration, les entrées dans les menus ont été ajoutées dans cette partie. De plus ces entrées doivent être réservées aux administrateurs. Ces ajouts ont été faits à trois endroits.
- Menu de l'administration simple.
profiles/defaut/pages/bib/admin/_parametres/barre_menus1/03 - securite
Ajouts sous ce noeud:
- => 03 - securite
- => chemin_langue = bib/menus/admin
- => sections
- => 00
- => menus
- => 00 - securite
- => titre = securite
- => url = bib.php?module=admin/admin_securite
- => 00 - securite
- => menus
- => 00
- => titre = menu_securite
- Menu du registre.
profiles/defaut/pages/bib/admin/objets/_parametres/barre_menus1/002 - securite
Ajouts sous ce noeud:
- => 002 - securite
- => chemin_langue = bib/menus/admin
- => sections
- => 00:
- => menus
- => 00 - securite
- => titre = securite
- => url = bib.php?module=admin/admin_securite
- => 00 - securite
- => menus
- => 00:
- => titre = menu_securite
- Menu de la gestion des objets.
profiles/defaut/pages/bib/admin/registre/_parametres/barre_menus1/002 - securite
Ajouts sous ce noeud:
- => 002 - securite
- => chemin_langue = bib/menus/admin
- => sections
- => 00
- => menus
- => 00 - securite
- => titre = securite
- => url = bib.php?module=admin/admin_securite
- => 00 - securite
- => menus
- => 00
- => titre = menu_securite
Pages
Ces entrées vont définir la page concernée et son Web Service. Dans ces définitions, on retrouve les références aux nouveaux scripts PHP¨et JavaScript nouvellement créés.
- Voici la définition de la page d'accès. Cette entrée se retrouve dans la définition du noeud ("url") des menus.
Voici le noeud:
profiles/defaut/pages/bib/admin/admin_securite
Dont le contenu est:
- => admin_securite
- => _droits
- => *:* = 0
- => Gadmin:* = 1
- => _page = bib/admin/admin_securite.php
- => _parametres
- => favicon = IMG/icones/cog_edit.png
- => langues
- => français = _fr
- => langue_defaut = _fr
- => listes
- => postes
- => chemin = system/postes
- => liste_deroulante
- => bib
- => chemin = profiles/defaut/langues/listes/catalogue/catalogage/grilles/exemplaire/bibliotheque/_intitules
- => groupe
- => chemin = system/groupes-postes
- => bib
- => nom
- => 0
- => nom = Nom
- => 1
- => bib = Bibliothèque
- => 2
- => groupe = Groupe (P)
- => 3
- => IP = IP
- => 0
- => postes (groupes)
- => chemin = system/groupes-postes
- => nom
- => 0
- => nom = Nom
- => 0
- => utilisateurs
- => chemin = system/users
- => liste_deroulante
- => groupe
- => chemin = system/groupes-users
- => groupe
- => nom
- => 0
- => nom = Nom
- => 1
- => mdp = Mot de passe
- => 2
- => groupe = Groupe (U)
- => 0
- => utilisateurs (groupes)
- => chemin = system/groupes-users
- => nom
- => 0
- => nom = Nom
- => 0
- => postes
- => titre_page = bib/admin/admin_securite/titre_page
- => ws_url = bib_ws.php?module=admin/admin_securite/standard
- => _template
- => include_css
- => include_js
- => tmpl_barre_icones2 = bib/menus/barres_defaut.php
- => tmpl_barre_menus2 = bib/menus/menus_defaut.php
- => tmpl_javascript = bib/admin/admin_securite/javascript.php
- => tmpl_main = bib/admin/admin_securite.php
- => _droits
Quelques explications:
- Au noeud "_droits", on voit que seuls les administrateurs y ont accès.
- Au niveau des paramètres, sous le noeud "listes", on retrouve la liste des éléments de sécurité à traiter ("poste", "utilisateurs", "poste (groupes)" et "utilisateurs (groupes)"). Ces intitulés peuvent être modifiés à volonté. La liste en sera adaptée. (voir le second écran ci-dessous) Chacune de ces entrées possède trois attributs ("chemin", "nom" et "menu_deroulanr").
- Le noeud "chemin" définit le noeud dans le registre sous lequel on trouve les données à traiter.
- Le noeud "nom" définit le nom des différents champs de cette liste à afficher et sous quel intitulé et selon un ordre donné par un numéro le précédent. Par exemple, dans la liste "postes" dont le chemin dans le registre est "system/postes", le champs "bib" sera en seconde position et son entête sera "Bibliothèque". (voir le troisième écran ci-dessous) L'ordre peut être changé via ces numéros.
- Le noeud "liste_deroulante" définit quel champs de la liste est lié à un listes déroulante. Sous ce nom, on retrouve le "chemin" dans le registre où se trouve le contenu à afficher dans ce listes déroulante.
- La définition de la page d'accès au Web Service est très simple. Cette entrée se retrouve dans la définition du noeud ("ws_url") de la page d'entrée.
Voici le noeud:
profiles/defaut/pages/bib_ws/admin/admin_securite
Dont le contenu est:
- => admin_securite
- => standard
- => _page = bib_ws/admin/admin_securite.php
- => standard
Aspect
Pour y accéder, une entrée dans le menu a été ajoutée à trois endroits. Quand vous allez dans l'écran de '"Administration" simple ou du "Registre" ou de la "Gestion des objets", une colonne intermédiaire "Sécurité" a été ajoutée au menu. Il donne accès à "Poste-Utilisateurs-Groupes".
Il donne accès à un écran dont le haut est pourvu d'une liste déroulante. Cette liste donne accès à la gestion de:
- Groupes des utilisateurs.
- Groupes des postes.
- Utilisateurs.
Remarquez la liste déroulante pour le groupe. Elle fait référence aux groupes d'utilisateurs gérés ci-dessus.
- Postes.
Remarquez ici aussi la liste déroulante pour le groupe. Elle fait référence aux groupes de postes gérés ci-dessus. Une seconde liste déroulante récupère la liste des bibliothèques définies dans les écrans de gestion des listes ("listes du catalogage" et "listes des lecteurs et prêts").
Intégration dans le registre
Ces corrections sont à faire dans le registre. A ce stade, vous pouvez les personnaliser. Pour les appliquer, vous pouvez soit les intégrer dans l'écran d'importation au niveau de l'administration du registre, soit exécuter, en commande de ligne sous Linux, le script contenu dans le fichier zippé ci-dessous:
Télécharger le fichier ZIP
Ce fichier est à dézipper sous Linux dans un répertoire de travail quelconque sur la machine où se trouve les sources du site WEB de Waterbear:
unzip Securite.maj.registre.zip
Dans ce répertoire généré, se trouvent un sous-répertoire "registre" contenant les fichiers texte (.txt) où se trouvent les enregistrements à injecter dans le registre. Ce contenu a le format de celui utilisé dans l'interface d'exportation et d'importation de l'administration du registre de Waterbear. On trouve également un fichier de script PHP. Dans ce fichier, il faut adapter la variable "$racinewaterbear" qui doit contenir le chemin de la racine du logiciel WEB de Waterbear où on retrouve le fichier "bib.php". Par exemple, si ce chemin est "/web/waterbear" comme dans notre exemple d'installation, la variable devient (ne pas oublier la barre oblique finale "/"):
$racinewaterbear = "/web/waterbear/";
Ensuite, en commande de ligne sous Linux, positionnez-vous dans le répertoire du script et exécutez-le:
php ./maj.registre.liste.fichier.php