Installation et package

apache -flask partie 1

sudo apt install apache2
sudo apt install python3-venv
sudo mkdir /var/www/.venv
sudo chown yves /var/www/.venv

python3 -m venv /var/www/.venv
source /var/www/.venv/bin/activate

#recuperation de la base de l'application
nom = "serveur"
sudo mkdir /var/www/$nom
sudo chown yves /var/www/$nom

cp -r install/libperso /var/www/$nom/
mkdir /var/www/$nom/templates
mkdir /var/www/$nom/static
cp install/templates/index.html
cp install/templates/page_menu_gauche.html
cp install/templates/barre_menu_2.html
admin.html et change.html
cp install/static/w3.css
cp -r install/static/fontawesome-free-6.4.2-web
cp -r install/static/font-awesome.min.css
cp -r install/static/style.css
scp /var/www/test/install/templates/barre_menu_1.html bureau:/var/www/serveur/templates/

Commandes pip

#pour lister les dépnedances installées
pip freeze

#pour exporter la liste
pip freeze > requirement.txt

#pour importer la liste
pip install -r requirement.txt

#pip install wheel (??)
#pour l'installation du paquet mysql-connector

#pour flask
pip install flask

#ensuite
# surtout pas celui la : pip install mysql-connector
pip install mysql-connector-python
pip install python-cas

commandes sql

Les données sant dans le fichier /etc/serveur/conf.py

CREATE DATABASE IF NOT EXISTS donnees;
USE donnees;
source /opt/sql/tables.sql;
CREATE USER 'sqluser'@'localhost' IDENTIFIED BY 'sqluser';
GRANT ALL PRIVILEGES ON donnees.* TO 'lecteur'@'localhost';
FLUSH PRIVILEGES;

tables utilisées pour la base

base : donnees

tables :

  • bebel0810005R-ent_temp pour les utilisateurs pédagogiques

  • bebel0810005R-profs pour récupérer la liste des classes et groupes d’un prof

  • bebel-0810005R-groupes-eleves pour récupérer les groupes auxquels appartiennent les élèves (un groupe par ligne ) contient également les groupes des profs

les routes dans l’appli de base

identification :
  • la route login : - vérifie si username est dans session , si oui retourne dirige vers /secure sinon - cherche la présence d’un ticket stocke l’uid dans username rediriger vers secure

  • la route secure : - vérifie si admin - charge les groupes dans session donnees - charge les menus à partir du login et des groupes - cherche ressource dans session, si ressource est différent de quitter

    • si ressource est égal à resaece -> retourne la route activites_bp.index

    • sinon retourne la route session[“ressource”]+”_bp.index”

    • sinon retourne le template page_menu_gauche avec les données

  • cas retourne un username

  • on cherche les groupes dans les tables

/profile accessible en méthode get :
  • si connecté retourne sur secure

  • sinon propose un lien pour se connecter

/accueil/<ressource> ou ressource est un blueprint
  • protection statique par vérification de la ressource dans une liste

  • si autorisé, chargé dans la variable de session ressource puis renvoie secure

  • sinon renvoie sur login

/logout nettoie la session et déconnecte le cas laiise sur l’accueil