【发布时间】:2017-01-18 16:29:33
【问题描述】:
我使用 devise_invitable 来邀请用户,并使用 cancancan 来定义应用程序中的能力。如何定义谁可以发送邀请的能力?
【问题讨论】:
标签: ruby-on-rails cancancan devise-invitable
我使用 devise_invitable 来邀请用户,并使用 cancancan 来定义应用程序中的能力。如何定义谁可以发送邀请的能力?
【问题讨论】:
标签: ruby-on-rails cancancan devise-invitable
# app/controllers/invitations_controller.rb
class Devise::InvitationsController < DeviseController
...
before_action :is_admin?, :only => [:new, :create]
...
private
def is_admin?
current_user.role == 'admin'
end
end
【讨论】:
您可以在 ApplicationController 中覆盖方法 authenticate_inviter!
def authenticate_inviter!
send(:"authenticate_#{resource_name}!", force: true).tap do |inviter|
@current_ability = ::Ability.new(inviter)
authorize! :invite, SysManager
end
end
然后用cancancan定义谁can :invite, SysManager
【讨论】: