WATERBEAR:Sécurité
But
Dans cette article, nous ajoutons un écran de gestion des bases de la sécurité. Il gère les utilisateurs et les postes.
Cette action a trois volets:
- Ajout de la notion de gestion de groupes d'utilisateurs et de groupes de postes.
- Ajout de scripts
- Action sur le registre
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'utilisateur 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.
- 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.
- => groupes-users
- => admin
- => nom = administrateurs
- => benevole
- => nom = bénévoles
- => utilisateur
- => nom = utilisateurs
- => admin
- 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.
- => groupes-postes
- => externe
- => nom = externes
- => interne
- => nom = internes
- => externe
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.
Scripts
Les nouveaux scripts PHP et JavaScript ont été ajoutés au logiciel. Ils ont été ajouté à 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.php" : Web Service associé
- "include/templates/defaut/bib/admin/admin_securite.php" : Script de personnalisation du modèle de base de la page
- "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éfini l'intitulé principal du menu.
profiles/defaut/langues/bib/menus/admin/_intitules/menu_securite
Ajouts sous ce noeud:
- => menu_securite
- => _fr = Sécurité
- Ce noeud défini 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
- Ce noeud défini 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é
- => titre_page
- => _intitules
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 eendroits.
- 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éninir 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è. Cette entrée se retrouve dans les définitions des menus ("url").
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
- => menu_deroulant
- => 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
- => menu_deroulant
- => 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
- La définition de la page d'accès au Web Service est très simple. Cette entrée se retrouve dans les définitions des menus ("ws_url").
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