Class: Portier::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/portier/base.rb

Overview

************************************************************************************* Check if the access is granted or refused depending on the permission setted in the permission files. *************************************************************************************

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(application_controller, current_user) ⇒ Base

Returns a new instance of Base.



10
11
12
13
# File 'lib/portier/base.rb', line 10

def initialize(application_controller, current_user)
  @application_controller = application_controller
  @current_user = current_user
end

Instance Attribute Details

#application_controllerObject (readonly)

Returns the value of attribute application_controller.



6
7
8
# File 'lib/portier/base.rb', line 6

def application_controller
  @application_controller
end

#current_userObject (readonly)

Returns the value of attribute current_user.



6
7
8
# File 'lib/portier/base.rb', line 6

def current_user
  @current_user
end

Instance Method Details

#access_denied_messageObject



15
16
17
# File 'lib/portier/base.rb', line 15

def access_denied_message
  base_permission.access_denied_message
end

#authorize_actionObject



19
20
21
# File 'lib/portier/base.rb', line 19

def authorize_action
  raise Portier::AccessDenied if not base_permission.granted? action
end

#can?(action, object, options = {}) ⇒ Boolean

Returns:

  • (Boolean)


23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/portier/base.rb', line 23

def can?(action, object, options={})
  object_name = if object.is_a? Symbol or object.is_a? String
    object.to_s.singularize.pluralize
  else
    object.class.name.pluralize
  end

  object_name = "#{options[:namespace].to_s.camelize}::#{object_name.camelize}" if options[:namespace]

  permission = permission_for object_name
  permission.can? action, object, options
end

#can_view?(tag, options = {}) ⇒ Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/portier/base.rb', line 36

def can_view?(tag, options={})
  view_permission.can_view? tag, options
end

#permitted_paramsObject



40
41
42
# File 'lib/portier/base.rb', line 40

def permitted_params
  base_permission.build_permitted_params if base_permission.respond_to? :permitted_params
end