Skip to content

Ne propose Telegram aux membres que si le canal fonctionne - #32

Merged
flocom merged 1 commit into
mainfrom
claude/remove-apel-sensitive-data-73l5iu
Aug 2, 2026
Merged

Ne propose Telegram aux membres que si le canal fonctionne#32
flocom merged 1 commit into
mainfrom
claude/remove-apel-sensitive-data-73l5iu

Conversation

@flocom

@flocom flocom commented Aug 2, 2026

Copy link
Copy Markdown
Owner

La page Mon compte demandait un Chat ID Telegram à tout le monde, y compris quand aucun bot n'était configuré. Un membre pouvait renseigner son identifiant et attendre indéfiniment des notifications qui ne partaient pas — c'est l'état d'une installation neuve, où Telegram est désactivé par défaut.

Ce qui change

Le champ n'apparaît que si un administrateur a coché « Activer Telegram » et enregistré un token que Telegram reconnaît. L'API applique la même règle, pour que la fermeture ne soit pas seulement visuelle : enregistrer un Chat ID est refusé tant que le canal n'est pas prêt, l'effacer reste toujours possible.

« Reconnaît » est vérifié, pas supposé. À l'enregistrement des réglages, le token est présenté à getMe :

Réponse Effet
Bot confirmé nom du bot et date de vérification enregistrés, canal ouvert
Refus de Telegram sauvegarde rejetée en citant sa raison ; décocher « Activer Telegram » permet d'enregistrer le reste
Telegram injoignable bloque seulement si l'administrateur change le token ou ouvre le canal ; sinon les autres réglages restent modifiables

Le nom du bot est affiché aux membres — « ouvrez une conversation avec @monbot » au lieu de « le bot de l'association ».

Deux colonnes s'ajoutent à association_settings : telegram_bot_username et telegram_token_verified_at. Migration additive.

Vérifications

Sur une instance réelle — PostgreSQL, application construite et servie — cinq situations :

Situation Champ « Chat ID » API
Telegram désactivé (défaut) absent 400 avec la raison
Activation, token refusé par Telegram absent sauvegarde 400 : « Token refusé par Telegram (Unauthorized) »
Token enregistré, Telegram décoché absent
Telegram activé, token reconnu présent, nom du bot affiché Chat ID accepté, vérification horodatée en base
Canal refermé ensuite absent un changement de nom n'efface pas le Chat ID conservé

La forme de réponse utilisée pour le refus est celle de l'API réelle, relevée sur api.telegram.org : {"ok":false,"error_code":401,"description":"Unauthorized"}.

tsc --noEmit, npm run lint et next build passent.


Generated by Claude Code

La page « Mon compte » demandait un Chat ID Telegram à tout le monde, y
compris quand aucun bot n'était configuré : un membre pouvait renseigner son
identifiant et attendre indéfiniment des notifications qui ne partaient pas.
C'est le cas sur une installation neuve, où Telegram est désactivé par défaut.

Le champ n'apparaît désormais que si un administrateur a coché « Activer
Telegram » et enregistré un token que Telegram reconnaît. L'API applique la
même règle : enregistrer un Chat ID est refusé tant que le canal n'est pas
prêt, l'effacer reste toujours possible.

« Reconnaît » est vérifié, pas supposé : à l'enregistrement des réglages, le
token est présenté à `getMe`. Un refus de Telegram bloque la sauvegarde en
citant sa raison, et laisse la possibilité de décocher Telegram pour
enregistrer le reste. Une panne réseau ne bloque que si l'administrateur est
justement en train de changer le token ou d'ouvrir le canal ; sinon les autres
réglages restent modifiables.

Le nom du bot renvoyé par Telegram est conservé et affiché aux membres, qui
savent enfin à qui écrire au lieu de chercher « le bot de l'association ».

Vérifié sur une instance réelle, cinq situations : canal fermé (champ absent,
API refuse), token refusé par Telegram (sauvegarde rejetée avec sa raison),
token enregistré mais Telegram décoché (champ absent), canal ouvert avec un
token reconnu (champ présent, nom du bot affiché, Chat ID accepté et
vérification horodatée en base), puis canal refermé — où un changement de nom
ne doit pas effacer le Chat ID conservé.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014SfQYBU4xXTeSEHKhHQXdD
@flocom
flocom merged commit 519aabc into main Aug 2, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants