Go to file
2022-05-10 09:23:38 +02:00
db/gen first commit 2020-07-01 13:32:02 +02:00
dicos ajout variable activer_revprox si non existante 2021-12-08 09:50:15 +01:00
logrotate mise à niveau log 2020-10-19 11:06:14 +02:00
postservice first commit 2020-07-01 13:32:02 +02:00
pretemplate first commit 2020-07-01 13:32:02 +02:00
src/nineskeletor-1.0 Synchronisation scribe niveaux + eleves classes + profs classes (ref #34132) 2022-05-10 09:23:38 +02:00
sso/filtres revu filtre sso 2020-10-23 14:47:05 +02:00
tmpl first commit 2022-05-09 15:55:05 +02:00
apps.mk first commit 2020-07-01 13:32:02 +02:00
eole.mk first commit 2020-07-01 13:32:02 +02:00
Makefile first commit 2020-07-01 13:32:02 +02:00
README.md websocket 2020-11-23 13:08:51 +01:00

Renommer le squelette

Dupliquer nineskeletor et renommer en nineXXXX

Puis effectuer les changement suivants

  • Renommer db/nineskeletor-create-0.sql en db/nineXXXX-create-0.sql
  • Modifier db/nineXXXX-create-0.sql et changer le nom de la base de données en nineXXXX
  • Renommer dicos/90_nineskeletor.xml en dicos/90_nineXXXX.xml
  • Modifier dicos/nineXXXX-nineXXXX.xml et remplacer tout les nineskeletor en nineXXXX
  • Renommer logrotate/nineskeletor en logrotate/nineXXXX
  • Modifier logrotate/nineXXXX et remplacer tout les nineskeletor en nineXXXX
  • Renommer postservice/90-nineskeletor en postservice/90-nineXXXX
  • Modifier postservice/90-nineXXXX et remplacer tout les nineskeletor en nineXXXX
  • Renommer pretemplate/25-nineskeletor en pretemplate/25-nineXXXX
  • Modifier pretemplate/25-nineXXXX et remplacer tout les nineskeletor en nineXXXX
  • Renommer src/nineskeletor-1.0 en src/nineXXXX-1.0
  • Modifier src/nineXXXX-1.0/webpack.config.js et remplacer tout les nineskeletor en nineXXXX
  • Renommer sso/filtres/nineskeletor.ini en sso/filtres/nineXXXX.ini
  • Renommer sso/filtres/nineskeletor_apps.ini en sso/filtres/nineXXXX_apps.ini
  • Modifier sso/filtres/nineXXXX_apps.ini et remplacer tout les nineskeletor en nineXXXX
  • Renommer tmpl/nineskeletor.cron en tmpl/nineXXXX.cron
  • Modifier tmpl/nineXXXX.cron et remplacer tout les nineskeletor en nineXXXX
  • Renommer tmpl/nineskeletor-apache.conf en tmpl/nineXXXX-apache.conf
  • Modifier tmpl/nineXXXX-apache.conf et remplacer tout les nineskeletor en nineXXXX
  • Renommer tmpl/nineskeletor-db.yml en tmpl/nineXXXX-db.yml
  • Modifier tmpl/nineXXXX-db.yml et remplacer tout les nineskeletor en nineXXXX
  • Renommer tmpl/nineskeletor-env.local en tmpl/nineXXXX-env.local
  • Modifier tmpl/nineXXXX-env.local et remplacer tout les nineskeletor en nineXXXX
  • Renommer tmpl/nineskeletor-proxy.sh en tmpl/nineXXXX-proxy.sh
  • Modifier Makefile et remplacer tout les nineskeletor en nineXXXX
  • Remplacer logo public/uploads/logo/logo.png

Compilier les asset

  • apt-get install npm
  • si proxy
  • npm config set proxy "http://monproxyurl:monproxyport"
  • npm config set https-proxy "http://monproxyurl:monproxyport"
  • npm install -g yarn
  • yarn install
  • yarn encore dev
  • yarn encore prod

Description du squelette

Bundle

  • DebugBundle
  • DoctrineBundle
  • DoctrineMigrationsBundle
  • FOSCKEditorBundle
  • FOSRestBundle
  • FrameworkBundle
  • KnpSnappyBundle
  • MakerBundle
  • MonologBundle
  • NelmioApiDocBundle
  • OneupUploaderBundle
  • SecurityBundle
  • SensioFrameworkExtraBundle
  • SwiftmailerBundle
  • TetranzSelect2EntityBundle
  • TwigBundle
  • TwigExtraBundle
  • WebProfilerBundle
  • WebpackEncoreBundle
  • ramsey/uuid
  • cboden/ratchet

Asset

Tag app

Tag fullcalendar

Tag dropzone

Parameters

Provient du template env.local

  • appEnv = PROD
  • appSecret = valeur du fichier .key autogénéré au premier reconfigure
  • appWeburl = Valeur du dicos web_url
  • appAuth = Valeur du dicos = CAS / SQL
  • appAlias = En dur l'alias web
  • appName = Nom de l'application
  • appCron = En dur à true pour activer le système de cron
  • appMasteridentity = Valeur du dicos = Ninegate / LDAP / SQL
  • appMasterurl = Si appMasteridentity la valeur du dicos correspondant à l'url du Ninegate maître
  • appMasterkey = Si appMasteridentity la valeur du dicos correspondant à la clé d'API du Ninegate maître
  • databaseName = En dur le nom de la base
  • databaseUser = En dur le user de la base
  • databasePassword = Autogénéré par le reconfigure
  • databaseHost = Valeur du dicos pour le host de la base
  • appMailmethod = Valeur du dicos soit sendmail soit smtp. sendmail par défaut si exim est activé sur le serveur
  • appMailurl = Si smtp url calculé combinant smtphost smtpport smtpencryption smtpauthmode smtpuser smtppwd
  • appMailnoreply = Valeur du dicos du noreplay
  • ldapModel = si masteridentity à LDAP soit open soit scribe
  • ldapHost = Valeur dicos Host LDAP
  • ldapPort = Valeur dicos Port LDAP
  • ldapUser = Valeur dicos User LDAP
  • ldapPassword = Valeur dicos Password LDAP
  • ldapBasedn = Valeur dicos Basedn LDAP
  • ldapUsername = si Scribe en dur sinon valeur du dicos champs annuaire utilisé comme username
  • ldapFirstname = si Scribe en dur sinon valeur du dicos champs annuaire utilisé comme firstname
  • ldapLastname = si Scribe en dur sinon valeur du dicos champs annuaire utilisé comme lastname
  • ldapEmail = si Scribe en dur sinon valeur du dicos champs annuaire utilisé comme email
  • ldapFiltergroup = si Scribe en dur sinon valeur du dicos filtre ldap de recherche des groupes
  • ldapFilteruser = si Scribe en dur sinon valeur du dicos filtre ldap des groupes
  • ldapAdmins = Liste des admins obligatoire = Admin + valeur dicos
  • casHost = Valeur dicos du host SSO
  • casPort = Valeur dicos du Porst SSO
  • casPath = Valeur dicos du Path SSO
  • casUsername = Valeur en dur correspondant au filtre sso du username
  • casEmail = Valeur en dur correspondant au filtre sso du email
  • casLastname = Valeur en dur correspondant au filtre sso du lastname
  • casFirstname = Valeur en dur correspondant au filtre sso du fistname
  • proxyUse = Valeur dicos utiliser oui/non un proxy
  • proxyHost = Si oui valeurs du dicos du host proxy
  • proxyPort = Si oui valeurs du dicos du post proxy
  • sondeUse = Valeur dicos utiliser oui/non une sonde statistique
  • sondeUrl = Si oui url de la sonde statistique

Sécurité

4 rôles possibles

  • ROLE_ADMIN
  • ROLE_MODO
  • ROLE_MASTER
  • ROLE_USER

4 routes protégés

  • /user = accèssible à ROLE_USER / ROLE_MASTER / ROLE_MODO / ROLE_ADMIN
  • /master = accèssible à ROLE_MASTER / ROLE_MODO / ROLE_ADMIN
  • /modo = = accèssible à ROLE_MODO / ROLE_ADMIN
  • /admin = = accèssible à ROLE_ADMIN

Job

Nineskeletor intègre un système de job.
Ce système va exécuter des commandes symfony à interval régulier.
De base les jobs suivants sont livrés :

  • app:sendMail = toutes les minutes = Execution du spool de mail en attente
  • app:dumpBdd = toutes les nuits à 2h00 = Dump de la base
  • app:purgeFile = toutes les nuits à 3h00 = Suppresion des fichiers obsolètes
  • app:synchroUsers = toutes les nuites à 3h00 = Synchronisation des comptes utilisateurs soit via LDAP soit via Ninegate

Pour ajouter un job à la listes, modifier la commande app:initCron qui sera exécutée à chaque reconfigure

Service

  • app.password.encoder = encodage password sur la methode que l'annuaire
  • app.upload.listener = action à réaliser sur upload via oneupload
  • app.upload.samename = permet d'uploader un fichier et préserver le nom de fichier via oneupload
  • app.ldap.service = fonction ldap
  • app.sendmail.transport = executuion du spool de mail via sendmail
  • app.mail.service = fonction envoit de mail
  • app.twig.extension = extention twig

Twig

Twig Constantes

Variables globales twig reprises des parametres symfony

  • appAlias
  • appAuth
  • appName
  • appCron
  • appMasteridentity
  • sondeUse
  • sondeUrl

Twig Extention

App\Twig\AppExtension

  • filtre = urlAvatar à placer avec user.avatar afin de définir l'url complète de l'avatar du user

Twig Template de base

templates/base.html.twig

Deux paramétres non obligatoire

  • useheader = permet d'afficher ou non la bannière dans la page = false par défaut
  • usesidebar = permet d'afficher oun non la sidebar dans la page = false par défaut
  • usemonocolor = afin de placer uniquement la couleur dark sur la page Block
  • block encorelinktags = pour déclarer des encore_link_tags spécifique à la page (encorelinktags app est intégré de base)
  • block localstyle = pour déclarer des propriétés css spécifique à page (Include/style.css.twig est intégré de base)
  • block body = le corps de la page
  • block encorescripttags pour déclarer des encore_script_tags spécifique à la page (encorescripttags app est intégré de base)
  • block localjavascript = pour déclarer du js spécifique à la page (Include/javascript.js.twig est intégré de base)

templates/Include/style.css.twig

Style de l'applicaiton en surcouche de bootstrap

templates/Include/sidebar.html.twig

La sidebar de l'application quand elle est affichée

templates/Include/javascript.js.twig

Librairie js de l'application

  • object a et button s'ils ont un attribut data-method et data_confirm proposeront une confirmation à l'utilisateur avant de poursuivre l'action
  • ModalLoad(idmodal,titre,url) = permet d'afficher en modal l'url indiqué en parametre. Par défaut on dispose de la modal #mymodal

templates/Form/fields.htms.twig

Mise en forme de champs de formulaire