Class: Mks::Auth::MenusController

Inherits:
ApplicationController show all
Defined in:
app/controllers/mks/auth/menus_controller.rb

Instance Method Summary collapse

Methods inherited from ApplicationController

#app_code, #current_user, #current_user_id, #logged_in?

Instance Method Details



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'app/controllers/mks/auth/menus_controller.rb', line 6

def menus
  roles = @user.roles.joins(:application_module)
               .where('mks_auth_application_modules.code = ?', params[:app_module])
  menus = []
  menu_list = roles.inject([]) { |items, r| items += r.menus.includes(:parent) }.uniq
  parents = menu_list.select { |menu| menu.parent.nil? }
  parents.each do |parent|
    children = (menu_list.select { |menu| menu.parent == parent }).uniq
                                                                  .map { |menu|
                   { 'text': menu.text, 'location': menu.location, 'iconCls': menu.icon_cls }
                 }
    menus << { 'text': parent.text, 'className': parent.class_name, 'iconCls': parent.icon_cls, children: children }
  end
  render json: { success: true, data: menus }
end