Skip to content

Commit

Permalink
nicer import of ckan.logic in logic.actions.get
Browse files Browse the repository at this point in the history
  • Loading branch information
tobes committed Feb 23, 2012
1 parent 8c9a1ec commit 881aa16
Showing 1 changed file with 51 additions and 52 deletions.
103 changes: 51 additions & 52 deletions ckan/logic/action/get.py
Expand Up @@ -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,
Expand Down Expand Up @@ -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):
Expand All @@ -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')
Expand All @@ -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')
Expand All @@ -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]
Expand All @@ -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:
Expand All @@ -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')
Expand Down Expand Up @@ -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())
Expand 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:
Expand All @@ -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()
Expand All @@ -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)
Expand All @@ -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')
Expand Down Expand Up @@ -309,24 +308,24 @@ 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().\
authorized_package_relationships(\
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)
Expand All @@ -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)

Expand All @@ -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)

Expand All @@ -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
Expand All @@ -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)

Expand All @@ -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')\
Expand Down Expand Up @@ -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)

Expand All @@ -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)

Expand Down Expand Up @@ -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)

Expand All @@ -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'
Expand All @@ -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'
Expand All @@ -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')
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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)

Expand All @@ -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):
Expand Down Expand Up @@ -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.
Expand Down Expand Up @@ -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]
Expand All @@ -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
Expand All @@ -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'])

Expand All @@ -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)
Expand Down Expand Up @@ -945,20 +944,20 @@ 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)

# Filter by the user / authorized_group
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) \
Expand Down Expand Up @@ -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

Expand Down

0 comments on commit 881aa16

Please sign in to comment.