From 5c63f301ae22f6f54a62afa0d0211be3cee628cb Mon Sep 17 00:00:00 2001 From: Sean Hammond Date: Sat, 28 Jul 2012 19:41:25 +0100 Subject: [PATCH] [#2570] Fix IGroupForm check_data_dict not being called Make group_create() and group_update() call the check_data_dict() methods of IGroupForm plugins, like package_create() and package_update() do with IDatasetForm plugins. --- ckan/logic/action/create.py | 8 ++++++++ ckan/logic/action/update.py | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/ckan/logic/action/create.py b/ckan/logic/action/create.py index 507acbb7d3f..94b5f74ce32 100644 --- a/ckan/logic/action/create.py +++ b/ckan/logic/action/create.py @@ -512,6 +512,14 @@ def group_create(context, data_dict): except AttributeError: schema = group_plugin.form_to_db_schema() + if 'api_version' not in context: + # old plugins do not support passing the schema so we need + # to ensure they still work + try: + group_plugin.check_data_dict(data_dict, schema) + except TypeError: + group_plugin.check_data_dict(data_dict) + data, errors = _validate(data_dict, schema, context) log.debug('group_create validate_errs=%r user=%s group=%s data_dict=%r', errors, context.get('user'), data_dict.get('name'), data_dict) diff --git a/ckan/logic/action/update.py b/ckan/logic/action/update.py index fa5d8275e22..a06274c0714 100644 --- a/ckan/logic/action/update.py +++ b/ckan/logic/action/update.py @@ -415,6 +415,14 @@ def group_update(context, data_dict): _check_access('group_update', context, data_dict) + if 'api_version' not in context: + # old plugins do not support passing the schema so we need + # to ensure they still work + try: + group_plugin.check_data_dict(data_dict, schema) + except TypeError: + group_plugin.check_data_dict(data_dict) + data, errors = _validate(data_dict, schema, context) log.debug('group_update validate_errs=%r user=%s group=%s data_dict=%r', errors, context.get('user'),