Disable the Tags menu when the user doesn't have the tag create permission or the tag view access for any tag. Disable the Cabinets menu when the user doesn't have the cabinet create permission or the cabinet view permission for any cabinet.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
Roberto Rosario
2018-08-22 02:24:54 -04:00
parent 66cf86e816
commit b5215b40c3
5 changed files with 30 additions and 8 deletions

View File

@@ -76,6 +76,11 @@
permission which allows viewing an index definiton on the
setup menu.
- Add support to conditionally disable menus.
- Disable the Tags menu when the user doesn't have the
tag create permission or the tag view access for any tag.
- Disable the Cabinets menu when the user doesn't have the
cabinet create permission or the cabinet view permission
for any cabinet.
3.0.1 (2018-07-08)
=================

View File

@@ -6,7 +6,7 @@ from django.utils.translation import ugettext_lazy as _
from acls.links import link_acl_list
from documents.permissions import permission_document_view
from navigation import Link
from navigation import Link, get_cascade_condition
from .icons import icon_cabinet_create, icon_cabinet_list
from .permissions import (
@@ -68,7 +68,11 @@ link_cabinet_edit = Link(
view='cabinets:cabinet_edit'
)
link_cabinet_list = Link(
icon_class=icon_cabinet_list, text=_('All'), view='cabinets:cabinet_list'
condition=get_cascade_condition(
app_label='cabinets', model_name='Cabinet',
object_permission=permission_cabinet_view,
), icon_class=icon_cabinet_list, text=_('All'),
view='cabinets:cabinet_list'
)
link_cabinet_view = Link(
args='object.pk', permissions=(permission_cabinet_view,), text=_('Details'),

View File

@@ -2,10 +2,15 @@ from __future__ import unicode_literals
from django.utils.translation import ugettext_lazy as _
from navigation import Menu
from navigation import Menu, get_cascade_condition
from .icons import icon_cabinet_list
from .permissions import permission_cabinet_create, permission_cabinet_view
menu_cabinets = Menu(
icon_class=icon_cabinet_list, label=_('Cabinets'), name='cabinets menu'
condition=get_cascade_condition(
app_label='cabinets', model_name='Cabinet',
object_permission=permission_cabinet_view,
view_permission=permission_cabinet_create,
), icon_class=icon_cabinet_list, label=_('Cabinets'), name='cabinets menu'
)

View File

@@ -2,7 +2,7 @@ from __future__ import unicode_literals
from django.utils.translation import ugettext_lazy as _
from navigation import Link
from navigation import Link, get_cascade_condition
from .icons import (
icon_tag_create, icon_tag_document_list, icon_tag_list
@@ -45,7 +45,10 @@ link_tag_document_list = Link(
view='tags:document_tags',
)
link_tag_list = Link(
icon_class=icon_tag_list, text=_('All'), view='tags:tag_list'
condition=get_cascade_condition(
app_label='tags', model_name='Tag',
object_permission=permission_tag_view,
), icon_class=icon_tag_list, text=_('All'), view='tags:tag_list'
)
link_tag_multiple_delete = Link(
permissions=(permission_tag_delete,), text=_('Delete'),

View File

@@ -2,10 +2,15 @@ from __future__ import unicode_literals
from django.utils.translation import ugettext_lazy as _
from navigation import Menu
from navigation import Menu, get_cascade_condition
from .icons import icon_menu_tags
from .permissions import permission_tag_create, permission_tag_view
menu_tags = Menu(
icon_class=icon_menu_tags, label=_('Tags'), name='tags menu'
condition=get_cascade_condition(
app_label='tags', model_name='Tag',
object_permission=permission_tag_view,
view_permission=permission_tag_create,
), icon_class=icon_menu_tags, label=_('Tags'), name='tags menu'
)