« WATERBEAR:Sécurité » : différence entre les versions

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 118 : Ligne 118 :
::=> _en = Posts-Users-Groups
::=> _en = Posts-Users-Groups


* Ce noeud définit le titre de la page de cette gestion de sécurité.  
* Ce noeud définit le titre de l'onglet de page de cette gestion de sécurité.  
  profiles/defaut/langues/bib/admin/admin_securite
  profiles/defaut/langues/bib/admin/admin_securite
Ajouts sous ce noeud:
Ajouts sous ce noeud:
Ligne 127 : Ligne 127 :
::::=> _en = Security management
::::=> _en = Security management


 
* Ce noeud définit touts les textes qui apparaissent dans l'écran hors du titre d'onglet de page configuré ci-dessus. Cette liste non exhaustible peut être adaptée. Son utilité sera expliquée au niveau du paramétrage de l'interface.
 
  profiles/defaut/langues/bib/admin/securite
  profiles/defaut/langues/bib/admin/securite
Ajouts sous ce noeud:
:=> securite
::=> _intitules
:::=> anglais
::::=> _en = English
::::=> _fr = Anglais
:::=> francais
::::=> _en = French
::::=> _fr = Français
:::=> action
::::=> _en = Action
::::=> _fr = Action
:::=> code
::::=> _en = Key
::::=> _fr = Code
:::=> langue
::::=> _en = Language
::::=> _fr = Langue
:::=> liste
::::=> _en = List
::::=> _fr = Liste
:::=> bib
::::=> _en = Library
::::=> _fr = Bibliothèque
:::=> groupe
::::=> _en = Group
::::=> _fr = Groupe
:::=> mdp
::::=> _en = Password
::::=> _fr = Mot de passe
:::=> nom
::::=> _en = Name
::::=> _fr = Nom
:::=> groupes-postes
::::=> _en = Posts (Groups)
::::=> _fr = Postes (Groupes)
:::=> groupes-users
::::=> _en = Users (Groups)
::::=> _fr = Utilisateurs (Groupes)
:::=> postes
::::=> _en = Posts
::::=> _fr = Postes
:::=> users
::::=> _en = Users
::::=> _fr = Utilisateurs


+ securite
* Les bibliothèques sont impliquées dans cette gestion en tant que données liées. Par cohérence, il faut adapter les traductions au niveau de la gestion de sa liste sous la rubrique administration.
+ _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
 
 
 
 





Version du 21 janvier 2021 à 15:31

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 = -
=> admin
=> nom
=> _en = Administrators
=> _fr = Administrateurs
=> benevole
=> nom
=> _en = Volunteers
=> _fr = Bénévoles
=> utilisateur
=> nom
=> _en = Users
=> _fr = Utilisateurs
  • 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 = -
=> externe
=> nom
=> _en = External
=> _fr = Externe
=> interne
=> nom
=> _en = Internal
=> _fr = Interne

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 l'onglet de 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
  • Ce noeud définit touts les textes qui apparaissent dans l'écran hors du titre d'onglet de page configuré ci-dessus. Cette liste non exhaustible peut être adaptée. Son utilité sera expliquée au niveau du paramétrage de l'interface.
profiles/defaut/langues/bib/admin/securite

Ajouts sous ce noeud:

=> securite
=> _intitules
=> anglais
=> _en = English
=> _fr = Anglais
=> francais
=> _en = French
=> _fr = Français
=> action
=> _en = Action
=> _fr = Action
=> code
=> _en = Key
=> _fr = Code
=> langue
=> _en = Language
=> _fr = Langue
=> liste
=> _en = List
=> _fr = Liste
=> bib
=> _en = Library
=> _fr = Bibliothèque
=> groupe
=> _en = Group
=> _fr = Groupe
=> mdp
=> _en = Password
=> _fr = Mot de passe
=> nom
=> _en = Name
=> _fr = Nom
=> groupes-postes
=> _en = Posts (Groups)
=> _fr = Postes (Groupes)
=> groupes-users
=> _en = Users (Groups)
=> _fr = Utilisateurs (Groupes)
=> postes
=> _en = Posts
=> _fr = Postes
=> users
=> _en = Users
=> _fr = Utilisateurs
  • Les bibliothèques sont impliquées dans cette gestion en tant que données liées. Par cohérence, il faut adapter les traductions au niveau de la gestion de sa liste sous la rubrique administration.


Ajout des entrées dans les menus

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
=> 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
=> 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
=> 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
=> nom
=> 0
=> nom = Nom
=> 1
=> bib = Bibliothèque
=> 2
=> groupe = Groupe (P)
=> 3
=> IP = IP
=> postes (groupes)
=> chemin = system/groupes-postes
=> nom
=> 0
=> nom = Nom
=> utilisateurs
=> chemin = system/users
=> liste_deroulante
=> groupe
=> chemin = system/groupes-users
=> nom
=> 0
=> nom = Nom
=> 1
=> mdp = Mot de passe
=> 2
=> groupe = Groupe (U)
=> utilisateurs (groupes)
=> chemin = system/groupes-users
=> nom
=> 0
=> nom = Nom
=> 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

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


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".


WATERBEAR:Menu.securite.png


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.


WATERBEAR:Liste.groupe.utilisateur.png


  • Groupes des postes.


WATERBEAR:Liste.groupe.poste.png


  • Utilisateurs.

Remarquez la liste déroulante pour le groupe. Elle fait référence aux groupes d'utilisateurs gérés ci-dessus.


WATERBEAR:Liste.utilisateur.png


  • 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").


WATERBEAR:Liste.poste.png


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



->retour à la personnalisation de Waterbear