我有一个Rails 4应用程序。它与devise 3.2.3
合作。设计正确整合。此时,用户可以注册电子邮件和密码,登录并执行CRUD
操作。
现在我想做的是:我想创建一个admin
,而不是让任何用户自己注册。 admin
将保留创建用户的责任。我不希望用户自行注册。基本上,管理员将创建用户,向他们发放登录凭据,并通过电子邮件发送给他们。
我读过this帖子和类似的帖子在SO和设计维基中无济于事。
我已将boolean
字段添加到users table
以识别管理员用户。
class AddAdminToUser < ActiveRecord::Migration
def change
add_column :users, :admin, :boolean, :default => false
end
end
我已阅读有关使用cancan
管理用户的信息,但我不知道如何使用它来实现我的目标
我正在寻找的解决方案可能需要devise
和cancan
的组合。
我很感激有关此问题的任何指导。
答案 0 :(得分:0)
然后在你的UserPolicy中你会做这样的事情
class UserPolicy < ApplicationPolicy
def create?
user.admin?
end
end
你的模型看起来像这样
class User < ActiveRecord::Base
def admin?
admin
end
end
最后在您的控制器中,确保用户有权执行操作
class UserController < ApplicationController
def create
@user = User.new(user_params)
authorize @user
end
end
您可能还希望限制显示的可以访问管理员用户创建部分的按钮。这些也可以通过专家来完成。