我正在使用用戶組系統。每個小組都有幾個特徵,我想盡可能安全和簡單地與小組集合進行交互,因爲它仍處於早期階段。我應該使用每個集合還是幾個集合來發佈一個?
現在,我在我的網站中使用了幾個嵌套頁面。該部分的目的是允許用戶進入一個組,請求成員資格(如果該組是私人的),瀏覽一個組對象等。
例如,在我的組部分中,我可以加載yield a 「查看所有羣組」頁面,「創建新羣組」頁面或「僅查看我的羣組」(我是其中的成員)或「查看羣組」以獲取羣組詳細信息。
我的第一種方法是爲每個子頁面創建一個controller.js
文件,這個子頁面會根據子頁面需求調用一個訂閱。例如,我爲「查看所有組」子頁面提供「all_group」發佈/訂閱,爲「僅查看我的組」子頁面提供「my_groups」。
但是這變得非常混亂。另外,我在兩個文件夾中都聲明瞭我的「組」集合,因此我不確定要跟蹤客戶端可用數據的來源。
現在,我說明了情況,這裏是我的問題:
- 當我做了
console.table(Groups.find().fetch());
客戶端,我看到了不應該存在的字段(即不通過我的當前出版物或任何其他返回)。那是因爲我在客戶端聲明瞭「組」集合嗎?如何解決這個問題? - 我應該擺脫所有這些出版物,並創建一個客戶端允許看到的一切嗎?然後,我會從組部分頁面控制器訂閱它,並使用一組數據。
- 我是否應該僅使用allow/deny規則阻止任何插入/更新/從客戶端移除並僅使用這些方法?
- 是否安全/建議將我的方法放在
both
文件夾中,這樣我就不會失去延遲補償功能?
編輯 好吧,我被嚇壞了,因爲我已經在客戶端的所有我收集的數據,但它只是在發佈(我用的是兩個field:1
和field:0
預測),一個壞的查詢。 兩個問題是:
- 如果我使用的方法,我想我沒有否認在本地驅動程序的一切,我只是比更嚴格什麼方法允許,對不對?
- 如果我把我的方法放在這兩個文件夾中,它將在客戶端和服務器上執行,所以在「客戶端脫機」上下文中,即使客戶端與我的方法混淆,服務器也應該回滾更改結果與他不同(假設使用允許拒絕規則無法完成這些更改)?即使使用這些方法,我也會有延遲補償工作嗎?