Как ограничить, кто может приглашать пользователей с помощью devise_invitable и cancancan

Я использую devise_invitable для приглашения пользователей и cancancan для определения способностей в приложении. Как определить, кто может отправлять приглашения?


person David Ham    schedule 18.01.2017    source источник


Ответы (1)


Вы можете переопределить метод 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

а затем используйте канканкан, чтобы определить, кто can :invite, SysManager

person coorasse    schedule 24.02.2021