]> git.llucax.com Git - software/sercom.git/commitdiff
filtro el combo en base a los permisos.
authorRicardo Markiewicz <rmarkie@fi.uba.ar>
Thu, 1 Mar 2007 07:05:35 +0000 (07:05 +0000)
committerRicardo Markiewicz <rmarkie@fi.uba.ar>
Thu, 1 Mar 2007 07:05:35 +0000 (07:05 +0000)
Muy primitivo porque no tenemos todavia mucho de permisos.
(y no, no puedo dormir :S)

sercom/menu.py

index 965e91175b99a7280f3abc886032f3a3b8e054fe..59c527f50db0a837e884a12d0ad2c03121cc9174 100644 (file)
@@ -1,13 +1,17 @@
 
 from turbogears import url
 from turbogears.controllers import Controller
+from turbogears import identity
 
 class Menu:
     def __init__(self, base):
-        # Armo la lista de subcontrollers
+        self.base = base
         self.items = filter(lambda i: isinstance(getattr(base, i), Controller), base.__dict__)
         self.items.sort()
 
+    def _check(self, c):
+        return c.require.eval_with_object(identity.current)
+
     def __repr__(self):
         option = u"""<option value="%s">%s</option>" """
         template = """
@@ -18,8 +22,9 @@ class Menu:
                        </select>
                </div>
         """
-        s = ''
+        s = option % ('', '-----')
         for i in self.items:
-            s += option % (url('/' + i), i.capitalize().replace('_', ' '))
+            if self._check(getattr(self.base, i)):
+                s += option % (url('/' + i), i.capitalize().replace('_', ' '))
         return template % s