From 881aa16c09287bdedb9331dcadb91c3a4e6ad511 Mon Sep 17 00:00:00 2001 From: Toby Date: Thu, 23 Feb 2012 16:41:12 +0000 Subject: [PATCH] nicer import of ckan.logic in logic.actions.get --- ckan/logic/action/get.py | 103 +++++++++++++++++++-------------------- 1 file changed, 51 insertions(+), 52 deletions(-) diff --git a/ckan/logic/action/get.py b/ckan/logic/action/get.py index edd56409190..773a27b400a 100644 --- a/ckan/logic/action/get.py +++ b/ckan/logic/action/get.py @@ -7,8 +7,7 @@ import ckan from ckan.lib.base import _ -from ckan.logic import NotFound, ParameterError, ValidationError -from ckan.logic import check_access +from ckan import logic from ckan.model import misc from ckan.plugins import (PluginImplementations, IGroupController, @@ -52,7 +51,7 @@ def _package_list_with_resources(context, package_revision_list): return package_list def site_read(context,data_dict=None): - check_access('site_read',context,data_dict) + logic.check_access('site_read',context,data_dict) return True def package_list(context, data_dict): @@ -63,7 +62,7 @@ def package_list(context, data_dict): api = context.get("api_version", '1') ref_package_by = 'id' if api == '2' else 'name' - check_access('package_list', context, data_dict) + logic.check_access('package_list', context, data_dict) query = model.Session.query(model.PackageRevision) query = query.filter(model.PackageRevision.state=='active') @@ -77,7 +76,7 @@ def current_package_list_with_resources(context, data_dict): user = context["user"] limit = data_dict.get("limit") - check_access('current_package_list_with_resources', context, data_dict) + logic.check_access('current_package_list_with_resources', context, data_dict) query = model.Session.query(model.PackageRevision) query = query.filter(model.PackageRevision.state=='active') @@ -93,7 +92,7 @@ def revision_list(context, data_dict): model = context['model'] - check_access('revision_list', context, data_dict) + logic.check_access('revision_list', context, data_dict) revs = model.Session.query(model.Revision).all() return [rev.id for rev in revs] @@ -103,9 +102,9 @@ def package_revision_list(context, data_dict): id = data_dict["id"] pkg = model.Package.get(id) if pkg is None: - raise NotFound + raise logic.NotFound - check_access('package_revision_list',context, data_dict) + logic.check_access('package_revision_list',context, data_dict) revision_dicts = [] for revision, object_revisions in pkg.all_related_revisions: @@ -123,10 +122,10 @@ def group_list(context, data_dict): ref_group_by = 'id' if api == '2' else 'name'; order_by = data_dict.get('order_by', 'name') if order_by not in set(('name', 'packages')): - raise ParameterError('"order_by" value %r not implemented.' % order_by) + raise logic.ParameterError('"order_by" value %r not implemented.' % order_by) all_fields = data_dict.get('all_fields',None) - check_access('group_list',context, data_dict) + logic.check_access('group_list',context, data_dict) query = model.Session.query(model.Group).join(model.GroupRevision) query = query.filter(model.GroupRevision.state=='active') @@ -159,7 +158,7 @@ def group_list_authz(context, data_dict): user = context['user'] available_only = data_dict.get('available_only',False) - check_access('group_list_authz',context, data_dict) + logic.check_access('group_list_authz',context, data_dict) query = Authorizer().authorized_query(user, model.Group, model.Action.EDIT) groups = set(query.all()) @@ -176,9 +175,9 @@ def group_revision_list(context, data_dict): id = data_dict['id'] group = model.Group.get(id) if group is None: - raise NotFound + raise logic.NotFound - check_access('group_revision_list',context, data_dict) + logic.check_access('group_revision_list',context, data_dict) revision_dicts = [] for revision, object_revisions in group.all_related_revisions: @@ -190,7 +189,7 @@ def group_revision_list(context, data_dict): def licence_list(context, data_dict): model = context["model"] - check_access('licence_list',context, data_dict) + logic.check_access('licence_list',context, data_dict) license_register = model.Package.get_license_register() licenses = license_register.values() @@ -217,7 +216,7 @@ def tag_list(context, data_dict): query = query.strip() all_fields = data_dict.get('all_fields', None) - check_access('tag_list', context, data_dict) + logic.check_access('tag_list', context, data_dict) if query: tags = _tag_search(context, data_dict) @@ -240,7 +239,7 @@ def user_list(context, data_dict): model = context['model'] user = context['user'] - check_access('user_list',context, data_dict) + logic.check_access('user_list',context, data_dict) q = data_dict.get('q','') order_by = data_dict.get('order_by','name') @@ -309,16 +308,16 @@ def package_relationships_list(context, data_dict): pkg1 = model.Package.get(id) pkg2 = None if not pkg1: - raise NotFound('First package named in request was not found.') + raise logic.NotFound('First package named in request was not found.') if id2: pkg2 = model.Package.get(id2) if not pkg2: - raise NotFound('Second package named in address was not found.') + raise logic.NotFound('Second package named in address was not found.') if rel == 'relationships': rel = None - check_access('package_relationships_list',context, data_dict) + logic.check_access('package_relationships_list',context, data_dict) # TODO: How to handle this object level authz? relationships = Authorizer().\ @@ -326,7 +325,7 @@ def package_relationships_list(context, data_dict): user, pkg1, pkg2, rel, model.Action.READ) if rel and not relationships: - raise NotFound('Relationship "%s %s %s" not found.' + raise logic.NotFound('Relationship "%s %s %s" not found.' % (id, rel, id2)) relationship_dicts = [rel.as_dict(pkg1, ref_package_by=ref_package_by) @@ -345,9 +344,9 @@ def package_show(context, data_dict): context['package'] = pkg if pkg is None: - raise NotFound + raise logic.NotFound - check_access('package_show', context, data_dict) + logic.check_access('package_show', context, data_dict) package_dict = package_dictize(pkg, context) @@ -365,9 +364,9 @@ def resource_show(context, data_dict): context['resource'] = resource if not resource: - raise NotFound + raise logic.NotFound - check_access('resource_show', context, data_dict) + logic.check_access('resource_show', context, data_dict) return resource_dictize(resource, context) @@ -379,7 +378,7 @@ def revision_show(context, data_dict): rev = model.Session.query(model.Revision).get(id) if rev is None: - raise NotFound + raise logic.NotFound rev_dict = model.revision_as_dict(rev, include_packages=True, ref_package_by=ref_package_by) return rev_dict @@ -396,9 +395,9 @@ def group_show(context, data_dict): context['group'] = group if group is None: - raise NotFound + raise logic.NotFound - check_access('group_show',context, data_dict) + logic.check_access('group_show',context, data_dict) group_dict = group_dictize(group, context) @@ -419,9 +418,9 @@ def group_package_show(context, data_dict): group = model.Group.get(id) context['group'] = group if group is None: - raise NotFound + raise logic.NotFound - check_access('group_show', context, data_dict) + logic.check_access('group_show', context, data_dict) query = model.Session.query(model.PackageRevision)\ .filter(model.PackageRevision.state=='active')\ @@ -453,9 +452,9 @@ def tag_show(context, data_dict): context['tag'] = tag if tag is None: - raise NotFound + raise logic.NotFound - check_access('tag_show',context, data_dict) + logic.check_access('tag_show',context, data_dict) tag_dict = tag_dictize(tag,context) @@ -479,13 +478,13 @@ def user_show(context, data_dict): user_obj = model.User.get(id) context['user_obj'] = user_obj if user_obj is None: - raise NotFound + raise logic.NotFound elif provided_user: context['user_obj'] = user_obj = provided_user else: - raise NotFound + raise logic.NotFound - check_access('user_show',context, data_dict) + logic.check_access('user_show',context, data_dict) user_dict = user_dictize(user_obj,context) @@ -520,7 +519,7 @@ def user_show(context, data_dict): def package_show_rest(context, data_dict): - check_access('package_show_rest',context, data_dict) + logic.check_access('package_show_rest',context, data_dict) package_show(context, data_dict) @@ -536,7 +535,7 @@ def package_show_rest(context, data_dict): def group_show_rest(context, data_dict): - check_access('group_show_rest',context, data_dict) + logic.check_access('group_show_rest',context, data_dict) group_show(context, data_dict) api = context.get('api_version') or '1' @@ -551,7 +550,7 @@ def group_show_rest(context, data_dict): def tag_show_rest(context, data_dict): - check_access('tag_show_rest',context, data_dict) + logic.check_access('tag_show_rest',context, data_dict) tag_show(context, data_dict) api = context.get('api_version') or '1' @@ -575,7 +574,7 @@ def package_autocomplete(context, data_dict): like_q = u"%s%%" % q - check_access('package_autocomplete', context, data_dict) + logic.check_access('package_autocomplete', context, data_dict) query = model.Session.query(model.PackageRevision) query = query.filter(model.PackageRevision.state=='active') @@ -605,7 +604,7 @@ def format_autocomplete(context, data_dict): session = context['session'] user = context['user'] - check_access('format_autocomplete', context, data_dict) + logic.check_access('format_autocomplete', context, data_dict) q = data_dict.get('q', None) if not q: @@ -636,7 +635,7 @@ def user_autocomplete(context, data_dict): if not q: return [] - check_access('user_autocomplete', context, data_dict) + logic.check_access('user_autocomplete', context, data_dict) limit = data_dict.get('limit',20) @@ -657,7 +656,7 @@ def package_search(context, data_dict): session = context['session'] user = context['user'] - check_access('package_search', context, data_dict) + logic.check_access('package_search', context, data_dict) # check if some extension needs to modify the search params for item in PluginImplementations(IPackageController): @@ -793,7 +792,7 @@ def _tag_search(context, data_dict): # Filter by vocabulary. vocab = model.Vocabulary.get(data_dict['vocabulary_id']) if not vocab: - raise NotFound + raise logic.NotFound q = q.filter(model.Tag.vocabulary_id == vocab.id) else: # If no vocabulary_name in data dict then show free tags only. @@ -846,7 +845,7 @@ def tag_autocomplete(context, data_dict): belonging to the given vocabulary (id or name) will be searched instead. ''' - check_access('tag_autocomplete', context, data_dict) + logic.check_access('tag_autocomplete', context, data_dict) matching_tags = _tag_search(context, data_dict) if matching_tags: return [tag.name for tag in matching_tags] @@ -871,9 +870,9 @@ def task_status_show(context, data_dict): context['task_status'] = task_status if task_status is None: - raise NotFound + raise logic.NotFound - check_access('task_status_show', context, data_dict) + logic.check_access('task_status_show', context, data_dict) task_status_dict = task_status_dictize(task_status, context) return task_status_dict @@ -887,7 +886,7 @@ def term_translation_show(context, data_dict): q = select([trans_table]) if 'term' not in data_dict: - raise ValidationError({'term': 'term not it data'}) + raise logic.ValidationError({'term': 'term not it data'}) q = q.where(trans_table.c.term == data_dict['term']) @@ -905,7 +904,7 @@ def term_translation_show(context, data_dict): return results def get_site_user(context, data_dict): - check_access('get_site_user', context, data_dict) + logic.check_access('get_site_user', context, data_dict) model = context['model'] site_id = config.get('ckan.site_id', 'ckan_site_user') user = model.User.get(site_id) @@ -945,7 +944,7 @@ def roles_show(context, data_dict): elif isinstance(domain_object, model.AuthorizationGroup): query = session.query(model.AuthorizationGroupRole).join('authorization_group') else: - raise NotFound(_('Cannot list entity of this type: %s') % type(domain_object).__name__) + raise logic.NotFound(_('Cannot list entity of this type: %s') % type(domain_object).__name__) # Filter by the domain_obj query = query.filter_by(id=domain_object.id) @@ -953,12 +952,12 @@ def roles_show(context, data_dict): if user_ref: user = model.User.get(user_ref) if not user: - raise NotFound(_('unknown user:') + repr(user_ref)) + raise logic.NotFound(_('unknown user:') + repr(user_ref)) query = query.join('user').filter_by(id=user.id) if authgroup_ref: authgroup = model.AuthorizationGroup.get(authgroup_ref) if not authgroup: - raise NotFound('unknown authorization group:' + repr(authgroup_ref)) + raise logic.NotFound('unknown authorization group:' + repr(authgroup_ref)) # we need an alias as we join to model.AuthorizationGroup table twice ag = aliased(model.AuthorizationGroup) query = query.join(ag, model.AuthorizationGroupRole.authorized_group) \ @@ -999,10 +998,10 @@ def vocabulary_show(context, data_dict): model = context['model'] vocab_id = data_dict.get('id') if not vocab_id: - raise ValidationError({'id': _('id not in data')}) + raise logic.ValidationError({'id': _('id not in data')}) vocabulary = model.vocabulary.Vocabulary.get(vocab_id) if vocabulary is None: - raise NotFound(_('Could not find vocabulary "%s"') % vocab_id) + raise logic.NotFound(_('Could not find vocabulary "%s"') % vocab_id) vocabulary_dict = vocabulary_dictize(vocabulary, context) return vocabulary_dict