class Portier::Base
*************************************************************************************
Check if the access is granted or refused depending on the permission setted in the permission files.
*************************************************************************************
Attributes
application_controller[R]
current_user[R]
Public Class Methods
new(application_controller, current_user)
click to toggle source
# File lib/portier/base.rb, line 10 def initialize(application_controller, current_user) @application_controller = application_controller @current_user = current_user end
Public Instance Methods
access_denied_message()
click to toggle source
# File lib/portier/base.rb, line 15 def access_denied_message base_permission.access_denied_message end
can?(action, object, options={})
click to toggle source
# 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={})
click to toggle source
# File lib/portier/base.rb, line 36 def can_view?(tag, options={}) view_permission.can_view? tag, options end
permitted_params()
click to toggle source
# File lib/portier/base.rb, line 40 def permitted_params base_permission.build_permitted_params if base_permission.respond_to? :permitted_params end
Private Instance Methods
action()
click to toggle source
# File lib/portier/base.rb, line 46 def action request[:action] end
base_permission()
click to toggle source
# File lib/portier/base.rb, line 50 def base_permission @base_permission ||= permission_for controller_name end
controller_name()
click to toggle source
# File lib/portier/base.rb, line 54 def controller_name request[:controller] end
permission_for(target)
click to toggle source
# File lib/portier/base.rb, line 58 def permission_for(target) begin "#{target.camelize}Permission".constantize.new(application_controller, current_user) rescue raise Portier::Uninitalized, "You must define #{target.camelize}Permission in app/permissions/#{target}_permission.rb. See documentation for more details." end end
view_permission()
click to toggle source
# File lib/portier/base.rb, line 66 def view_permission if not @view_permission_object begin @view_permission_object = "ViewTagsPermission".constantize.new(application_controller, current_user) rescue raise Portier::Uninitalized, "You must define ViewTagsPermission in app/permissions/view_tags_permission.rb in order to use view permission. See documentation for more details." end end @view_permission_object end