0001-manager-add-menu.json-entry-point-7366.patch
src/authentic2/manager/urls.py | ||
---|---|---|
63 | 63 |
url(r'^organizational-units/(?P<pk>\d+)/delete/$', ou_views.delete, |
64 | 64 |
name='a2-manager-ou-delete'), |
65 | 65 | |
66 |
# backoffice menu as json |
|
67 |
url(r'^menu.json$', views.menu_json), |
|
66 | 68 |
) |
67 | 69 |
) |
68 | 70 |
src/authentic2/manager/views.py | ||
---|---|---|
5 | 5 |
CreateView, DeleteView |
6 | 6 |
from django.views.generic.detail import SingleObjectMixin |
7 | 7 |
from django.http import HttpResponse, Http404 |
8 |
from django.utils.encoding import force_text |
|
8 | 9 |
from django.utils.translation import ugettext_lazy as _ |
9 | 10 |
from django.utils.timezone import now |
10 | 11 |
from django.core.urlresolvers import reverse |
... | ... | |
331 | 332 |
'auth.view_group', 'custom_user.view_user'] |
332 | 333 | |
333 | 334 |
homepage = HomepageView.as_view() |
335 | ||
336 | ||
337 |
def menu_json(request): |
|
338 |
response = HttpResponse(content_type='application/json') |
|
339 |
menu_entries = [] |
|
340 |
if request.user.has_perm('a2_rbac.view_organizationalunit'): |
|
341 |
menu_entries.append({ |
|
342 |
'label': force_text(_('Organizational units management')), |
|
343 |
'slug': 'organizational-units', |
|
344 |
'url': request.build_absolute_uri(reverse('a2-manager-ous')) |
|
345 |
}) |
|
346 |
if request.user.has_perm('custom_user.view_user'): |
|
347 |
menu_entries.append({ |
|
348 |
'label': force_text(_('User management')), |
|
349 |
'slug': 'users', |
|
350 |
'url': request.build_absolute_uri(reverse('a2-manager-users')) |
|
351 |
}) |
|
352 |
if request.user.has_perm('a2_rbac.view_role'): |
|
353 |
menu_entries.append({ |
|
354 |
'label': force_text(_('Roles management')), |
|
355 |
'slug': 'roles', |
|
356 |
'url': request.build_absolute_uri(reverse('a2-manager-roles')) |
|
357 |
}) |
|
358 |
json_str = json.dumps(menu_entries) |
|
359 |
for variable in ('jsonpCallback', 'callback'): |
|
360 |
if variable in request.GET: |
|
361 |
json_str = '%s(%s);' % (request.GET[variable], json_str) |
|
362 |
break |
|
363 |
response.write(json_str) |
|
364 |
return response |
|
334 |
- |