[Erp5-report] r18644 - /erp5/trunk/products/ERP5Form/MultiRelationField.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Jan 9 17:32:44 CET 2008
Author: romain
Date: Wed Jan 9 17:32:43 2008
New Revision: 18644
URL: http://svn.erp5.org?rev=18644&view=rev
Log:
Do not propose to user to add new objects, if he doesn't have the permission to
do it.
This should not have impact on performance, as this menu is rarely displayed.
Modified:
erp5/trunk/products/ERP5Form/MultiRelationField.py
Modified: erp5/trunk/products/ERP5Form/MultiRelationField.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/MultiRelationField.py?rev=18644&r1=18643&r2=18644&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/MultiRelationField.py (original)
+++ erp5/trunk/products/ERP5Form/MultiRelationField.py Wed Jan 9 17:32:43 2008
@@ -39,6 +39,8 @@
from zLOG import LOG
from Products.Formulator.DummyField import fields
from Globals import get_request
+from AccessControl import Unauthorized
+from AccessControl import getSecurityManager
# Max. number of catalog result
MAX_SELECT = 30
@@ -707,16 +709,24 @@
menu_item_list.append(('', ''))
# If the length is 0, raise an error
if field.get_value('allow_creation') == 1 :
+ user = getSecurityManager().getUser()
+ getDefaultModule = field.getDefaultModule
# XXX
for portal_type in portal_type_list:
- translated_portal_type = Message(domain='erp5_ui',
- message=portal_type)
- message = Message(
- domain='erp5_ui', message='New ${portal_type}',
- mapping={'portal_type': translated_portal_type})
- menu_item_list.append((message,
- '%s%s' % (NEW_CONTENT_PREFIX,
- portal_type)))
+ try:
+ module = getDefaultModule(portal_type)
+ except ValueError:
+ pass
+ else:
+ if portal_type in module.getVisibleAllowedContentTypeList():
+ translated_portal_type = Message(domain='erp5_ui',
+ message=portal_type)
+ message = Message(
+ domain='erp5_ui', message='New ${portal_type}',
+ mapping={'portal_type': translated_portal_type})
+ menu_item_list.append((message,
+ '%s%s' % (NEW_CONTENT_PREFIX,
+ portal_type)))
REQUEST.set(relation_item_id, menu_item_list)
raising_error_needed = 1
raising_error_value = 'relation_result_empty'
More information about the Erp5-report
mailing list