2016-12-08 29 views
0

我的控制器中的所有CRUD操作都是在屬於current_user的資源上完成的,即經過身份驗證的用戶。例如。如果所有資源都來自current_user,我是否需要授權?

@post = current_user.posts.create(title: "My title") 
@posts = current_user.posts.where(archived: false) 

當我在的地方授權我可以重定向和日誌未授權的請求,但除此之外, - 是沒有任何保障待遇實行授權系統(例如權威人士,cancancan等)?

回答

1

在這樣一個簡單的情況下,沒有。

如果您希望記錄未經授權的訪問,可以輕鬆地通過添加覆蓋一個或兩個方法並添加Rails.logger.warn 'got the bad guy!'來完成。

然而,考慮以下因素:

你的用戶羣請求編輯在同一時間後。

他們還想設置某人可以在帖子上執行的操作。

他們還希望設置具有許多組有許多帖子的項目的團隊。

根據您所屬的團隊,團隊,項目,意味着您可以編輯帖子。

如果某人屬於企業團隊並屬於主席組,他們可以執行任何操作,無論如何。

此時,唯一的解決方案是像cancancanpundit這樣的權限系統,並且對於動態權限,甚至可以將權限設置爲數據庫表,然後循環遍歷所有權限並生成圍繞權限的規則。

相關問題