module AuthAssistant::Helpers::Roles

Public Instance Methods

not_roles_area(*user_roles, options, &block) click to toggle source
# File lib/auth_assistant/helpers/roles.rb, line 12
def not_roles_area(*user_roles, options, &block)
  options ||= {}        
  not_roles_block user_roles do             
    clazz = options[:class] || 'special'
    do_roles_area(clazz, &block)
  end
end
not_roles_block(*user_roles, &block) click to toggle source
# File lib/auth_assistant/helpers/roles.rb, line 24
def not_roles_block(*user_roles, &block)
  with_output_buffer(&block) if !role?(user_roles)
end
role?(*user_roles) click to toggle source
# File lib/auth_assistant/helpers/roles.rb, line 28
def role?(*user_roles)
  devise_role?(user_roles) || cancan_role?(user_roles)
end
roles_area(*user_roles, options, &block) click to toggle source
# File lib/auth_assistant/helpers/roles.rb, line 4
def roles_area(*user_roles, options, &block)
  options ||= {}
  roles_block user_roles do             
    clazz = options[:class] || 'special'          
    do_roles_area(clazz, &block)
  end
end
roles_block(*user_roles, &block) click to toggle source
# File lib/auth_assistant/helpers/roles.rb, line 20
def roles_block(*user_roles, &block)
  with_output_buffer(&block) if role?(user_roles)
end

Protected Instance Methods

cancan_role?(user_roles) click to toggle source
# File lib/auth_assistant/helpers/roles.rb, line 46
def cancan_role?(user_roles)                
  union = current_user.roles & user_roles
  !union.empty?
end
devise_role?(user_roles) click to toggle source
# File lib/auth_assistant/helpers/roles.rb, line 42
def devise_role?(user_roles)        
  user_roles.flatten.any?{|role| warden.authenticate?(:scope => role.to_sym)}
end
do_roles_area(clazz, &block) click to toggle source
# File lib/auth_assistant/helpers/roles.rb, line 37
def do_roles_area(clazz, &block)
  content = with_output_buffer(&block)
  content_tag :div, content, :class => clazz    
end

Public Class Methods

included(base) click to toggle source
# File lib/auth_assistant/helpers/roles.rb, line 32
def self.included(base)
  base.helper_method :roles_block, :not_roles_block, :roles_area, :not_roles_area, :role? 
end