Hiboo issueshttps://forge.tedomum.net/acides/hiboo/-/issues2024-01-22T17:24:19Zhttps://forge.tedomum.net/acides/hiboo/-/issues/131Bouton "Se souvenir de moi" ne fonctionne pas avec 2FA2024-01-22T17:24:19ZJae Lo PrestiBouton "Se souvenir de moi" ne fonctionne pas avec 2FALe bouton "Se souvenir de moi" n'a aucun effet quand 2FA est activé.
Pour reproduire:
- Aller `forge.tedomum.net` ce qui me redirige vers `auth.tedomum.net`
- Se connecter en cliquant sur "Se souvenir de moi" et entrer le code 2FA
- Acc...Le bouton "Se souvenir de moi" n'a aucun effet quand 2FA est activé.
Pour reproduire:
- Aller `forge.tedomum.net` ce qui me redirige vers `auth.tedomum.net`
- Se connecter en cliquant sur "Se souvenir de moi" et entrer le code 2FA
- Accéder a la forge
- Fermer son navigateur web
- Attendre une heure ou deux
- Aller sur `forge.tedomum.net` ou `auth.tedomum.net`
- Rien n'est connecté
Peut aussi être reproduit avec un simple login sur `auth.tedomum.net`.
Notes:
Quand j'ai fait l'implémentation originale du "Se souvenir de moi", le bouton fonctionnait bien mais je n'utilisait pas de 2FA (pas encore implémenté à l'époque).
Testé sur Firefox 121.0.1 sans add-ons affectant les cookies ou autres stockages.1.0.0f00wlf00wlhttps://forge.tedomum.net/acides/hiboo/-/issues/129Veille des dépendances2024-01-21T12:07:42Zf00wlVeille des dépendancesPour nous faciliter et formaliser le suivit des dépendances qui peut être fastidieux mais crucial, je propose d'utiliser https://gitlab.com/renovate-bot/renovate-runner/. C'est un peu une usine à gaze mais c'est très efficace. Peut-être ...Pour nous faciliter et formaliser le suivit des dépendances qui peut être fastidieux mais crucial, je propose d'utiliser https://gitlab.com/renovate-bot/renovate-runner/. C'est un peu une usine à gaze mais c'est très efficace. Peut-être ça pourra servir pour les autres projet de tedomum aussi.
_Il est aussi possible de faire la veille juste avec un protocole claire entre les devs._backloghttps://forge.tedomum.net/acides/hiboo/-/issues/128Protocole de release2024-01-21T12:05:06Zf00wlProtocole de releaseÀ partir de %"0.1.1 (reboot)" hiboo sera officiellement release, avec la norme [semver](https://semver.org/). Il faut donc décider d'une façon de le faire bien. Soit à la main avec un protocole claire. Soit automatiquement avec un outils...À partir de %"0.1.1 (reboot)" hiboo sera officiellement release, avec la norme [semver](https://semver.org/). Il faut donc décider d'une façon de le faire bien. Soit à la main avec un protocole claire. Soit automatiquement avec un outils comme https://github.com/semantic-release/semantic-release.0.1.1 (reboot)https://forge.tedomum.net/acides/hiboo/-/issues/123Suppoter l'authentification Webauthn2024-01-20T19:48:54Zkaiyoupierre@jaury.euSuppoter l'authentification WebauthnEn complément de l'authentification 2FA, Webauthn est de plus en plus populaire, en particulier sur mobile. Le supporter en tant qu'authentification principale serait un plus.
Cela nécessitera probablement de revoir l'architecture d'aut...En complément de l'authentification 2FA, Webauthn est de plus en plus populaire, en particulier sur mobile. Le supporter en tant qu'authentification principale serait un plus.
Cela nécessitera probablement de revoir l'architecture d'authentification, bien que déjà assez souple sur le principe.backloghttps://forge.tedomum.net/acides/hiboo/-/issues/122Fournir des refresh tokens OIDC2024-01-20T19:47:40Zkaiyoupierre@jaury.euFournir des refresh tokens OIDCOIDC et OAuth2 supportent le concept de refresh token pour disposer d'un access token de courte durée accédant au userinfo endpoint, et d'une capacité à le refresh. C'est en particulier employé par les applications compatibles OAuth2 qui...OIDC et OAuth2 supportent le concept de refresh token pour disposer d'un access token de courte durée accédant au userinfo endpoint, et d'une capacité à le refresh. C'est en particulier employé par les applications compatibles OAuth2 qui ne considèrent pas l'id token, ou doivent requêter le profil régulièrement.
Exemple : kubelogin pour l'authentification Kubernetes insère un access token frais dans les requêtes, obtenu depuis un refresh token.1.0.0https://forge.tedomum.net/acides/hiboo/-/issues/118Mettre à jour les images docker2024-01-21T12:06:14Zf00wlMettre à jour les images docker- [ ] `python:3`
- [ ] `node:buster` :arrow_right: `node:bookwrm`
- [x] `python:3-slim-bulleseye` :arrow_right: `python:3-slim-bookworm`- [ ] `python:3`
- [ ] `node:buster` :arrow_right: `node:bookwrm`
- [x] `python:3-slim-bulleseye` :arrow_right: `python:3-slim-bookworm`0.1.1 (reboot)kaiyoupierre@jaury.eukaiyoupierre@jaury.euhttps://forge.tedomum.net/acides/hiboo/-/issues/111Remplacer jwcrypto par Authlib2024-02-18T23:06:08Zf00wlRemplacer jwcrypto par AuthlibLa librairie `jwcrypto` est utilisée une seule fois pour le [captcha](hiboo/captcha/fields.py) pour générer ou vérifier un JWT. On pourrait faire la même chose avec `Authlib` qui est déjà utilisée et enlever `jwcrypto` des dépendances.La librairie `jwcrypto` est utilisée une seule fois pour le [captcha](hiboo/captcha/fields.py) pour générer ou vérifier un JWT. On pourrait faire la même chose avec `Authlib` qui est déjà utilisée et enlever `jwcrypto` des dépendances.0.1.1 (reboot)f00wlf00wlhttps://forge.tedomum.net/acides/hiboo/-/issues/105feature request: groupes2024-01-20T19:33:17Zornanovitchfeature request: groupesDans la perspective de migrer la quasi totalité de nos users sur Hiboo, il nous serait très bénéfique d'avoir des groupes auxquels les assigner (avec une table `group` et une relation `many-to-many`). Il y aurait plusieurs intérêts à cel...Dans la perspective de migrer la quasi totalité de nos users sur Hiboo, il nous serait très bénéfique d'avoir des groupes auxquels les assigner (avec une table `group` et une relation `many-to-many`). Il y aurait plusieurs intérêts à cela :
1. On pourrait l'étendre à l'avenir pour passer des groupes en claims. Parmi les applications qui le supportent : Nextcloud SAML (même si ça a l'air buggy) mais surtout OIDC (faudrait peut-être y passer à l'avenir), Gitlab SAML (en premium pour l'instant...), mais sans doute d'autres, je n'ai pas regardé toutes les applications.
1. Ça peut être très pratique pour « ranger » les users en fonction de leur provenance, catégorie ou autre critère pour une petite association hébergeuse type CHATON qui souhaite contrôler ses inscriptions. Par exemple, chez nous on a pas mal d'associations et de collectifs à qui on ne donne pas accès aux mêmes applications, et parfois on ne sait plus si tel username correspond à un·e membre de tel asso ou de tel collectif. (D'ailleurs, on pourrait créer des tokens d'invitation qui assignent automatiquement les users qui s'inscrivent à un groupe précis.)
1. **Surtout**, et en prolongement du point qui précède, on pourrait ultérieurement développer un système assez simple de permissions dans Hiboo, qui utiliserait les groupes et favoriserait notamment le développement de la modération/de l'autogestion. Exemples :
* pour l'application `Gitlab`, on permet uniquement aux membres du groupe `Cambouis` de créer un profil (dans la limite de la politique de profil définie).
* pour l'application `Synapse`, on donne au groupe `Mod-synapse` la permission de voir et gérer les profils
* pour l'application `Nextcloud`, on permet uniquement aux membres du groupe `collectif` de partager un profil (quand la feature sera là)
* ...
Ça nous parait ouvrir vachement de possibilités assez intuitives et transversales pour un outil de gestion des authentifications en tout cas.backloghttps://forge.tedomum.net/acides/hiboo/-/issues/72[Docs] Migrating from SQLite to PostgreSQL2024-01-20T19:32:04Zf00wl[Docs] Migrating from SQLite to PostgreSQL### Migrate from SQLite to PostgreSQL with [pgloader](https://pgloader.readthedocs.io/en/latest/ref/sqlite.html#sqlite-database-source-specification-from)
SQLite is the default database engine, mainly for development purpose but it shou...### Migrate from SQLite to PostgreSQL with [pgloader](https://pgloader.readthedocs.io/en/latest/ref/sqlite.html#sqlite-database-source-specification-from)
SQLite is the default database engine, mainly for development purpose but it should be enough for small instance. If you want to migrate to PostgreSQL afterward you can follow theses steps (Debian based):
1. Install and configure PostgreSQL, create a new database (ex... `hiboo`) with the right owner if you don't use `postgres`: [help](https://linuxize.com/post/how-to-install-postgresql-on-debian-10/)
2. install pgloader: https://pgloader.readthedocs.io
``` shell
apt install pgloader
```
3. by default pgloader convert `datetime` to `timestamptz` and it raise error on hiboo so create pgloader command-file `/tmp/pgloader-hiboo.conf`:
``` sql
LOAD database
FROM sqlite:///tmp/hiboo.db
INTO postgresql:///hiboo
CAST type datetime to timestamp using sqlite-timestamp-to-timestamp;
```
4. shutdown hiboo to avoid data loss during migration
``` shell
service hiboo stop # if you created systemd file
```
5. backup your sqlite file
``` shell
cp hiboo.db hiboo.db.bak
```
6. make sure `postgres` user can read the SQlite db and the pgloader config file:
``` shell
chown postgres:postgres /tmp/hiboo.db
chown postgres:postgres /tmp/pgloader-hiboo.conf
```
7. import
``` shell
sudo -u postgresql pgloader /tmp/pgloader-hiboo.conf
```
8. If you created specific user you will probably need to set the right owner:
``` shell
su - postgres psql <dbname>
```
then inside psql:
``` sql
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO <username>;
```
`<CTRL-D>` to exit
9. don't forget to setup SQLAlchemy with the right URI
``` shell
SQLALCHEMY_DATABASE_URI='postgres://<dbuser>:<password>@localhost:5432/<dbname>'
```
10. Restart hiboo, check if it works and clean the mess!
_If it's fail restore the SQLite backup file and database URI configuration._backloghttps://forge.tedomum.net/acides/hiboo/-/issues/68Afficher les caractères acceptés pour le username lors de la création d'un pr...2024-01-20T19:28:36ZAngedestenebresAfficher les caractères acceptés pour le username lors de la création d'un profilActuellement rien ne l'indique et il faudrait améliorer ce point.Actuellement rien ne l'indique et il faudrait améliorer ce point.1.0.0https://forge.tedomum.net/acides/hiboo/-/issues/62Changer la phrase annonçant la suppression d'un profil à venir2024-01-20T19:07:34ZAngedestenebresChanger la phrase annonçant la suppression d'un profil à venirActuellement, nous avons une phrase ressemblant à cela :
`%adminname did delete the profile %username on %servicename`
vu que la suppression n'est pas immédiate, je suggère de changer celle-ci pour indiquer qu'une demande est en cours...Actuellement, nous avons une phrase ressemblant à cela :
`%adminname did delete the profile %username on %servicename`
vu que la suppression n'est pas immédiate, je suggère de changer celle-ci pour indiquer qu'une demande est en cours et que la suppression sera effective à tel moment. Exemple :
`%adminname requested the deletion of the profile %username on %servicename for the following date: YYYY-MM-DD HH:MM`1.0.0https://forge.tedomum.net/acides/hiboo/-/issues/50Notification pour les admins quand il y a des comptes en attente de validation2024-03-10T20:14:40ZAngedestenebresNotification pour les admins quand il y a des comptes en attente de validationActuellement, nous ne pensons clairement pas à aller vérifier les demandes. Il faudrait mettre quelque chose à place pour y penser.
Plusieurs possibilités :
* [ ] Mail de notification
* [ ] Popup à la connexion (une fois les autres enl...Actuellement, nous ne pensons clairement pas à aller vérifier les demandes. Il faudrait mettre quelque chose à place pour y penser.
Plusieurs possibilités :
* [ ] Mail de notification
* [ ] Popup à la connexion (une fois les autres enlevés)
* [x] Une icône avec un chiffre à côté du menu, ex :
![Capture_d_écran_2020-05-29_17-52-02](/uploads/1d966a64d0933869af68e893f08190c3/Capture_d_écran_2020-05-29_17-52-02.png)
A noter qu'il est possible d'en choisir plusieurs :)1.0.0https://forge.tedomum.net/acides/hiboo/-/issues/49Supporter le partage de profil2024-01-20T19:54:21Zkaiyoupierre@jaury.euSupporter le partage de profilPour supporter le partage de profil, il faut qu'on ajoute déjà la notion de partage, dans une table séparée. Le user renseigné dans le profil reste le propriétaire du profil, et les autres y ont simplement accès pour s'authentifier, par ...Pour supporter le partage de profil, il faut qu'on ajoute déjà la notion de partage, dans une table séparée. Le user renseigné dans le profil reste le propriétaire du profil, et les autres y ont simplement accès pour s'authentifier, par le modifier.
Suite à des discussions sur matrix et à une proposition de @f00wl, il a été décidé d'utiliser un JWT, cette fonction est incluse dans la librairie authlib, déjà utilisée dans hiboo.
Sur la page de liste de profils, on peut afficher un second tableau avec les profils partagés, en simple list lecture seule. Et sur la page de choix de profil on peut récupérer les profils partagés en plus et remplir enfin l'information sur le partage qui est juste une phrase statique actuellement.1.0.0https://forge.tedomum.net/acides/hiboo/-/issues/20Ajouter une option "mot de passe perdu"2024-03-08T23:54:36ZAngedestenebresAjouter une option "mot de passe perdu"Il n'est actuellement pas possible pour l'utilisateurice d'être autonome dans la récupération de son mot de passe. Or, il lui est possible de renseigner une adresse mail dans ses informations de contact. Il semble pour le moins dommage q...Il n'est actuellement pas possible pour l'utilisateurice d'être autonome dans la récupération de son mot de passe. Or, il lui est possible de renseigner une adresse mail dans ses informations de contact. Il semble pour le moins dommage que cette adresse mail ne puisse pas être demandée à l'utilisateurice, en plus de son username, en cas de perte de mot de passe.
Cette feature pourrait être accompagnée d'un bandeau d'avertissement, de type :
> Vous n'avez pas renseigné d'adresse mail, ceci peut être nécessaire pour recevoir des notifications des services ou pour réinitialiser votre mot de passe.
Il est vrai que cela incite les gens à mettre leur adresse Gmail, mais quoiqu'il arrive, à l'heure actuelle si un·e utilisateurice utilise Gmail et perd son mot de passe, l'admin est bien obligé·e de lui envoyer le lien de réinitialisation sur cette adresse. Cela ne fait que déplacer le problème, au détriment de l'autonomie de l'utilisateurice (que Hiboo n'a pas vocation à sensibiliser même si on adorerait).
<details><summary>issue originale ouverte il y a 4 ans</summary>
Tout est dans le titre.
Aujourd'hui, cette option manque et si on a perdu son mot de passe, on est alors bien embêté :sweat_smile:
</details>1.0.0https://forge.tedomum.net/acides/hiboo/-/issues/15Supporter l'authentification par un tiers OIDC2024-01-20T18:16:15Zkaiyoupierre@jaury.euSupporter l'authentification par un tiers OIDCbackloghttps://forge.tedomum.net/acides/hiboo/-/issues/13Modération : ajout de note sur un profil2024-01-20T18:14:46Zkaiyoupierre@jaury.euModération : ajout de note sur un profilbackloghttps://forge.tedomum.net/acides/hiboo/-/issues/9Page d'édition de profil utilisateur2024-01-21T12:11:19Zkaiyoupierre@jaury.euPage d'édition de profil utilisateur0.2.0ornanovitchornanovitchhttps://forge.tedomum.net/acides/hiboo/-/issues/134Uniformiser les routes2024-03-24T14:34:32ZornanovitchUniformiser les routesCes derniers temps, divers sujets à traiter (authentification, dialogue de confirmation, vue de modération...) nous ont conduit avec @f00wl à questionner un certain nombre de routes, qui ne nous semblaient pas toujours cohérentes ou prat...Ces derniers temps, divers sujets à traiter (authentification, dialogue de confirmation, vue de modération...) nous ont conduit avec @f00wl à questionner un certain nombre de routes, qui ne nous semblaient pas toujours cohérentes ou pratiques à manipuler. En dézoomant un peu, j'ai remarqué qu'il n'y avait pas de convention de routage unique, et que plusieurs logiques se sont chevauchées avec le temps. Parmi les « problèmes » qu'on peut identifier dans l'état actuel :
- les collections sont au singulier (`profile`, `user`, `service`)
- les `uuid` sont très souvent en bout de route, mais pas systématiquement, là où une syntaxe `<collection>/<uuid>/<...>` (où est-on / sur quoi lit-on ou fait-on quelque chose) serait envisageable
Une unification systématique avec des conventions de routage ne répondrait pas seulement à un enjeu esthétique, mais permettrait de se rapprocher des bonnes pratiques de type REST, et de rendre plus compréhensive l'exploration du code autant que de l'interface web lors du développement.
Un autre sujet, peut-être moins consensuel, concerne les profiles. Plus je me plonge et replonge dans le code de Hiboo, plus je me convainc qu'en termes de pure logique, `profiles` est une sous-collection de `services`, dans la mesure où un profile ne peut pas exister en dehors d'un service, tandis qu'il peut exister en dehors d'un user (`UNCLAIMED`). Par exemple, je trouve qu'une route `/services/<service_uuid>/profiles` informe mieux que `/profile/list/service/<service_uuid>`.
J'ai bossé dans une branche sur un PoC de ce à quoi pourrait ressembler une alternative (basée sur la branche de !79 histoire de résoudre une limitation de ma proposition pour les profiles) :
Endpoint | Before | After
------------------------------------ | ----------------------------------------------------------- | --------------------------------------------
account.contact | [- /account/contact -] | [+ /account/settings/contact +]
account.home | /account/home | /account/home
account.password | [- /account/auth/password -] | [+ /account/settings/auth/password +]
account.password_reset | /account/auth/password/reset | /account/auth/password/reset
account.profiles | /account/profiles | /account/profiles
account.signin_password | [- /account/signin/password -] | [+ /account/auth/password +]
account.signin_totp | [- /account/signin/totp -] | [+ /account/auth/totp +]
account.signout | [- /account/signout -] | [+ /account/auth/signout +]
account.signup | [- /account/signup -] | [+ /account/auth/signup +]
account.totp | [- /account/auth/totp -] | [+ /account/settings/auth/totp +]
account.totp_disable | [- /account/auth/totp/disable -] | [+ /account/settings/auth/totp/disable +]
account.totp_enable | [- /account/auth/totp/enable -] | [+ /account/settings/auth/totp/enable +]
account.totp_reset | /account/auth/totp/reset | /account/auth/totp/reset
api.profile_email | [- /api/profile/<profile_uuid>/email -] | [+ /api/profiles/<profile_uuid>/email +]
index | / | /
moderation.board | /moderation/ | /moderation/
profile.action | [- /profile/action/<profile_uuid>/<action\> -] | [+ /services/<service_uuid>/profiles/<profile_uuid>/<action\> +]
profile.assign | [- /profile/assign/<profile_uuid> -] | [+ /services/<service_uuid>/profiles/<profile_uuid>/assign +]
profile.cancel_transition | [- /profile/transition/<profile_uuid>/cancel -] | [+ /services/<service_uuid>/profiles/<profile_uuid>/transition/cancel +]
profile.claim | [- /profile/claim/<service_uuid> -] | [+ /services/<service_uuid>/profiles/claim +]
profile.complete_transition | [- /profile/transition/<profile_uuid>/complete -] | [+ /services/<service_uuid>/profiles/<profile_uuid>/transition/complete +]
profile.create | [- /profile/create/<service_uuid> -] | [+ /services/<service_uuid>/profiles/create +]
profile.create_for | [- /profile/create_for/<service_uuid> -] | [+ /services/<service_uuid>/profiles/create-for +]
profile.create_quick | [- /profile/create_quick/<service_uuid> -] | [+ /services/<service_uuid>/profiles/create-quick +]
profile.details | [- /profile/details/<profile_uuid> -] | [+ /services/<service_uuid>/profiles/<profile_uuid> +]
profile.list_for_service | [- /profile/list/service/<service_uuid> -] | [+ /services/<service_uuid>/profiles/ +]
profile.pick | [- /profile/pick/<service_uuid> -] | [+ /services/<service_uuid>/profiles/pick +]
profile.start_transition | [- /profile/transition/<profile_uuid>/<transition_id> -] | [+ /services/<service_uuid>/profiles/<profile_uuid>/transition/<transition_id> +]
profile.unclaimed_export_for_service | [- /profile/unclaimedexport/service/<service_uuid>.csv -] | [+ /services/<service_uuid>/profiles/unclaimed.csv +]
service.action | [- /service/action/<service_uuid>/<action\> -] | [+ /services/<service_uuid>/<action\> +]
service.create | [- /service/create/<application_id> -] | [+ /services/<application_id>/create +]
service.create_select | [- /service/create -] | [+ /services/create +]
service.delete | [- /service/delete/<service_uuid> -] | [+ /services/<service_uuid>/delete +]
service.details | [- /service/details/<service_uuid> -] | [+ /services/<service_uuid> +]
service.edit | [- /service/edit/<service_uuid> -] | [+ /services/<service_uuid>/edit +]
service.edit | [- /service/edit -] | [+ /services/edit +]
service.list | [- /service/list -] | [+ /services/ +]
service.setapp | [- /service/setapp/<service_uuid>/<application_id> -] | [+ /services/setapp/<service_uuid>/<application_id> +]
service.setapp_select | [- /service/setapp/<service_uuid> -] | [+ /services/<service_uuid>/setapp +]
sso.oidc_authorize | /sso/oidc/<service_uuid>/authorize | /sso/oidc/<service_uuid>/authorize
sso.oidc_authorize | /sso/oidc/authorize/<service_uuid> | /sso/oidc/authorize/<service_uuid>
sso.oidc_discovery | /sso/oidc/<service_uuid>/.well-known/openid-configuration | /sso/oidc/<service_uuid>/.well-known/openid-configuration
sso.oidc_issuer | /sso/oidc/<service_uuid> | /sso/oidc/<service_uuid>
sso.oidc_jwks | /sso/oidc/<service_uuid>/jwks | /sso/oidc/<service_uuid>/jwks
sso.oidc_token | /sso/oidc/<service_uuid>/token | /sso/oidc/<service_uuid>/token
sso.oidc_token | /sso/oidc/token/<service_uuid> | /sso/oidc/token/<service_uuid>
sso.oidc_userinfo | /sso/oidc/<service_uuid>/userinfo | /sso/oidc/<service_uuid>/userinfo
sso.oidc_userinfo | /sso/oidc/userinfo/<service_uuid> | /sso/oidc/userinfo/<service_uuid>
sso.saml_metadata | /sso/saml/metadata/<service_uuid>.xml | /sso/saml/metadata/<service_uuid>.xml
sso.saml_redirect | /sso/saml/redirect/<service_uuid> | /sso/saml/redirect/<service_uuid>
static | /static/<path:filename> | /static/<path:filename>
user.contact_check | [- /user/contact/check/<user_uuid> -] | [+ /users/<user_uuid>/contact-checking +]
user.details | [- /user/details/<user_uuid> -] | [+ /users/<user_uuid> +]
user.invite | [- /user/invite -] | [+ /users/invitation +]
user.list | [- /user/list -] | [+ /users/ +]
user.password_reset | [- /user/auth/password/reset/<user_uuid> -] | [+ /users/<user_uuid>/auth/password/reset +]
user.pick | [- /user/pick -] | [+ /users/pick +]
user.totp_reset | [- /user/auth/totp/reset/<user_uuid> -] | [+ /users/<user_uuid>/auth/totp/reset +]backloghttps://forge.tedomum.net/acides/hiboo/-/issues/132Mettre à jour le README2024-01-24T12:34:42ZJae Lo PrestiMettre à jour le READMEJe pense qu'il serait temps de mettre à jour le README vu qu'il date un peut et redirige vers des liens morts (notamment les `*.test.tedomum.net`).
Tout ce qui concerne le déploiement pourrait être gardé mais reformaté en attendant un m...Je pense qu'il serait temps de mettre à jour le README vu qu'il date un peut et redirige vers des liens morts (notamment les `*.test.tedomum.net`).
Tout ce qui concerne le déploiement pourrait être gardé mais reformaté en attendant un meilleur moyen de documenter tout ca.
Related issues:
- #33
- #1200.2.0https://forge.tedomum.net/acides/hiboo/-/issues/130Améliorer le dialogue de confirmation2024-03-12T17:46:49ZornanovitchAméliorer le dialogue de confirmationil faudrait améliorer l'ensemble de la logique de confirmation pour une action, pour pouvoir :
* passer un paramètre qui rappelle ce sur quoi on agit dans le template (tel profil, tel user...)
* ajouter un bouton `cancel` (actuellement,...il faudrait améliorer l'ensemble de la logique de confirmation pour une action, pour pouvoir :
* passer un paramètre qui rappelle ce sur quoi on agit dans le template (tel profil, tel user...)
* ajouter un bouton `cancel` (actuellement, une à confirmer peut être annulée uniquement en retournant en arrière via le navigateur)backlogornanovitchornanovitch