# Prise en main et paramétrage de ScoDoc 9 Ce document suppose que le logiciel a été installé suivant la procédure décrite dans [GuideInstallDebian12](GuideInstallDebian12.md). ## Administration en ligne de commande Les opérations d'administration se résument à la création de départements, et la création d'utilisateurs "super admin", c'est à dire admin pour tous les départements. Le reste des paramétrages (création de comptes, de formations, import d'étudiants, etc) se fait à partir du logiciel (web). L'administration se fait dans un terminal connecté au serveur (en général via ssh), en tant qu'utilisateur `scodoc` (*et non* `root`). Se connecter et initialiser la session ainsi: ssh votre.serveur # si nécessaire su scodoc # idem, # ou tout autre moyen d'ouvrir un shell comme scodoc cd /opt/scodoc source venv/bin/activate Après quoi, vous pouvez utiliser les commandes décrites ci-dessous. *Attention: le lancement de chaque commande peut être assez long (quelques secondes) car toute l'application scodoc est initialisée à chaque fois.* ### Création d'un département flask create-dept DEPT où `DEPT` est l'acronyme du département, par exemple "RT". Ce département apparait immédiatement sur la page d'accueil. ### Suppression d'un département Opération très rarement nécessaire, proposée pour corriger une erreur immédiatement après la création, et pour les tests. flask delete-dept [-f] [--yes] DEPT -f, --force: ignore département non existant --yes : ne demande pas confirmation ### Création d'un utilisateur Cette opération s'effectue en général depuis le logiciel, via un formulaire ou un import Excel. Pour créer un utilisateur depuis le terminal, lancer: flask user-create LOGIN ROLE DEPT où `LOGIN` sera le pseudo de l'utilisateur (utilisé pour se connecter), et `ROLE` le rôle (`Ens`, `Secr`, `Admin`) dans le département `DEPT`. ### Création d'un super-administrateur Il s'agit d'un utilisateur ayant tous les droits, comme s'il était `Admin` dans tous les départements. flask user-create admin2 SuperAdmin @all où `admin2` est ici le pseudo du nouvel admin. ### Changement du mot de passe d'un utilisateur Cette opération peut s'effectuer via la page de gestion web des utilisateurs, mais il est parfois commode de le faire depuis la console: flask user-password LOGIN où `LOGIN` est le pseudo de l'utilisateur. Le mot de passe est demandé sur la ligne de commande. ### Création d'un nouveau rôle flask create-role role_name [permissions...] Exemple: création d'une rôle "Observateur" ayant juste la permission de "voir": flask create-role Observateur ScoView ### Liste des rôles flask list-roles ### Édition d'un rôle (ajout/retrait permissions) flask edit-role [-a permission] [-r permission] role_name Ajoute ou retire une permission. ### Ajout/retrait d'un rôle à un utilisateur flask user-role username [-d departement] [-a RoleAAjouter] [-r RoleARetirer] Exemples: flask user-role dupont affiche les rôles de l'utilisateur `dupont`. flask user-role dupont -d MMI -a Observateur donne le rôle `Observateur` (qui doit déjà exister) à l'utilisateur `dupont` dans le département `MMI`. Si le département n'est pas spécifié, le rôle est donné dans *tous* les départements (utile pour certains compte administrateurs ou utilisés en lecture par des clients de l'API). ### Migration des données de ScoDoc 7 Les données dans ScoDoc 9 ayant un format et une organisation très différents de ScoDoc 7, une étape de conversion (migration) est nécessaire. Elle est automatique mais prend du temps. Se reporter à [MigrationScoDoc7a9](MigrationScoDoc7a9.md) Ces commandes sont utilisées par le script de migration de ScoDoc 7 à ScoDoc 9. *Ne pas utiliser sauf si vous savez vraiment ce que vous faites.* #### Comptes utilisateurs Toujours migrer les comptes utilisateurs avant d'importer les départements. flask import-scodoc7-users #### Départements Pour migrer un seul département: flask import-scodoc7-dept DEPT DBNAME Exemple: flask import-scodoc7-dept InfoComm DBINFOCOMM ### Liste des commandes Flask/ScoDoc Dans l'encart ci-dessous, `app` désigne `flask`, comme dans les exemples donnés plus haut. ``` Usage: app [OPTIONS] COMMAND [ARGS]... Commands: anonymize-db Anonymise la base de nom indiqué (et non... clear-cache Clear ScoDoc cache This cache (currently... create-dept Create new departement create-role Create a new role delete-dept Delete existing departement delete-role Delete a role downgrade-assiduites-module Supprime les assiduites et/ou les... dumphelp Génère la page d'aide complète pour la doc. edit-role Add [-a] and/or remove [-r] a permission... entreprises-reset-db Remet a zéro les tables du module... gen-api-map Génère la carte des routes de l'API. generate-ens-calendars Génère les calendrier enseignants à... import-scodoc7-dept Import département ScoDoc 7: dept:... import-scodoc7-users Import users defined in ScoDoc7... init-test-database Initialise les objets en base pour les... list-depts If dept exists, print it, else nothing. list-roles List all defined roles localize-logo Make local to a dept a global logo (both... migrate-abs-to-assiduites Permet de migrer les absences vers le... migrate-scodoc7-dept-archives Post-migration: renomme les archives en... migrate-scodoc7-dept-logos Post-migration: renomme les logos en... photos-import-files Import des photos d'étudiants à partir... profile Start the application under the code... sco-db-init Initialize the database. scodoc-database print the database connexion string user-change-login Change user's login (user_name) user-create Create a new user user-db-clear Erase all users and roles from the... user-delete Try to delete this user. user-password Set (or change) user's password user-role Add or remove a role to the given user... Usage: app sco-db-init [OPTIONS] Initialize the database. Starts from an existing database and create all the necessary SQL tables and functions. Options: --erase / --no-erase --help Show this message and exit. Usage: app anonymize-db [OPTIONS] DATABASE Anonymise la base de nom indiqué (et non pas la base courante!) Options: --help Show this message and exit. Usage: app user-db-clear [OPTIONS] Erase all users and roles from the database ! Options: --help Show this message and exit. Usage: app user-create [OPTIONS] USERNAME ROLE DEPT Create a new user Options: -n, --nom TEXT -p, --prenom TEXT --help Show this message and exit. Usage: app user-delete [OPTIONS] USERNAME Try to delete this user. Fails if it's associated to some scodoc objects. Options: --help Show this message and exit. Usage: app user-password [OPTIONS] USERNAME Set (or change) user's password Options: --password TEXT --help Show this message and exit. Usage: app create-role [OPTIONS] ROLENAME [PERMISSIONS]... Create a new role Options: --help Show this message and exit. Usage: app list-roles [OPTIONS] List all defined roles Options: --help Show this message and exit. Usage: app edit-role [OPTIONS] ROLENAME Add [-a] and/or remove [-r] a permission to/from a role. In ScoDoc, permissions are not associated to users but to roles. Each user has a set of roles in each departement. Example: `flask edit-role -a EditApogee Ens` Options: -a, --add TEXT -r, --remove TEXT --help Show this message and exit. Usage: app delete-role [OPTIONS] ROLENAME Delete a role Options: --help Show this message and exit. Usage: app user-role [OPTIONS] USERNAME Add or remove a role to the given user in the given dept Options: -d, --dept TEXT -a, --add TEXT -r, --remove TEXT --help Show this message and exit. Usage: app user-change-login [OPTIONS] USER_NAME NEW_USER_NAME Change user's login (user_name) Options: --help Show this message and exit. Usage: app delete-dept [OPTIONS] DEPT Delete existing departement Options: -y, --yes -f, --force ignore non-existing departement --help Show this message and exit. Usage: app create-dept [OPTIONS] DEPT Create new departement Options: --help Show this message and exit. Usage: app list-depts [OPTIONS] [DEPTS]... If dept exists, print it, else nothing. Called without arguments, list all depts along with their ids. Options: --help Show this message and exit. Usage: app scodoc-database [OPTIONS] print the database connexion string Options: -n, --name show database name instead of connexion string (required for dropdb/createdb commands) --help Show this message and exit. Usage: app import-scodoc7-users [OPTIONS] Import users defined in ScoDoc7 postgresql database into ScoDoc 9 The old database SCOUSERS must be alive and readable by the current user. This script is typically run as unix user "scodoc". The original SCOUSERS database is left unmodified. Options: --help Show this message and exit. Usage: app import-scodoc7-dept [OPTIONS] DEPT DEPT_DB_NAME Import département ScoDoc 7: dept: InfoComm, dept_db_name: SCOINFOCOMM Options: --help Show this message and exit. Usage: app migrate-scodoc7-dept-archives [OPTIONS] [DEPT] Post-migration: renomme les archives en fonction des id de ScoDoc 9 Options: --help Show this message and exit. Usage: app migrate-scodoc7-dept-logos [OPTIONS] [DEPT] Post-migration: renomme les logos en fonction des id / dept de ScoDoc 9 Options: --help Show this message and exit. Usage: app localize-logo [OPTIONS] LOGO DEPT Make local to a dept a global logo (both logo and dept names are mandatory) Options: --help Show this message and exit. Usage: app photos-import-files [OPTIONS] FORMSEMESTRE_ID XLSFILE ZIPFILE Import des photos d'étudiants à partir d'une liste excel et d'un zip avec les images. Options: --help Show this message and exit. Usage: app clear-cache [OPTIONS] Clear ScoDoc cache This cache (currently Redis) is persistent between invocation and it may be necessary to clear it during upgrades, development or tests. Options: --sanitize / --no-sanitize --help Show this message and exit. Usage: app init-test-database [OPTIONS] Initialise les objets en base pour les tests API (à appliquer sur SCODOC_TEST ou SCODOC_DEV) Options: --help Show this message and exit. Usage: app entreprises-reset-db [OPTIONS] Remet a zéro les tables du module relations entreprises Options: --help Show this message and exit. Usage: app dumphelp [OPTIONS] Génère la page d'aide complète pour la doc. Options: --help Show this message and exit. Usage: app profile [OPTIONS] Start the application under the code profiler. Options: -h, --host TEXT The interface to bind to. -p, --port INTEGER The port to bind to. --length INTEGER Number of functions to include in the profiler report. --profile-dir TEXT Directory where profiler data files are saved. --help Show this message and exit. Usage: app migrate-abs-to-assiduites [OPTIONS] Permet de migrer les absences vers le nouveau module d'assiduités Options: -d, --dept TEXT Restreint la migration au dept sélectionné (ACRONYME) -m, --morning TEXT Spécifie l'heure de début des cours format `hh:mm` -n, --noon TEXT Spécifie l'heure de fin du matin format `hh:mm` -a, --afternoon TEXT Spécifie l'heure de début de l'après-midi format `hh:mm` valeur identique à --noon si non spécifié -e, --evening TEXT Spécifie l'heure de fin des cours format `hh:mm` --help Show this message and exit. Usage: app downgrade-assiduites-module [OPTIONS] Supprime les assiduites et/ou les justificatifs de tous les départements ou du département sélectionné Options: -d, --dept TEXT Restreint la suppression au dept sélectionné (ACRONYME) -a, --assiduites Supprime les assiduités de scodoc -j, --justificatifs Supprime les justificatifs de scodoc --help Show this message and exit. Usage: app generate-ens-calendars [OPTIONS] Génère les calendrier enseignants à partir des ics semestres Options: --help Show this message and exit. Usage: app gen-api-map [OPTIONS] Génère la carte des routes de l'API. Options: -e, --endpoint TEXT Endpoint à partir duquel générer la carte des routes --help Show this message and exit. ``` (*la liste ci-dessus est générée à l'aide de la commande* `flask dumphelp`). ### Changement des logos apparaissant sur les documents *Note: après migration, vos logos de ScoDoc 7 sont installés dans ScoDoc 9*. Les documents PDF (PV de jurys...) incluent les logos de l'établissement. Par défaut, ceux de l'IUT de Villetaneuse et de l'Université Paris 13 sont distribués. Pour les changer, passer par la page d'administration (lien **Configuration** sur la page d'accueil, en tant que super-admin), [voir la FAQ](/FAQ/#comment-changer-les-logos-sur-les-documents-pdf-pv). ## Utilisation via le Web * Connectez-vous au site: `https://votre.site.fr/` Vous allez voir la page d'accueil de ScoDoc, vous permettant de choisir le département où travailler. /!\ Surtout, évitez de travailler comme "admin" (super admin): prenez le temps de créer un utilisateur "chef de département !" dans chaque département, qui à son tour peut déléguer des droits. !!! note "Voir aussi" - [Guide installation](GuideInstallDebian12.md) - [Gestion des utilisateurs](AdminUsers.md) - [Rôles et permissions](ConfigPermissionsDept.md) - [Configuration des envois d'emails](ConfigEmail.md) - [Configuration des logos et fonds de documents](GestionLogos.md) - [Guide administrateur ScoDoc](GuideAdminSys.md) - [FAQ](FAQ.md) - [Contacts](Contact.md)