4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# File 'app/services/ecom/core/menu_service.rb', line 4
def (user)
role_ids = user.user_roles.map(&:id)
join_sql = " INNER JOIN ecom_core_menus_user_roles MUR ON MUR.menu_id = ecom_core_menus.id\n INNER JOIN ecom_core_user_roles UR ON MUR.user_role_id = UR.id\n SQL\n menu = Menu.joins(join_sql).where('UR.id IN (?)', role_ids).order(:id).distinct\n menu_list = menu.select { |m| m.parent.nil? }.each_with_object([]) do |item, list|\n list << { id: item.id, text: item.label, iconCss: item.icon, items: [] }\n end\n\n menu_list.each do |ml|\n ml[:items] = menu.reject { |m| m.parent.nil? }.each_with_object([]) do |item, list|\n list << { id: item.id, text: item.label, iconCss: item.icon, url: item.route } if item.parent_id == ml[:id]\n end\n end\n { success: true, data: menu_list }\nend\n"
|