Vous êtes sur le wiki de développement du projet SLIS

Choix techniques

Accès à la base de données

La base de données est configurée de telle façon que l'utilisateur "postgres" n'a pas besoin de mot de passe pour se connecter, il s'agit du super-utilisateur pour la base de données. Tous les autres utilisateurs ont besoin d'un mot de passe. Des comptes dédiés (hadmin, slis) sont également créés et leur mots de passe sont stockés dans /etc/slis/postgresql.conf (lisible par le serveur web qui fonctionne sous l'identité hadmin).

Pour les programmes fonctionnant avec les droits root qui veulent accéder à la base de données, il est recommandé qu'ils passent par le biais du compte Unix postgres pour le faire. Voici deux exemples avec psql. Notez l'usage de l'option \set ON_ERROR_STOP pour faire remonter toute erreur et pour limiter les effets de bords.

su postgres -s /bin/sh -c "psql hadmin -f -" <<END
\set ON_ERROR_STOP
SELECT web_server,web_port,slis_directory FROM proxy_reverse ORDER BY slis_directory DESC;
END

Les connexions depuis le serveur web doivent se faire en utilisant les login/mot de passe configurés dans /etc/slis/postgres.conf.

Accès aux machines virtuelles depuis l'hôte

Pendant l'installation une clé SSH est générée pour le compte root sur l'hôte, puis elle est installée dans le fichier authorized_keys du compte root de toutes les machines virtuelles (slis, lcs, debian). Il est donc possible depuis l'hôte de se connecter automatiquement aux différentes machines virtuelles avec ssh -q -o StrictHostKeyChecking=no {slis,lcs,debian}.

Au cours de l'installation, des entrées sont également installées dans les fichiers /etc/hosts des différentes machines (hôte et virtuelles) pour que les noms de machines slis, lcs, host, debian renvoient les adresses IP correspondantes au sein de la DMZ.

Modèle MVC pour les scripts PHP

Pour assurer une meilleure lisibilité, une plus grande modularité et pérennité au code, les modules du SLIS sont designé suivant un modèle MVC avec quelques conventions au niveau du PHP. L'un des premiers modules à bénéficier de cette remise à plat est le module DHCP. Voici les différents points :

  • L'accès au modèle se fait en implémentant une classe relative aux objets manipulés. Pour le module DHCP, la classe utilisée est la classe computer qui se trouve dans le fichier computer_classe.inc.php
  • Le controleur est un fichier unique. Il gère les actions à accomplir et la présentation à partir de l'entrée des utilisateurs. Dans le module dhcp, il s'agit du fichier network/dhcp.php . Il fera appel à des fonctions qui sont pour le dhcp stockées dans dhcp.inc.php
  • La vue est assurée par un fichier php qui contient toutes les fonctions nécessaires pour préparer l'affichage. Pour le dhcp, cet ensemble de fontions est dans le fichier dhcp.view.php . Ce fichier fait lui même appel à Smarty pour l'affichage. Les templates suivent une syntaxe slis.nom_du_module.page.action.tpl (l'action étant optionnelle). Ainsi, dans le module DHCP, on a entre autre chose :
    • slis.dhcp.add.tpl
    • slis.dhcp.detail.tpl
    • slis.dhcp.reservations.tpl
    • slis.dhcp.import_export.tpl

L'ensemble des scripts PHP liés au modèle ou aux fonctions sont stockés dans /usr/share/php/Slis/. Les fichiers php liès au serveur web sont dans /usr/share/interfacedu/www/.


QR Code
QR Code devel:design (generated for current page)