class FourEyes::ControllerResource

Public Class Methods

add_maker_create_function(controller_class, method, *args) click to toggle source

Define the dynamic maker_create function This handles the storing of the action and it's meta data to the four_eyes_actions table with the status of 'Initiated'

# File lib/four_eyes/controller_resource.rb, line 8
def self.add_maker_create_function(controller_class, method, *args)
  options = args.extract_options!
  controller_class.send :define_method, method do |*args|
    "#{method} #{args}"
    resource_class_name = args[0]
    resource_id = args[1]
    object_class_name = args[2]
    data = args[3]

    action = FourEyes::Action.new(resource_class_name: resource_class_name,
                                  maker_resource_id: resource_id,
                                  resource_class_name: resource_class_name,
                                  action_type: 'action_create',
                                  object_resource_class_name: object_class_name,
                                  status: 'Initiated',
                                  data: data)
    if action.save!
      true
    else
      # TODO dondeng - Better to raise an exception here
      false
    end
  end
end
add_maker_delete_function(controller_class, method, *args) click to toggle source
# File lib/four_eyes/controller_resource.rb, line 58
def self.add_maker_delete_function(controller_class, method, *args)
  options = args.extract_options!
  controller_class.send  :define_method, method do |*args|
    resource_class_name = args[0]
    resource_id = args[1]
    object_class_name = args[2]
    object_resource_id = args[3]
    data = args[4]

    action = FourEyes::Action.new(resource_class_name: resource_class_name,
                                  maker_resource_id: resource_id,
                                  action_type: 'action_delete',
                                  object_resource_class_name: object_class_name,
                                  object_resource_id: object_resource_id,
                                  status: 'Initiated',
                                  data: data)
    if action.save
      true
    else
      # TODO - dondeng - Better to raise an exception here
      false
    end
  end
end
add_maker_generic_function(controller_class, method, *args) click to toggle source
# File lib/four_eyes/controller_resource.rb, line 83
def self.add_maker_generic_function(controller_class, method, *args)
  options = args.extract_options!
  controller_class.send  :define_method, method do |*args|
    resource_class_name = args[0]
    resource_id = args[1]
    object_class_name = args[2]
    object_resource_id = args[3]
    action = args[4]
    data = args[5]

    action = FourEyes::Action.new(resource_class_name: resource_class_name,
                                  maker_resource_id: resource_id,
                                  action_type: action,
                                  object_resource_class_name: object_class_name,
                                  object_resource_id: object_resource_id,
                                  status: 'Initiated',
                                  data: data)
    if action.save
      true
    else
      # TODO - dondeng - Better to raise an exception here
      false
    end
  end
end
add_maker_update_function(controller_class, method, *args) click to toggle source
# File lib/four_eyes/controller_resource.rb, line 33
def self.add_maker_update_function(controller_class, method, *args)
  options = args.extract_options!
  controller_class.send :define_method, method do |*args|
    resource_class_name = args[0]
    resource_id = args[1]
    object_class_name = args[2]
    object_resource_id = args[3]
    data = args[4]

    action = FourEyes::Action.new(resource_class_name: resource_class_name,
                                  maker_resource_id: resource_id,
                                  action_type: 'action_update',
                                  object_resource_class_name: object_class_name,
                                  object_resource_id: object_resource_id,
                                  status: 'Initiated',
                                  data: data)
    if action.save
      true
    else
      # TODO - dondeng - Better to raise an exception here
      false
    end
  end
end
new(controller, *args) click to toggle source
# File lib/four_eyes/controller_resource.rb, line 109
def initialize(controller, *args)
  @controller = controller
  @params = controller.params
  @options = args.extract_options!
  @name = args.first
end