如何在 Rails 中添加角色和权限,即使它已经通过设计构建

how to add Roles and Permission in Rails even it's already build by devise

正在设计 Devise rails 过去两个月的租赁项目申请,现在项目已经发货,所以必须更改

因为我的项目给我发邮件作为更改路线

“我决定我们将进行纯粹的 B2B 游戏。因此不允许个人列出要出租的设备,只有经过验证的租用 centres/hardware 商店将能够列出要出租的设备. 但是,私人将能够创建个人资料并通过该平台进行预订,而不是出租他们自己的 equipment/tools。

所以我的问题是我是否应该像

那样在用户中添加新的列

设计用户列中的角色和权限:

用户(个人),

管理员(我们的员工),

公司。

或者使用 gem 像 rails-devise-pundit 或 cancancan 到项目中,即使这个项目已经建成。

您可能想看看 rolify gem。

它非常易于使用,您可以添加多个角色,并为一个用户分配多个角色。这样,您可以避免向用户的 table.

添加新列

以下是您可以为用户分配角色的方法:

user = User.find(1)
user.add_role :admin

验证用户是否具有角色 admin:

user = User.find(1)
user.has_role? :admin
=> true

我们可以使用 cancan gem.

实施的基本步骤:

  1. 将 gem 导入 Gemfile

  2. 使用以下命令创建能力文件

rails g cancan:ability
  1. 像下面这样定义访问。
class Ability
  include CanCan::Ability

  def initialize(user)

    alias_action :create, :read, :update, :destroy, :to => :crud
    if user.super_admin?
        can :access, :rails_admin   # grant access to rails_admin
        can :dashboard              # grant access to the dashboard

        # Accss Level to Models


        can :crud

    end

  end
end

查看 Gems documentation

的更多详细信息