module ContextLinkRenderer include Renderer def render(request,params,current_module_app,current_user,belong_module_app) @current_module_app = current_module_app @belong_module_app = belong_module_app @request = request @params = params @current_user = current_user if display? content_tag :li, link_to(content_tag(:span, I18n.t(@label_i18n)), eval(@path)), :class => (active? ? 'active' : nil) end end protected def display? @available_for.each do |available_for_in_sym| result = case available_for_in_sym when :all true when :manager @belong_module_app.is_manager? @current_user when :sub_manager @belong_module_app.is_sub_manager? @current_user else (eval(available_for_in_sym).include? @current_user rescue false) end # of case return true if result || (@current_user.admin? rescue false) end # of collect false end end