Sha256: 1289614ec9d5cb63e76695b146e3db219799308c8246a0edb93e1463f2fabf9b

Contents?: true

Size: 958 Bytes

Versions: 9

Compression:

Stored size: 958 Bytes

Contents

# Copyright (c) 2015 Sqreen. All Rights Reserved.
# Please refer to our terms for more information: https://www.sqreen.com/terms.html

require 'sqreen/exception'

module Sqreen
  module Actions
    module UserActionClass
      def actions_matching(identity_params)
        return [] unless @idx
        key = stringify_keys(identity_params)
        actions = @idx[key]
        actions || []
      end

      def index(params, action)
        @idx ||= {}
        users = params['users']
        raise ::Sqreen::Exception, 'nil "users" param for block_user action' if users.nil?
        raise ::Sqreen::Exception, '"users" param must be an array' unless users.is_a? Array

        users.each do |u|
          @idx[u] ||= []
          @idx[u] << action
        end
      end

      def clear
        @idx = {}
      end

      private

      def stringify_keys(hash)
        Hash[
          hash.map { |k, v| [k.to_s, v] }
        ]
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
sqreen-1.18.6-java lib/sqreen/actions/user_action_class.rb
sqreen-1.18.6 lib/sqreen/actions/user_action_class.rb
sqreen-1.18.5-java lib/sqreen/actions/user_action_class.rb
sqreen-1.18.5 lib/sqreen/actions/user_action_class.rb
sqreen-1.18.4-java lib/sqreen/actions/user_action_class.rb
sqreen-1.18.4 lib/sqreen/actions/user_action_class.rb
sqreen-1.18.3-java lib/sqreen/actions/user_action_class.rb
sqreen-1.18.3 lib/sqreen/actions/user_action_class.rb
sqreen-1.18.3.beta2 lib/sqreen/actions/user_action_class.rb