From d084ab08cec99c5a9aeaedb36717dea8080fc01b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Thu, 25 Jun 2015 08:10:30 +0200 Subject: [PATCH] adapt manage/menu.json to return pratic links (#7676) --- src/authentic2_pratic/urls.py | 1 + src/authentic2_pratic/views.py | 38 ++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/src/authentic2_pratic/urls.py b/src/authentic2_pratic/urls.py index 0ec644f..133441f 100644 --- a/src/authentic2_pratic/urls.py +++ b/src/authentic2_pratic/urls.py @@ -49,6 +49,7 @@ urlpatterns = patterns('', url('^manage/collectivities/$', views.collectivities, name='a2-pratic-collectivities'), url('^manage/collectivities/add/$', views.collectivity_add, name='a2-pratic-collectivity-add'), url('^manage/collectivities/(?P\d+)/', include(collectivity_urlpatterns)), + url('^manage/menu.json$', views.menu_json), url('^services.json$', views.agent_homepage_jsonp, name='auth_homepage_jsonp'), url('^user_info/$', views.user_info), ) diff --git a/src/authentic2_pratic/views.py b/src/authentic2_pratic/views.py index 4f741c4..189f87b 100644 --- a/src/authentic2_pratic/views.py +++ b/src/authentic2_pratic/views.py @@ -7,6 +7,7 @@ from django.contrib.auth.views import redirect_to_login from django.contrib.auth.decorators import login_required from django.db.models.query import Q from django.core.urlresolvers import reverse, reverse_lazy +from django.utils.encoding import force_text from django.views.generic import (TemplateView, UpdateView, CreateView, DeleteView) @@ -444,3 +445,40 @@ def agent_homepage_jsonp(request): 'authentication_levels': filter(None, needed_authent.split(', ')), }) return return_json(request, data) + +@login_required +def menu_json(request): + response = HttpResponse(content_type='application/json') + menu_entries = [] + if request.user.is_superuser: + menu_entries.append({ + 'label': force_text(_('Collectivities')), + 'slug': 'roles', + 'url': request.build_absolute_uri(reverse('a2-pratic-collectivities')) + }) + menu_entries.append({ + 'label': force_text(_('Services')), + 'slug': 'services', + 'url': request.build_absolute_uri(reverse('a2-pratic-services')) + }) + elif request.user.is_admin: + kwargs = {'collectivity_pk': request.user.collectivity.pk} + menu_entries.append({ + 'label': force_text(_('Agents')), + 'slug': 'users', + 'url': request.build_absolute_uri( + reverse('a2-pratic-users', kwargs=kwargs)) + }) + menu_entries.append({ + 'label': force_text(_('Services')), + 'slug': 'services', + 'url': request.build_absolute_uri( + reverse('a2-pratic-service-instances', kwargs=kwargs)) + }) + menu_entries.append({ + 'label': force_text(_('Accesses')), + 'slug': 'security', + 'url': request.build_absolute_uri( + reverse('a2-pratic-accesses', kwargs=kwargs)) + }) + return return_json(request, menu_entries)