【问题标题】:Devise and CanCan Roles Set By Other Users? (Rails 4.0)其他用户设置的 Devise 和 CanCan 角色? (导轨 4.0)
【发布时间】:2014-02-04 01:50:48
【问题描述】:

我了解 CanCan 的基本工作原理并尝试遵循一些教程,但没有一个真正讨论如何在我的应用程序中分配用户角色。

此外,我希望我的应用程序允许用户将角色分配给其他用户。例如,我的用户可以创建项目,并将其他用户分配给项目团队。我目前正在使用角色模型来保存我的用户角色。

我如何允许用户专门将另一个用户设置为该项目团队角色,以便他们可以管理项目?

【问题讨论】:

标签: ruby-on-rails devise cancan roles


【解决方案1】:

您可以使用带有 can_manage_projects 等字段的模型

class User < ActiveRecord::Base

  has_many :roles

  field :can_manage_projects, type: boolean
end

而且根据你的能力,你设置了一个权限通讯员……

class Ability
  def initialize(user)
    can :manage Project if user.can_manage_project?
  end 
end

因此,您可以随时使用该权限,例如:

class ProjectController

  def assign_user(project, user)
     project.users << user if can? :manage, Project
  end
end

<body>
  <% if can? :manage, Project %>
    <%= link_to 'Assign selected user to Project', assign_user_project_path(project, user) %>
  <% end %>
</body>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-20
    • 1970-01-01
    相关资源
    最近更新 更多