Sha256: 6988ef9b79500973e9aa4a4763b895c22c684198f14ec8255d1f96446ff0bf69

Contents?: true

Size: 951 Bytes

Versions: 10

Compression:

Stored size: 951 Bytes

Contents

# typed: ignore

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

require 'sqreen/actions/actions_index'

module Sqreen
  module Actions
    class UsersIndex < ActionsIndex
      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

      private

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

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
sqreen-1.25.1 lib/sqreen/actions/users_index.rb
sqreen-1.25.0 lib/sqreen/actions/users_index.rb
sqreen-1.24.3 lib/sqreen/actions/users_index.rb
sqreen-1.24.2 lib/sqreen/actions/users_index.rb
sqreen-1.24.1 lib/sqreen/actions/users_index.rb
sqreen-1.24.0 lib/sqreen/actions/users_index.rb
sqreen-1.23.2 lib/sqreen/actions/users_index.rb
sqreen-1.23.1 lib/sqreen/actions/users_index.rb
sqreen-1.23.0 lib/sqreen/actions/users_index.rb
sqreen-1.22.1 lib/sqreen/actions/users_index.rb