module Acl9::Helpers

Public Class Methods

included(base) click to toggle source
# File lib/acl9/helpers.rb, line 3
def self.included(base)
  base.extend ClassMethods
end

Public Instance Methods

show_to(*args) { |:block| ... } click to toggle source

Usage:

<%=show_to(:owner, :supervisor, :of => :account) do %>
  <%= 'hello' %>
<% end %>
# File lib/acl9/helpers.rb, line 26
def show_to(*args, &block)
  user = send(Acl9.config[:default_subject_method])
  return if user.nil?

  has_any = false

  if args.last.is_a?(Hash)
    an_obj  = args.pop.values.first
    has_any = args.detect { |role| user.has_role?(role, an_obj) }
  else
    has_any = args.detect { |role| user.has_role?(role) }
  end

  if has_any
    begin
      capture( &block )
    rescue NoMethodError
      yield( :block )
    end
  end

end