Module: Sqreen::Actions
- Defined in:
- lib/sqreen/actions.rb,
lib/sqreen/actions/base.rb,
lib/sqreen/actions/block_ip.rb,
lib/sqreen/actions/block_user.rb,
lib/sqreen/actions/repository.rb,
lib/sqreen/actions/redirect_ip.rb,
lib/sqreen/actions/users_index.rb,
lib/sqreen/actions/actions_index.rb,
lib/sqreen/actions/redirect_user.rb,
lib/sqreen/actions/ip_ranges_index.rb,
lib/sqreen/actions/user_action_class.rb,
lib/sqreen/actions/unknown_action_type.rb,
lib/sqreen/actions/ip_range_indexed_action_class.rb
Overview
Implements actions (behavior taken in response to agent signals)
Defined Under Namespace
Modules: IpRangeIndexedActionClass, UserActionClass Classes: ActionsIndex, Base, BlockIp, BlockUser, IpRangesIndex, RedirectIp, RedirectUser, Repository, UnknownActionType, UsersIndex
Class Method Summary collapse
Class Method Details
.deserialize_action(hash) ⇒ Sqreen::Actions::Base
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/sqreen/actions.rb', line 20 def self.deserialize_action(hash) action_type = hash['action'] raise 'no action type available' unless action_type subclass = Sqreen::Actions::Base.get_type_class(action_type) raise Sqreen::Actions::UnknownActionType, action_type unless subclass id = hash['action_id'] raise 'no action id available' unless id duration = hash['duration'] if !duration.nil? && duration <= 0 Sqreen.log.debug "Action #{id} is already expired" return nil end opts = { :duration => duration, :send_response => hash['send_response'], } subclass.new(id, opts, hash['parameters'] || {}) end |