[Erp5-report] r12894 - /erp5/trunk/products/ERP5Type/ERP5Type.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Mon Feb 19 16:40:18 CET 2007
Author: jp
Date: Mon Feb 19 16:40:10 2007
New Revision: 12894
URL: http://svn.erp5.org?rev=12894&view=rev
Log:
Added support for acquired security.
Modified:
erp5/trunk/products/ERP5Type/ERP5Type.py
Modified: erp5/trunk/products/ERP5Type/ERP5Type.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/ERP5Type.py?rev=12894&r1=12893&r2=12894&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/ERP5Type.py (original)
+++ erp5/trunk/products/ERP5Type/ERP5Type.py Mon Feb 19 16:40:10 2007
@@ -470,8 +470,6 @@
# instead of a dict or list of dicts
if category_result is None:
continue
- elif isinstance(category_result, dict):
- category_result = [category_result]
else:
raise RuntimeError, 'Script %s was not found to fetch values for'\
' base categories : %s' % (base_category_script_id,
@@ -484,19 +482,24 @@
category_result = [{}]
for role in role_text.split(';'):
- # category_result is a list of dicts that represents the resolved
- # categories we create a category_value_dict from each of these
- # dicts aggregated with category_order and statically defined
- # categories
role = role.strip()
- role_category_list = role_category_list_dict.setdefault(role, [])
- for category_dict in category_result:
- category_value_dict = {'category_order':category_order_list}
- category_value_dict.update(category_dict)
- for c in definition['category']:
- bc, value = c.split('/', 1)
- category_value_dict[bc] = value
- role_category_list.append(category_value_dict)
+ if isinstance(category_result, dict):
+ # category_result is a dict (which provide group IDs directly)
+ # which represents of mapping of roles, security group IDs
+ role_category_list_dict.setdefault(role, category_result)
+ else:
+ # category_result is a list of dicts that represents the resolved
+ # categories we create a category_value_dict from each of these
+ # dicts aggregated with category_order and statically defined
+ # categories
+ role_category_list = role_category_list_dict.setdefault(role, [])
+ for category_dict in category_result:
+ category_value_dict = {'category_order':category_order_list}
+ category_value_dict.update(category_dict)
+ for c in definition['category']:
+ bc, value = c.split('/', 1)
+ category_value_dict[bc] = value
+ role_category_list.append(category_value_dict)
# Generate security group ids from category_value_dicts
role_group_id_dict = {}
@@ -507,6 +510,11 @@
raise RuntimeError, '%s script was not found' % \
ERP5TYPE_SECURITY_GROUP_ID_GENERATION_SCRIPT
for role, value_list in role_category_list_dict.items():
+ if isinstance(value_list, dict):
+ # value_list is a dict (which provide group IDs directly)
+ # This is used by acquisition scripts
+ role_group_id_dict.setdefault(role, []).extend(value_list.get(role, []))
+ continue
role_group_dict = {}
for category_dict in value_list:
group_id = group_id_generator(**category_dict)
More information about the Erp5-report
mailing list