我正在使用Symfony3構建API後端,並且有關於如何將字段級別權限應用於PUT端點以更新對象(本例中爲用戶)的問題。Symfony3實體字段級別權限
我的用戶實體具有多個字段,名字,姓氏,用戶名等
如果PUT請求被髮送到/用戶/ {用戶id}端點,我反序列化請求JSON到一個數組,傳數組(以及從數據庫中提取的用戶)導入規範器,該規範器將請求數據應用於用戶屬性。
我想要一個ADMIN能夠更新所有字段,但用戶自己只能夠更新他們的名字和姓氏。
因此,在我的代碼中的某處,我需要在將更新應用於用戶對象之前進行檢查,例如,如果用戶名字段出現在PUT請求中,我需要檢查請求用戶是否是管理員,然後再將該更新應用到用戶對象。
將安全注入標準器看起來像是一個明顯的解決方案,但感覺安全不應該是標準器的問題。
我可以在反序列化請求之後,在傳遞給規範器之前檢查權限,然後只要用戶沒有訪問權限就從數組中刪除字段。如果不是管理員從陣列中刪除[用戶名]。
尋找想法/建議在正確的方式來完成此....
謝謝!