Utilisation pour votre projet
Prérequis
Pour que la partie CAS puisse fonctionner, vous devez ajouter la ligne suivante dans votre fichier /etc/hosts:
127.0.0.1 cas
Évidemment, pour la partie développement, vous devez avoir un système de container qui fonctionne :) En bref, 2 choix possibles: podman ou docker.
podman
Sur un système Ubuntu, il vous suffira d'installer les paquets suivants:
sudo apt install podman podman-compose golang-github-containernetworking-plugin-dnsname
docker
Déployer oto
On récupère la dernière version disponible:
git clone https://gitlab.insa-rouen.fr/bonnegent/oto.git
À présent nous avons un dossier oto. On va utiliser le script deploy.sh pour déployer les fichiers nécessaires dans votre projet. Ce script prend en paramètre un dossier où installer oto. Pour l'exemple, on va considérer un dossier cible ../exemple/.
cd oto
./deploy.sh ../exemple/
À partir de maintenant, nous n'avons plus besoin du dossier oto, On restera dans le dossier ../exemple/.
Configuration
Dans pyproject.toml (du dossier exemple), il faut adapter les informations, notamment name, version et description:
[tool.poetry]
name = "votre_nom_application"
version = "23.3.31"
description = ""
Il faudra forcer la recréation du fichier .env:
./oto.sh env
Ainsi que site_name dans le fichier: mkdocs.yml.
Par défaut, oto inclu une application core.
Si vous n'utilisez pas le projet core par défaut, ou que vous voulez mettre en place une autre application, il faut créer un nouveau projet avec ces commandes (cependant je vous recommande de rester avec l'application par défaut):
./oto.sh build
podman-compose run web python manage.py startapp polls
sudo chown -R $USERNAME polls
Construction des containers
Une fois la configuration initiale effectuée, on peut créer les images pour nos containers:
./oto.sh build
./oto.sh migration
sudo chown $USERNAME db.sqlite3
Configuration Django
Il est préférable de ne pas modifier le fichier de configuration générale (conf/settings.py), mais plutôt de créer un fichier de configuration locale (conf/settings.py). Voici un exemple de ce qu'il pourrait contenir:
SECRET_KEY = '...'
DEBUG = False
ALLOWED_HOSTS = []
...
Droits d'admin
Par défaut, tout utilisateur doit passer par une authentification CAS. Il faut d'abord se connecter avec un utilisateur, cela va forcer sa création dans la base de données locale. Pour cela, il faut démarrer les containers:
./oto.sh start
Se connecter à l'interface web (http://localhost:8000/) et s'authentifier. Vous trouverez les informations sur les comptes préconfigurer ici: Architecture
Ensuite on va pouvoir lui donner les droits d'administrations:
./oto.sh sh
User.objects.filter(id=User.objects.first().id).update(is_staff=True, is_superuser=True)
exit
Si nécessaire, vous pouvez créer un compte administrateur avec la commande suivante:
docker-compose run web python manage.py createsuperuser
Chargement de données initiales
Si vous avez un export json des données initiales, vous pouvez le mettre dans le fichier PROJET/fixtures/initial_data.json et le charger avec la commande:
./oto.sh initial