context.py 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. from django.urls import resolve
  2. menu = [
  3. {'title':'Главная/баланс', 'link':'home', 'sel':'house'},
  4. {'title':'Платежная информация', 'link':'test-page', 'sel':'credit-card'},
  5. {'title':'История платежей', 'link':'trans','sel':'clock-history'},
  6. {'title':'Курсы', 'link':'course', 'sel':'education'},
  7. {'title':'Личная информация', 'link':'test-page', 'sel':'person'},
  8. {'title':'Управление сервисами', 'link':'test-page', 'sel':'hdd-network'},
  9. {'title':'Мои связи', 'link':'test-page', 'sel':'people'},
  10. {'title':'Сотрудничество', 'link':'test-page', 'sel':'sotrud'},
  11. {'title':'Техподдержка', 'link':'test-page', 'sel':'gear'},
  12. {'title':'Мои заявки', 'link':'tickets', 'sel':'tikets'},
  13. {'title':'Исполнители', 'link':'provider', 'sel':'people',
  14. 'roles':['METASERVICE-ADMIN']},
  15. {'title':'Тарифы услуг', 'link':'service_tariff', 'sel':'person',
  16. 'roles':['PARTNER-ADMIN']},
  17. {'title':'Партнеры', 'link':'partners', 'sel':'people',
  18. 'roles':['METASERVICE-ADMIN']},
  19. {'title':'Ресурсы', 'link':'resource', 'sel':'sotrud',
  20. 'roles':['PARTNER-ADMIN']},
  21. {'title':'Услуги сервиса', 'link':'service_type', 'sel':'hdd-network',
  22. 'roles':['METASERVICE-ADMIN']},
  23. {'title':'Информация о сервисе', 'link':'service_information/add/', 'sel':'hdd-network',
  24. 'roles':['METASERVICE-ADMIN']},
  25. {'title':'Информация о партнере', 'link':'partner_information/add/', 'sel':'person',
  26. 'roles':['PARTNER-ADMIN']},
  27. {'title':'Тарифы', 'link':'service', 'sel':'tikets',
  28. 'roles':['PARTNER-ADMIN']},
  29. {'title':'Управление пользователями','link':'user_information', 'sel':'person'}
  30. ]
  31. def get_context(request, page_context) -> dict:
  32. # Получаем роли текущего пользователя
  33. user_roles = set(group.name for group in request.user.groups.all())
  34. is_superuser = request.user.is_superuser
  35. menu_items = []
  36. # Добавляем только те страницы к которым должен быть доступ
  37. for item in menu:
  38. if not item.get('roles') or is_superuser or set(item['roles']) & set(user_roles):
  39. menu_items.append(item)
  40. base_context = {
  41. "title":page_context['title'],
  42. 'url_path':resolve(request.path_info).url_name,
  43. 'menu':menu_items
  44. }
  45. context = dict(list(base_context.items()) + list(page_context.items()))
  46. return context