[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3master/var/cache/se3_install/doc/ -> INTERFACE (source)

   1  Notes sur l'Inerface SE3:
   2  -------------------------
   3  
   4  L'interface d'administration n'est pas achevée, loin de là mais toute la base
   5  est présente pour le développement e nouvelles fonctionnalités. Je développerai
   6  ici quelques points en vrac:
   7  
   8  - L'authentification:
   9  ---------------------
  10  L'utilisateur est invité à saisir un login/passwd qui sera validé sur l'annuaire
  11  LDAP paramétré lors de l'install (le mot de passe est crypté dans l'attribut
  12  userPassword. C'est le mot de passe Unix et pas Samba qui intervient). Si le 
  13  login est accepté, un N° de session aléatoire est généré et placé dans un 
  14  cookie (le navigateur doit accepter les cookies). Une entrée dans la table
  15  session de la base se3db est générée et permet de retrouver le login (uid) de
  16  l'utilisateur connecté, ainsi que si il a activé l'aide en ligne.
  17  Pour écrire un script exploitant cette authentification, il suffit de le faire 
  18  commencer par
  19  <? require "includes/entete.inc.php" ?>
  20  Si l'utilisateur n'est pas authentifié sur l'interface, il sera redirigé sur la 
  21  boite de login. L'uid de l'utilisateur est disponible dans la variable $login.
  22  
  23  - Les droits sur l'interface:
  24  -----------------------------
  25  Chaque script définit qui a le droit d'éxécution dessus. Cela se fait au
  26  moyen des groupes définis dans la branche "Droits". Tout script doit
  27  autoriser les utilisateurs (ou groupes) définis dans se3_is_admin. Ensuite, il
  28  peut restreindre l'accès aux membres d'autres groupes. L'auteur du script peut 
  29  s'il le souhaite rajouter des entrées sous la branche "Droits" afin de déléguer 
  30  les droits sur son script. Pour l'instant sont définis:
  31  
  32  * se3_is_admin: Administrateur TOTAL de SE3. Seul admin y est défini par défaut.
  33  Mieux vaut ne pas multiplier les entrées sous cette branche et préférer une
  34  délégation plus fine des pouvoirs.
  35  * Annu_is_admin: Administrateur de l'annuaire. Peut effectuer toutes les 
  36  opérations sur tous les utilisateurs (sauf import par GEP.cgi réservé à 
  37  se3_is_admin.
  38  * sovajon_is_admin: Permet de déléguer les droits de changement de nom et mot de 
  39  passe aux professeurs POUR leurs élèves et uniquement les leurs. Nécessite pour 
  40  fonctionner la structure mise en place par GEP.cgi où les groupes Classe_, 
  41  Cours_ et Equipe_ permettent d'avoir l'information de qui enseigne à qui.
  42  
  43  - La configuration:
  44  -------------------
  45  Seuls les paramètres pour l'authentification sur la base MySQL sont stockés dans
  46  les fichiers de conf de l'interface. Ils sont au nombre de 2:
  47  * wwwse3/includes/config.inc.php pour les scripts php
  48  * /etc/LcSeConfig.ph pour les scripts perl sous /usr/sbin (voir
  49  perl_scripts.txt)
  50  Le reste des paramètres (LDAP etc..) est dans la table params de la base se3db. 
  51  Celle-ci contient 
  52  . Un champ "name": nom du paramètre qui est aussi le NOM DE LA VARIABLE aussi
  53  bien dans les scripts PHP que PERL !!
  54  . Un champ "value" qui est la valeur de la variable $name.
  55  . Un champ "descr" qui est la description de cette variable dans le form de 
  56  saisie
  57  . Un champ "cat" qui permet de classer ces params en catégories:
  58  1 -> paramètres généraux
  59  2 -> paramètre LDAP
  60  3 -> Chemin vers un fichier de conf
  61  Cela permet un affichage classé pls agréable pour les forms.
  62  
  63  Pour rajouter un paramètre, rien de plus simple, il suffit de l'ajouter dans la 
  64  base de données. Aussitôt, les forms de saisie/modification (sous le menu 
  65  Configuration) s'adapteront sans nécessité de modifier les scripts, et la 
  66  variable du nom du paramètre sera disponible dans tous les scripts PERL ou PHP. 
  67  Kool non?
  68  
  69  Les paramètres peuent êtres modifiés par le menu configuration depuis 
  70  l'interface lorsqu'on est admin, mais aussi, en cas de panne de l'annuaire
  71  empéchant l'authentification sur l'interface, par le script setup.php qui donne
  72  accès à tous les paramètres sans authentification ;-) C'est kool pour le
  73  developpement et le débugage. Il sera bien sur protégé par un htaccess.
  74  
  75  - La modification de l'annuaire
  76  -------------------------------
  77  Lorsque par setup.php, une modif est faite sur les paramètres d'annuaire (pour 
  78  se raccrocher sur un autre annuaire par exemple), la base de donnée est bien sur 
  79  modifiée instantanément, mais il y a aussi nécessité de modifier des fichiers de 
  80  conf (pam-ldap, ldap.conf). Pour cela, le script wwwse3/Admin/admin.sh est 
  81  fabriqué. Lancé par root, il modifiera les fichiers de conf par rapport à ce qui 
  82  a été demandé. Afin d'éviter l'écrasement de ce fichier par un second 
  83  reparamétrage, setup.php ne pourra être relancé tant que ce fichier est présent, 
  84  vous devrez donc le lancer (si vous souhaitez prendre en compte les modifs sur 
  85  la configuration du système) ou l'ignorer, mais dans tous les cas, l'EFFACER. 
  86  
  87  Cette sécurité temporaire est là à des fins de débuggage et de développement
  88  pour éviter de casser son système quand on teste des scripts de paramétrage. A 
  89  terme, il sera lancé automatiquement par un démon (Admind issu de SLIS) et le 
  90  mécanisme sera transparent.
  91  
  92  - Le support multi-distrib
  93  --------------------------
  94  Afin de pouvoir s'adapter facilement à toutes les distribs, aucun chemin vers un
  95  fichier de conf ne doit être mis en dur dans les scripts. Seuls sont acceptés
  96  les chemins vers des fichiers dépendants de SE3, e donc indépendants de la
  97  distrib
  98  ex: les scripts perls sont dans /usr/sbin/*.pl et peuvent être mis en dur, mais
  99  le script d'amorçage de Samba varie d'une distrib à l'autre est est stocké dans
 100  la table params.
 101  
 102  - L'importation GEP:
 103  --------------------
 104  Celle-ci est réalisée par le superAdministrateur via le menu annuaire. C'est le 
 105  script GEP.cgi du projet Lcs qui est utilisé. Celui-ci prend en entrée 7 
 106  fichiers GEP (détaillés dans le form de saisie) et fabrique automatiquement les 
 107  utilisateurs, Groupes, Classes, Cours, Matières et Equipes pédagogiques. Le 
 108  traitement peut être long, aussi se poursuit-il en tache de fond. Une page web 
 109  vous permet d'en suivre le déroulement et les messages d'erreurs éventuels.
 110  Un grand bravo au passage à Olivier Le Monnier pour ce Script.
 111  
 112  - L'appli Annuaire:
 113  -------------------
 114  Celle-ci a été réalisée par Jean-Luc Chrétien dans le cadre du projet Lcs et je 
 115  tiens également à le remercier pour son travail. Elle permet de faire des
 116  opérations sur les utilisateurs et les groupes si l'on est admin, ou juste de la 
 117  consultation si on est simple utilisateurs.
 118  
 119  - L'internationalisation:
 120  -------------------------
 121  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).
 122  
 123  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...


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1