Sha256: 6f5ffddc32367b6de19880fbe301a75c119ed49e76d10a880d460c1e3a011766

Contents?: true

Size: 639 Bytes

Versions: 3

Compression:

Stored size: 639 Bytes

Contents

# frozen_string_literal: true

module Ibrain
  module Extentions
    class ActiveRequired < GraphQL::Schema::FieldExtension
      def resolve(object:, arguments:, **rest)
        raise ActionController::InvalidAuthenticityToken, I18n.t('ibrain.errors.session.is_deactivated') if is_invalid_session(object)

        # yield the current time as `memo`
        yield(object, arguments, rest)
      end

      private

      def is_activated(object)
        current_user = object.try(:context).try(:fetch, :current_user, nil)
        current_user.try(:is_activated?) && options.try(:fetch, :active_required, false)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ibrain-core-0.5.9 app/graphql/ibrain/extentions/active_required.rb
ibrain-core-0.5.8 app/graphql/ibrain/extentions/active_required.rb
ibrain-core-0.5.7 app/graphql/ibrain/extentions/active_required.rb