summaryrefslogtreecommitdiff
path: root/ishtar/furnitures/menus.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar/furnitures/menus.py')
-rw-r--r--ishtar/furnitures/menus.py17
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']),
]),
]