繁体   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