[Erp5-report] r25699 - /erp5/trunk/products/ERP5/Tool/IntrospectionTool.py

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Feb 25 12:33:53 CET 2009


Author: jp
Date: Wed Feb 25 12:33:52 2009
New Revision: 25699

URL: http://svn.erp5.org?rev=25699&view=rev
Log:
Added module list introspection

Modified:
    erp5/trunk/products/ERP5/Tool/IntrospectionTool.py

Modified: erp5/trunk/products/ERP5/Tool/IntrospectionTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Tool/IntrospectionTool.py?rev=25699&r1=25698&r2=25699&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Tool/IntrospectionTool.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Tool/IntrospectionTool.py [utf8] Wed Feb 25 12:33:52 2009
@@ -76,4 +76,26 @@
 
     return erp5_menu_dict
 
+  security.declareProtected('getModuleItemList', Permissions.AccessContentsInformation)
+  def getModuleItemList(self, user_name=_MARKER):
+    """
+      Returns menu items for a given user
+    """
+    portal = self.getPortalObject()
+    is_portal_manager = getToolByName(portal, 
+      'portal_membership').checkPermission(Permissions.ManagePortal, self)
+    downgrade_authenticated_user = user_name is not _MARKER and is_portal_manager
+    if downgrade_authenticated_user:
+      # downgrade to desired user
+      original_security_manager = _setSuperSecurityManager(self, erp5_user_name)
+
+    # call the method implementing it
+    erp5_module_list = portal.ERP5Site_getModuleItemList()
+
+    if downgrade_authenticated_user:
+      # restore original Security Manager
+      setSecurityManager(original_security_manager)
+
+    return erp5_module_list
+
 InitializeClass(IntrospectionTool)




More information about the Erp5-report mailing list