Notes sur l'Inerface SE3: ------------------------- L'interface d'administration n'est pas achevée, loin de là mais toute la base est présente pour le développement e nouvelles fonctionnalités. Je développerai ici quelques points en vrac: - L'authentification: --------------------- L'utilisateur est invité à saisir un login/passwd qui sera validé sur l'annuaire LDAP paramétré lors de l'install (le mot de passe est crypté dans l'attribut userPassword. C'est le mot de passe Unix et pas Samba qui intervient). Si le login est accepté, un N° de session aléatoire est généré et placé dans un cookie (le navigateur doit accepter les cookies). Une entrée dans la table session de la base se3db est générée et permet de retrouver le login (uid) de l'utilisateur connecté, ainsi que si il a activé l'aide en ligne. Pour écrire un script exploitant cette authentification, il suffit de le faire commencer par Si l'utilisateur n'est pas authentifié sur l'interface, il sera redirigé sur la boite de login. L'uid de l'utilisateur est disponible dans la variable $login. - Les droits sur l'interface: ----------------------------- Chaque script définit qui a le droit d'éxécution dessus. Cela se fait au moyen des groupes définis dans la branche "Droits". Tout script doit autoriser les utilisateurs (ou groupes) définis dans se3_is_admin. Ensuite, il peut restreindre l'accès aux membres d'autres groupes. L'auteur du script peut s'il le souhaite rajouter des entrées sous la branche "Droits" afin de déléguer les droits sur son script. Pour l'instant sont définis: * se3_is_admin: Administrateur TOTAL de SE3. Seul admin y est défini par défaut. Mieux vaut ne pas multiplier les entrées sous cette branche et préférer une délégation plus fine des pouvoirs. * Annu_is_admin: Administrateur de l'annuaire. Peut effectuer toutes les opérations sur tous les utilisateurs (sauf import par GEP.cgi réservé à se3_is_admin. * sovajon_is_admin: Permet de déléguer les droits de changement de nom et mot de passe aux professeurs POUR leurs élèves et uniquement les leurs. Nécessite pour fonctionner la structure mise en place par GEP.cgi où les groupes Classe_, Cours_ et Equipe_ permettent d'avoir l'information de qui enseigne à qui. - La configuration: ------------------- Seuls les paramètres pour l'authentification sur la base MySQL sont stockés dans les fichiers de conf de l'interface. Ils sont au nombre de 2: * wwwse3/includes/config.inc.php pour les scripts php * /etc/LcSeConfig.ph pour les scripts perl sous /usr/sbin (voir perl_scripts.txt) Le reste des paramètres (LDAP etc..) est dans la table params de la base se3db. Celle-ci contient . Un champ "name": nom du paramètre qui est aussi le NOM DE LA VARIABLE aussi bien dans les scripts PHP que PERL !! . Un champ "value" qui est la valeur de la variable $name. . Un champ "descr" qui est la description de cette variable dans le form de saisie . Un champ "cat" qui permet de classer ces params en catégories: 1 -> paramètres généraux 2 -> paramètre LDAP 3 -> Chemin vers un fichier de conf Cela permet un affichage classé pls agréable pour les forms. Pour rajouter un paramètre, rien de plus simple, il suffit de l'ajouter dans la base de données. Aussitôt, les forms de saisie/modification (sous le menu Configuration) s'adapteront sans nécessité de modifier les scripts, et la variable du nom du paramètre sera disponible dans tous les scripts PERL ou PHP. Kool non? Les paramètres peuent êtres modifiés par le menu configuration depuis l'interface lorsqu'on est admin, mais aussi, en cas de panne de l'annuaire empéchant l'authentification sur l'interface, par le script setup.php qui donne accès à tous les paramètres sans authentification ;-) C'est kool pour le developpement et le débugage. Il sera bien sur protégé par un htaccess. - La modification de l'annuaire ------------------------------- Lorsque par setup.php, une modif est faite sur les paramètres d'annuaire (pour se raccrocher sur un autre annuaire par exemple), la base de donnée est bien sur modifiée instantanément, mais il y a aussi nécessité de modifier des fichiers de conf (pam-ldap, ldap.conf). Pour cela, le script wwwse3/Admin/admin.sh est fabriqué. Lancé par root, il modifiera les fichiers de conf par rapport à ce qui a été demandé. Afin d'éviter l'écrasement de ce fichier par un second reparamétrage, setup.php ne pourra être relancé tant que ce fichier est présent, vous devrez donc le lancer (si vous souhaitez prendre en compte les modifs sur la configuration du système) ou l'ignorer, mais dans tous les cas, l'EFFACER. Cette sécurité temporaire est là à des fins de débuggage et de développement pour éviter de casser son système quand on teste des scripts de paramétrage. A terme, il sera lancé automatiquement par un démon (Admind issu de SLIS) et le mécanisme sera transparent. - Le support multi-distrib -------------------------- Afin de pouvoir s'adapter facilement à toutes les distribs, aucun chemin vers un fichier de conf ne doit être mis en dur dans les scripts. Seuls sont acceptés les chemins vers des fichiers dépendants de SE3, e donc indépendants de la distrib ex: les scripts perls sont dans /usr/sbin/*.pl et peuvent être mis en dur, mais le script d'amorçage de Samba varie d'une distrib à l'autre est est stocké dans la table params. - L'importation GEP: -------------------- Celle-ci est réalisée par le superAdministrateur via le menu annuaire. C'est le script GEP.cgi du projet Lcs qui est utilisé. Celui-ci prend en entrée 7 fichiers GEP (détaillés dans le form de saisie) et fabrique automatiquement les utilisateurs, Groupes, Classes, Cours, Matières et Equipes pédagogiques. Le traitement peut être long, aussi se poursuit-il en tache de fond. Une page web vous permet d'en suivre le déroulement et les messages d'erreurs éventuels. Un grand bravo au passage à Olivier Le Monnier pour ce Script. - L'appli Annuaire: ------------------- Celle-ci a été réalisée par Jean-Luc Chrétien dans le cadre du projet Lcs et je tiens également à le remercier pour son travail. Elle permet de faire des opérations sur les utilisateurs et les groupes si l'on est admin, ou juste de la consultation si on est simple utilisateurs. - L'internationalisation: ------------------------- Celle-ci n'est pas encore complète, notament dans l'appli Annuaire qui a été développée sans le support. Elle est basée sur GNU/gettext qui est un standard dans le domaine. Pour le moment le français est supporté (modulo les fotes dortografe). Quelques messages en anglais ont été traduits essentiellement à but de démonstration. Pour en "bénéficier", sélectionnez "en" dans le paramétrage de la langue (section générale). Pour internationaliser une chaine, il suffit de la passer en argument de la fonction gettext. Ensuite, le script wwwse3/locale/mkmsg.sh se charge d'analyser tous les scripts php pour en retirer les chaines à traduire. Un fichier po est alors généré. Dans wwwse3/locale/en/LC_MESSAGES/ le script merge.sh concatène le fichier po déjà traduit et les nouvelles chaînes à traduire. kbabel se fait un plaisir de vous y aider. Il suffit ensuite de lancer mkmo.sh pour compiler le fichier po et voir vos beaux messages internationalisés ;-) Ya pas plus simple...