Sha256: 03a494548615dbc3039fa78abb918af64950e7e2bc95c65066c1d4d7b488babc

Contents?: true

Size: 984 Bytes

Versions: 2

Compression:

Stored size: 984 Bytes

Contents

module Documentation
  class Authorizer
    
    def initialize(controller)
      @controller = controller
    end
    
    def can_view_page?(page)
      true
    end

    def can_add_page?(page)
      true
    end

    def can_reposition_page?(page)
      true
    end

    def can_delete_page?(page)
      true
    end

    def can_edit_page?(page)
      true
    end
    
    def can_search?
      true
    end
    
    def check!(action, object = :none)
      action_method_name = "can_#{action}?"
      if self.respond_to?(action_method_name)
        result = object == :none ? self.send(action_method_name) : self.send(action_method_name, object)
        if result != true
          raise Documentation::AccessDeniedError, "You are not permitted to perform this action."
        end
      else
        raise Documentation::Error, "Invalid authorizer check (#{action})"
      end
    end
    
    private
    
    def request
      controller.request
    end
    
    
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
documentation-1.0.1 lib/documentation/authorizer.rb
documentation-1.0.0 lib/documentation/authorizer.rb