Skip to content

feat(reports): add feedback portal and admin roles - #39

Open
HeiTang wants to merge 3 commits into
devfrom
feature/parse-report-admin
Open

HeiTang wants to merge 3 commits into
devfrom
feature/parse-report-admin

Conversation

@HeiTang

@HeiTang HeiTang commented Nov 10, 2026 •

Copy link
Copy Markdown
Owner

使用者可以從提醒確認卡的「回報問題」進入 Bot 私聊,選原因、預覽選填附件與回報者資訊,再確認送出。SQLite 依草稿去重,保存送出時的 Telegram user ID 與已設定的 username。回報 schema 更新至 v12,舊回報仍可查閱。

後台使用 Telegram OIDC 登入,部署者以 ADMIN_TELEGRAM_IDS 指定後台管理者。管理者可查閱回報、新增/移除維護者及編輯人員備註;維護者只能查閱、篩選回報。每次請求重新檢查權限,被移除的維護者即使已登入,下次請求也會失去存取權。

人員列表以 Telegram 名稱或管理者備註辨識,名稱旁以藥丸顯示 username 與數字 ID。名稱與 username 於本人成功登入時更新,權限始終依數字 ID 判斷。窄螢幕下,人員資訊使用整列寬度,移除按鈕另列,藥丸各自換行。人員資訊各行使用 8px 間距,備註與授權紀錄的行高為 1.7。

維護者白名單、備註及登入身分資料保存於獨立 SQLite。Compose 新增 remindly-admin-data 持久化 volume,原提醒資料庫仍唯讀掛載。README 與環境變數範例已同步;舊 MAINTAINER_TELEGRAM_IDS 改由管理者設定與後台白名單取代,既有維護者需在後台重新加入。

驗證:

  • make check 通過:433 個測試、Ruff 與 smoke flow。
  • Compose admin profile 設定驗證通過。
  • 使用本機測試資料驗證列表、即時篩選、詳情、人員新增/移除、角色切換與名稱旁藥丸顯示與人員資訊行距。
  • 測試涵蓋管理者/維護者分權、CSRF、跨 session 撤權、持久化與舊白名單資料升級、名稱/username 更新及備註跳脫。

Telegram OIDC 使用簽章模擬資料測試,尚未完成真實 Telegram 登入實測。此 PR 不包含部署、Token 用量或獨立 Telegram 身分查詢 Bot。

@HeiTang HeiTang changed the title feat(reports): add bot feedback and admin portal feat(reports): add feedback portal and admin roles Nov 11, 2026
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.

1 participant