orbit4-5/lib/orbit_app/helper/context_link_renderer.rb

37 lines
1.2 KiB
Ruby

module ContextLinkRenderer
include Renderer
def render(request,params,current_module_app,current_user,belong_module_app,active_actions,available_for)
@current_module_app = current_module_app
@belong_module_app = belong_module_app
@request = request
@params = params
@site = Site.first
@current_user = current_user
@available_for = available_for
if can_display?
content_tag :li, link_to(content_tag(:span, I18n.t(@label_i18n)), Rails.application.routes.url_helpers.send(@path, eval(@arg))), :class => ( active_actions[controller] == action ? 'active' : nil)
end
end
def can_display?
status = "users"
if @site.backend_openness_on && @current_user.nil?
status = "users"
elsif @current_user.is_admin?
status = "admin"
elsif @current_user.is_manager?(@belong_module_app)
status = "managers"
elsif @current_user.is_manager_with_role?(@belong_module_app)
status = "managers"
elsif @current_user.is_sub_manager?(@belong_module_app)
status = "sub_managers"
elsif @current_user.is_sub_manager_with_role?(@belong_module_app)
status = "sub_managers"
elsif @current_user.is_normal_user?
status = "users"
end
return @available_for.include?status
end
end