diff options
Diffstat (limited to 'ishtar/furnitures/menus.py')
| -rw-r--r-- | ishtar/furnitures/menus.py | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/ishtar/furnitures/menus.py b/ishtar/furnitures/menus.py index 2e15f6930..24086d3a3 100644 --- a/ishtar/furnitures/menus.py +++ b/ishtar/furnitures/menus.py @@ -23,6 +23,8 @@ Menus from django.utils.translation import ugettext_lazy as _ +import models + class SectionItem: def __init__(self, idx, label, childs=[]): self.idx = idx @@ -31,9 +33,10 @@ class SectionItem: self.available = False class MenuItem: - def __init__(self, idx, label, access_controls=[]): + def __init__(self, idx, label, model=None, access_controls=[]): self.idx = idx self.label = label + self.model = model self.access_controls = access_controls self.available = False @@ -41,7 +44,7 @@ class MenuItem: if not self.access_controls: return True for access_control in self.access_controls: - if user.has_perm('furnitures.' + access_control): + if user.has_perm('furnitures.' + access_control, self.model): return True return False @@ -49,7 +52,7 @@ class MenuItem: if not self.access_controls: return True for access_control in self.access_controls: - if user.has_perm('furnitures.' + access_control, obj): + if user.has_perm('furnitures.' + access_control, self.model, obj): return True return False @@ -61,26 +64,34 @@ class Menu: SectionItem('administration', _(u"Administration"), childs=[ MenuItem('person_creation', _(u"Person creation"), + model=models.Person, access_controls=['add_person', 'add_own_person']), MenuItem('person_modification', _(u"Person modification"), + model=models.Person, access_controls=['change_person', 'change_own_person']), MenuItem('account_management', _(u"Account management"), + model=models.IshtarUser, access_controls=['add_ishtaruser',]), ]), SectionItem('file_management', _(u"File management"), childs=[ MenuItem('file_creation', _(u"File creation"), + model=models.File, access_controls=['add_file', 'add_own_file']), MenuItem('file_modification', _(u"File modification"), + model=models.File, access_controls=['change_file', 'change_own_file']), MenuItem('file_deletion', _(u"File deletion"), + model=models.File, access_controls=['delete_file', 'delete_own_file']), ]), SectionItem('operation_management', _(u"Operation management"), childs=[ MenuItem('operation_creation', _(u"Operation creation"), + model=models.Operation, access_controls=['add_operation', 'add_own_operation']), MenuItem('operation_modification', _(u"Operation modification"), + model=models.Operation, access_controls=['change_operation', 'change_own_operation']), ]), ] |
