Форум сайта python.su
Никогда этим не заморачивался, а тут вдруг понадобилось.
Что-то не возьму в толк как осуществить,
есть такое
{% menu "Здания" "/s\d+/building/.*" building-lst org_id %}
{% menu "Группы" "/s\d+/group/.*" group-lst org_id %}
{% menu "Персонал" "/s\d+/staff/.*" staff-lst org_id %}
{% if_has_permission user 'building' %}
{% menu "Здания" "/s\d+/building/.*" building-lst org_id %}
{% endif_has_permission %}
{% if_has_permission user 'group' %}
{% menu "Группы" "/s\d+/group/.*" group-lst org_id %}
{% endif_has_permission %}
и так далее
Отредактировано (Март 2, 2012 11:40:29)
Офлайн
Офлайн
Подключаете контекст процессор django.core.context_processors.auth (обычно включен). Потом в темплейттеге menu делаете что бы он принимал контекст (takes_context=True) (найдёте по ссылке выше), и проверяете:
context.has_perm('app_menu.view_building')
как создавать пермишены читать тут:
https://docs.djangoproject.com/en/dev/topics/auth/#permissions
Можно просто каким-то своим методом проверять есть ли разрешения, т.к. у вас в темплейт-теге есть полный доступ к инстансу юзера и любым моделям
Отредактировано (Март 3, 2012 11:37:13)
Офлайн