diff -r 8c32ea1310de -r 7c6fe1dab213 doc/administration.rst --- a/doc/administration.rst Tue Oct 08 17:25:39 2013 +0200 +++ b/doc/administration.rst Fri Oct 11 11:46:18 2013 +0200 @@ -27,7 +27,7 @@ Commande d'administration ========================= -Voici une liste des commandes ser vant à gérer l'import et l'export des notices (``Record``). +Voici une liste des commandes servant à gérer l'import et l'export des notices (``Record``). .. _admin-import-record: @@ -242,13 +242,16 @@ Cette commande est fournie par le module Django ``Haystack``. Sa documentation se trouve à l'adresse suivante : http://django-haystack.readthedocs.org/en/v2.1.0/management_commands.html -console d'administration / gestion des utilisateurs -=================================================== +console d'administration +======================== Le back-office offre une console d'administration donnant accès en particulier à la gestion des utilisateurs. On y accède par le lien ``admin`` dans l'en-tête des pages si on est connecté en tant qu'administrateur ou bien en allant directement à l'adresse ``/p4l/admin/``. +gestion des utilisateurs +------------------------ + L'administration des utilisateurs se fait à l'adresse suivante : ``/p4l/admin/p4l/user/``. L'administration des groupes d'utilisateurs se fait à l'adresse suivante: ``/p4l/admin/auth/group/``. @@ -263,4 +266,45 @@ Pour faciliter la gestion de ces permissions, le plus simple est de créer un groupe ``utilisateurs``. On affectera à ce groupe toutes les permissions sur les objects de l'application ``p4l``. il suffira ensuite de mettre les utilisateurs dans ce groupe (champ ``Groupes`` dans l'interface d'édition des utilisateurs). L'utilisateur héritera alors des parmissions du groupe. - + + +Lancement d'un script +--------------------- +Il est possible de lancer un script à partir de l'adresse suivante : ``/p4l/admin/confirm_script``. + +Le script qui est exécuté est configuré par la propriété ``ADMIN_SCRIPT`` dans la configuration de l'application (``src/p4l/config.py``). +Cette propriété est un dictionnaire dont les clés sont les arguments du constructeur de subprocess.Popen. +Tous les arguments et le fonctionnement de cet objet sont détaillés à l'adresse suivante : http://docs.python.org/2/library/subprocess.html#popen-constructor +Tous les arguments sont configurables sauf les suivants : ``stdout``, ``stderr``, ``bufsize``, ``close_fds``, ``preexec_fn``. +Cependant les quatres suivants seront les plus utiles: + * `args`: soit une séquence d'arguments de programme, soit une chaine de caractères + * `cwd`: le chemin du reepertoire de travail. Par défaut : ``None`` + * `env`: dictionnire donnant les variables d'evironement positinnées durant l'éxeecution du script. + +Il est recommandé que ``args`` soit une liste d'arguments et non une simple chaîne de caractères. + +L'example suivant démontre comment on peut configurer cette propriété pour lancer le dump des notices avec la commande ``dump_record``. + +.. code-block :: python + +ADMIN_SCRIPT = { + 'args' : [ sys.executable, "manage.py", "dump_record", "--newline", "-j", "/tmp/script_dump.rdf.bz2"], + 'cwd' : "/src", + 'env' : {'PYTHONPATH': '/lib/python2.7/site-packages'} +} + + +Plusieurs points sont à noter: + + * L'utilisation de cette fonctionnalité est à priori réservé pour une application installé sous Unix. (cela peut fonctionner sous Windows, mais cela n'a pas été testé) + * La fermeture de la fenêtre du navigateur ne stoppe pas la commande + * En particulier si la session de l'utilisateur expire ou bien que la fenêtre du browser est fermée, il n'y a plus possibilité de stopper le processus à partir d'un browser. + Le processus devra être interompu par les moyens habituels directement sur le serveur + * La commande est lancée dans le contexte du serveur web. Elle est donc executé par l'utilisateur du serveur web et hérite de ces droits d'accès. + * Tout démarrage du serveur web stoppe la commande. + * La commande partage les ressources du serveurs web. Attention donc à ne pas lancer des commandes trop gourmandes en ressources, cela peut avoir des conséquences sur la stabilité du serveur web et sa disponibilité. + * L'affichage de la sortie de la commande dans le browser se fait ligne par ligne. + Si la sortie de la commande ne comporte pas de caractère de retour à la ligne (``"\n"``) rien ne s'affichera avant la fin de la commande. + * Les sorties erreur et standard sont affichée ensemble sans différentiation. + + \ No newline at end of file