Ruby on rails 3 -声明式授权用户切换



是否有人尝试使用authlogic/声明式授权宝石添加用户角色切换?

我的要求是用户可以有多个角色(例如作者,教师),并且可以在应用程序中切换角色。

关于如何处理这个问题,我有两个想法:
  1. 向user_roles连接添加另一个布尔属性(活动)表
  2. 将切换后的role_id复制到users表中并工作从

我阅读了声明式授权自述文件,但看不到任何内建的东西。

今天回顾一下这个问题,解决方案很简单。我在多对多user_roles连接中添加了一个布尔属性,以避免重复。连接现在具有以下属性:

id | user_id | role_id | active

用户模型中的role_symbols方法,用于钩入authorization_rules。rb DSL现在看起来像:

def role_symbols
  user_roles.where(:active => true).map do |user_role|
    user_role.role.name.underscore.to_sym
  end
end

现在用户角色将自己设置为user_roles表中活动的角色。

用户切换也很容易(从用户模型)

def self.set_active_role(user_id, role_id)
  UserRole.where(:user_id => user_id).update_all(:active => false)
  activate_role = UserRole.where(:user_id => user_id, :role_id => role_id).first
  activate_role.update_attributes(:active => true)
end

认为这可能会帮助某人在未来

相关内容

  • 没有找到相关文章

最新更新