Configuration
Variables d'environnement, permissions, entrée d'admin, notifications, tâche planifiée et limite de débit du module Projets.
Variables d'environnement
| Variable | Défaut | Rôle |
|---|---|---|
FRAZA_MODULE_PROJECTS | Active le module (true / false). Requise. | |
FRAZA_MODULE_PROJECTS_VOTE | user | Qui peut voter : user (un compte client), anyone (sans compte, un vote par navigateur) ou off. Sur un site sans comptes clients, user vaut off. |
FRAZA_MODULE_PROJECTS_PUBLIC_PATH | /za/projects | L'adresse des feuilles de route quand le site les construit dans son design, par exemple /feuille-de-route. Les liens des courriels y mènent, et les pages /za/projects y redirigent. Voir Intégrer au site. |
FRAZA_MODULE_PROJECTS_CRON | true | Enregistre la tâche projects-images. |
Une valeur invalide reprend la valeur par défaut. Pour FRAZA_MODULE_PROJECTS_PUBLIC_PATH, un chemin valide commence par / et ne contient que des minuscules, des chiffres, -, _ et /, sans / final.
Les projets n'ont pas de variable : l'équipe les crée, les archive et choisit celui qui est mis en avant dans l'admin.
Le lien de désabonnement des courriels est signé par une clé tirée de FRAZA_ENCRYPTION_KEY, la variable du core. Sans elle, les courriels partent sans ce lien, et un avertissement est écrit au journal une fois. Voir Se désabonner.
Suivre une fiche demande un compte client, quel que soit FRAZA_MODULE_PROJECTS_VOTE : avec anyone ou off, le bouton Suivre reste offert aux comptes clients. Sur un site sans comptes clients (sans FRAZA_CLIENTS=true), personne ne suit une fiche, et la page du module n'affiche pas le bouton.
Côté public, seul un compte client vote et suit en son nom. Un compte d'équipe connecté à l'admin y est un visiteur : en mode anyone, il vote par son navigateur, comme tout visiteur. Voir Le site, l'espace client et l'admin.
Choisir qui vote
| Valeur | Qui vote | À savoir |
|---|---|---|
user | Un compte client connecté, un vote par compte. | Les votes sont fiables, et les votants reçoivent les courriels « C'est prévu » et « C'est fait ». Sans compte client, le bouton mène à la connexion, puis revient sur la page. Sur un site sans comptes clients, personne ne pourrait se connecter pour voter : le vote se lit comme off. |
anyone | Tout le monde. Un compte client vote par son compte, toute autre personne par son navigateur, compte d'équipe compris. | Le navigateur reçoit un cookie fraza_projects_voter, posé au premier vote. La base n'en garde que l'empreinte SHA-256. Vider ses cookies donne un second vote : la limite projects_vote_item borne ce que ça rapporte, à dix votes par fiche et par adresse réseau chaque jour. Un vote sans compte ne reçoit aucun courriel. |
off | Personne. | Les compteurs restent affichés. |
Permissions
| Permission | Donne |
|---|---|
projects.view | Lire les projets, leurs fiches, leurs mises à jour, leur historique, les comptes qui ont voté, les colonnes, les étiquettes, les jalons et leurs notes de version. Ouvrir Mes fiches. Pouvoir être assigné à une fiche. |
projects.manage | Créer, déplacer, placer dans sa colonne, modifier, fusionner et supprimer une fiche ; l'assigner ; retirer le vote d'un compte ; publier, modifier et supprimer une mise à jour ; envoyer une image de description ; créer, modifier, fermer et supprimer un jalon. |
projects.options | Créer un projet, modifier ses réglages, le mettre en avant, l'archiver, le supprimer ; gérer ses colonnes et ses étiquettes. |
fraza-db init les attribue au rôle admin. Pour une personne qui fait avancer les fiches sans toucher aux réglages des projets, créer un rôle avec projects.view et projects.manage. Seul un compte qui a projects.view se propose comme responsable d'une fiche. Voir Permissions et rôles.
Entrée d'admin
La section « Projets » est rangée dans le groupe des outils, avec deux entrées, toutes deux avec projects.view :
| Entrée | Adresse |
|---|---|
| Projets | /admin/projects, la liste des projets. Chaque projet s'ouvre sous /admin/projects/<projet>. |
| Mes fiches | /admin/projects/mes-fiches, les fiches ouvertes assignées à la personne connectée. |
La page d'une fiche, /admin/projects/<projet>/fiches/<id>, se range sous la liste des projets dans le fil d'Ariane. Aucun projet ne prend le slug mes-fiches.
Notifications
Le module écrit dans la cloche de l'admin, par les notifications du core. Voir Notifications.
| Type | Quand | À qui |
|---|---|---|
projects.assigned | Une personne est assignée à une fiche : « Fiche assignée : Export des factures ». | La personne assignée, sauf si elle s'est assignée elle-même. |
projects.moved | Une fiche change de colonne : « Export des factures : En cours ». | Ses responsables, sauf celui qui l'a déplacée. |
Chaque notification mène à la page de la fiche dans l'admin. Un échec d'envoi est journalisé, et le changement reste enregistré.
Tâche planifiée
projects-images tourne chaque heure, verrouillée entre les instances. Elle repère les images de description inutilisées depuis plus d'une journée, les met dans la file de suppression, puis retire du stockage ce que la file contient. Sans stockage configuré, elle ne fait rien. Comme toute tâche du core, elle demande un serveur qui reste allumé. Voir Planifier des tâches.
Avec FRAZA_MODULE_PROJECTS_CRON=false, les images inutilisées restent dans le stockage.
Limite de débit
| Préréglage | Sur | Valeur |
|---|---|---|
projects_vote | Un vote, un retrait de vote | 60 par adresse toutes les dix minutes, puis 30 minutes de blocage. |
projects_vote_item | Un vote sans compte, en mode anyone, sur une fiche | 10 par fiche et par adresse chaque jour, puis un jour de blocage. Au-delà : 429, code vote_limit, « Trop de votes pour cette fiche depuis ce réseau aujourd'hui. » |
projects_follow | Suivre une fiche, ne plus la suivre | 60 par compte client toutes les dix minutes, puis 30 minutes de blocage. |
projects_unsubscribe | Le désabonnement d'un lien de courriel | 20 par adresse réseau chaque heure, même avec une session, puis une heure de blocage. Un lien est signé : le budget ne borne que les écritures. |
projects_feed | Le journal en JSON et son flux RSS | 120 par adresse réseau toutes les dix minutes, puis dix minutes de blocage. |
Les autres routes publiques, une colonne entière comprise, suivent le budget api du core.