Ptt-official-app / Ptt-backend

PTT APP 的後端
BSD 3-Clause "New" or "Revised" License
208 stars 68 forks source link

[BUG] 在放入一般使用者的 Access Token 的情況下 GET /v1/boards/bm_only/articles 不應該出現文章列表 #245

Open titaneric opened 3 years ago

titaneric commented 3 years ago

發生了什麼事? / The Problem

在放入一般使用者的 Access Token 的情況下 GET /v1/boards/bm_only/articles 不應該出現文章列表,因為這是版主以上才能看到的版,應該出現 error。但是卻回傳文章列表。

如何重現 / To Reproduce

  1. curl http://localhost:8081/v1/boards/bm_only/articles
  2. 回傳文章列表

    預期的行為 / Expected behavior

螢幕截圖 / Screenshots

image 要回傳錯誤,因為沒有bm_only的Access Token

開發環境 / Environment

  1. OS: Windows 10 and WSL 2 Ubuntu 20.04
  2. Go version v1.16.5
PichuChen commented 3 years ago

對應 測試表 C5-1-1 C5-1-2

y2468101216 commented 3 years ago

目前沒有實做管理群的權限控管,所以需要先從 go-bbs 那邊實做

PichuChen commented 3 years ago

@y2468101216 權限管控應該要從 usecase 做

y2468101216 commented 3 years ago

不從 go-bbs 實做看不出來誰是管理員阿

PichuChen commented 3 years ago

Go-bbs 本身是資料庫管理系統的概念,實際上商業邏輯應該是在PTT-backend判斷。

所以需要什麼資料的話和go-bbs拿,然後在ptt-backend 這邊判斷是否放行

y2468101216 commented 3 years ago

我說的就是權限的資料阿,目前沒有實做拿權限資料這塊

PichuChen commented 3 years ago

在這邊: https://github.com/Ptt-official-app/go-bbs/blob/2d206af56cc5f9bba48ff13fd8fc1bacb04eb3cd/bbs.go#L95

你可以直接存取 BoardRecord 的屬性

y2468101216 commented 3 years ago

分兩塊

  1. 看板本身的權限
  2. 使用者本身的權限

這個問題是明明使用者沒有該權限卻可以看到這個板

y2468101216 commented 3 years ago

這是使用者群組 截圖 2021-07-08 下午6 07 06

這是看板閱讀權限 截圖 2021-07-08 下午6 09 56

要去拿看板的權限去比對使用者身份,這個 issue 的要求是這樣,目前確定要在 usecase 裡實做