不知道如果你還在工作,否則什麼你究竟要完成的,而是繞過去處理用戶的角色與權威人士的好辦法正在與色器件來處理用戶配置文件,並創建一個管理員帳戶。管理員可以將特定用戶的角色更改爲您擁有的任何角色(即用戶,貴賓,主持人,編輯者,管理員等)。天空是你希望你的應用有多種角色的複雜程度的限制。在用戶模型中的使用「枚舉」,將有助於引導你的角色選擇:
class User < ActiveRecord::Base
enum role: [:user, :vip, :admin]
after_initialize :set_default_role, :if => :new_record?
def set_default_role
self.role ||= :user
end
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
end
這種方式,你可以設置一個新用戶的默認角色是一個普通用戶,然後管理員可以更新用戶新用戶應該扮演的角色。如果您想要一個更復雜的應用程序與多個公司/組,可以將其應用於多租戶應用程序。然後評論家的政策和範圍將起作用,以確定誰有權在您的應用中執行某些操作。例如:
- 管理員可以看到用戶
- 管理員可以更改用戶的角色
- 管理員和編輯器可以創建,編輯列表,刪除,更新博客文章
- 普通用戶無法看到用戶
- 普通用戶不能更改自己的角色
- 普通用戶無法看到(或修改)其他用戶的個人資料
- 的一般負責的列表Ÿ用戶可以看到(和編輯)自己的用戶配置文件
- 普通用戶不能編輯,刪除或更新的博客文章
- 一個普通的用戶可以看到發佈的博客文章
一個很好的資源要開始使用示例應用程序,請遵循Rails-devise-pundit示例應用程序,該示例應用程序將引導您使用用戶角色設置相當好的事物。如果您更直觀,則可以按照此YouTube視頻進行操作:Rails Authorization with Pundit。如果您還想在創建用戶角色時使用rspec進行測試,則該視頻非常棒。
希望這個操縱你的,你要完成什麼樣的正確方向。