【问题标题】:How to restrict who can invite users with devise_invitable and cancancan如何使用 devise_invitable 和 cancancan 限制谁可以邀请用户
【发布时间】:2017-01-18 16:29:33
【问题描述】:

我使用 devise_invitable 来邀请用户,并使用 cancancan 来定义应用程序中的能力。如何定义谁可以发送邀请的能力?

【问题讨论】:

    标签: ruby-on-rails cancancan devise-invitable


    【解决方案1】:
    # 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
    

    【讨论】:

      【解决方案2】:

      您可以在 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多