簡體   English   中英

使用cancan和rolify進行角色管理

[英]Role management with cancan and rolify

我正在使用devise-cancan-rolify設置來處理用戶。 在注冊時,他們會收到讀者角色。 我希望能夠從管理界面將它們提升為Writer角色。 問題是,role和users_roles表的設置方式使得這一點變得相當復雜,特別是因為沒有users_roles模型而且我非常業余。 有沒有人熟悉這個可以在這里指導我的正確方法?

我希望你確實看到了關於設計+ cancan + rolify設置的本教程

如果您按照這些步驟操作,則應該擁有users,roles和users_roles表。 你不需要users_roles模型。

您需要做的第一件事是確保您可以為用戶分配和檢查角色。

您應該能夠在繼續之前運行這些代碼(從文檔的使用部分,在任何用戶的控制台中嘗試這些代碼)

user.add_role "admin"
user.has_role? :admin

如果這對您有用,那么現在您需要為新用戶分配讀者角色,最好的地方就是這樣做,是after_create回調:

class User
  after_create :assign_reader_role
private
  def assign_reader_role
    self.add_role "reader"
  end
end

下一步是從管理界面創建添加/刪除編寫器角色。

只需在UsersController中添加兩個操作即可

def assign_writer_role
  @user = User.find(params[:id])
  @user.add_role "writer"
  redirect_to @user
end

def remove_writer_role
  @user = User.find(params[:id])
  @user.remove_role "writer"
  redirect_to @user
end

就這樣。

我希望這有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM