簡體   English   中英

如何使用 devise_invitable 和 cancancan 限制誰可以邀請用戶

[英]How to restrict who can invite users with devise_invitable and cancancan

我使用 devise_invitable 來邀請用戶,並使用 cancancan 來定義應用程序中的能力。 我如何定義誰可以發送邀請的能力?

# 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

您可以覆蓋方法authenticate_inviter! 在您的ApplicationController

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM