Première installation et tests locaux

Installation de la configuration par défaut

La configuration de l'application se fait dans /etc/polynum/local_settings.py. Ce fichier doit être lisible par l'utilisateur de l'application (polynum) et par lui seul, car en production il contiendra notamment les mots de passe vers la base de données ou le serveur LDAP.

Un fichier d'exemple local_settings.py.example est fourni avec Polynum, c'est un modèle pour la création de /etc/polynum/local_settings.py : il contient la liste des paramétrages possibles avec explications et exemples.

Si vous avez installé Polynum à partir du paquet, le modèle est placé dans /usr/share/doc/polynum/, il vous suffit donc de faire :

# cd /etc/polynum
# cp /usr/share/doc/polynum/local_settings.py.example local_settings.py
# chown polynum:polynum local_settings.py
# chmod 640 local_settings.py

La configuration livrée par défaut utilise une base SQLite locale /tmp/polynum.sqlite, une authentification locale, lance le système en mode debug, etc. Sauf si vous savez ce que vous faites, ne la modifiez pas maintenant.

Création d'une base de données SQLite de test

Les manipulations suivantes doivent se faire sous l'utilisateur système dédiée à polynum (polynum par défaut). Pour changer d'utilisateur, vous pouvez utiliser une commande de ce style :

# su -s /bin/bash polynum

ou :

$ sudo -u polynum /bin/bash

C'est le framework Django qui va se charger de créer la base et les tables correspondantes, à travers le script polynum-manage.py (utilisation similaire au script manage.py des projets Django).

Création des tables et du super administrateur :

polynum@testserver:~$ polynum-manage.py syncdb
Creating tables ...
Creating table auth_permission
Creating table auth_group_permissions
(...)
Creating table editor_contentblock
Creating table delegation_delegation

You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): yes
Username (leave blank to use 'polynum'): admin
E-mail address: moi@univ.fr
Password: test
Password (again): test
Superuser created successfully.
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)
polynum@testserver:~$ 

Par la suite, si vous voulez repartir avec une base de données vierge, effacez le fichier /tmp/polynum.sqlite puis reprendre la procédure (polynum-manage.py syncdb).

Mise en place de données initiales

Des données de démonstration sont livrées avec l'application qui simplifient la compréhension de l'utilisation du système, et permettent de faire des tests très rapidement.

Importation des données de tests (sur une nouvelle base seulement) :
$ polynum-manage.py loaddata /usr/share/doc/polynum/fixtures/*.json
Installed 134 object(s) from 6 fixture(s)
Importation d'un arbre d'entités administratives, pour tests :
$ polynum-manage.py loadentities /usr/share/doc/polynum/fixtures/structures.xml
Parsed 5199

Bounds [0, 15959]
dauphine
presidence
(...)
ceremade
irisso
Added   7980 entities

Lancement de l'application en mode test

$ polynum-manage.py runserver

Validating models...

0 errors found
Django version 1.4, using settings 'polynum.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Après lancement de cette commande, vous pouvez naviguer sur l'URL indiquée http://127.0.0.1:8000/ et tester l'application.

Arrêtez le serveur avec Ctrl+C.

Tapez polynum-manage.py runserver --help pour connaître les options disponibles. Attention, il s'agit juste d'un serveur web de test, la commande runserver de Django n'est pas adaptée à la production !

Tests d'authentification distante (CAS + LDAP)

Polynum peut authentifier les utilisateurs via CAS et LDAP. Dans /etc/polynum/local_settings.py adapter les paramètres suivants :

(... extrait de /etc/polynum/local_settings.py ...)

CAS_SERVER_URL = "https://cas.univ.fr/" # CAS server URL
LDAP_URL = "ldaps://ldap.univ.fr"       # LDAP server URL
LDAP_BIND_DN = "uid=...,ou=...,dc=..."  # DN to authenticate to the LDAP server
LDAP_BIND_PASSWORD = "..."              # password
LDAP_USER_QUERY = "supannAliasLogin=%s" # query to retrieve user, %s is CAS username
LDAP_BASE = "dc=univ,dc=fr"             # base DN for the query

Vous pouvez modifier ces paramètres puis relancer le serveur de test pour vérifier que l'authentification fonctionne via CAS et LDAP.