Skip to content

Commit

Permalink
[#2939] Api slugs no forms dependency
Browse files Browse the repository at this point in the history
  • Loading branch information
tobes committed Oct 9, 2012
1 parent cf2a404 commit b3f7d55
Showing 1 changed file with 15 additions and 3 deletions.
18 changes: 15 additions & 3 deletions ckan/controllers/api.py
Expand Up @@ -18,7 +18,6 @@
import ckan.lib.navl.dictization_functions
import ckan.lib.jsonp as jsonp
import ckan.lib.munge as munge
import ckan.forms.common as common


log = logging.getLogger(__name__)
Expand Down Expand Up @@ -639,16 +638,29 @@ def convert_to_dict(user):
return out

def is_slug_valid(self):

def package_exists(val):
if model.Session.query(model.Package) \
.autoflush(False).filter_by(name=val).count():
return True
return False

def group_exists(val):
if model.Session.query(model.Group) \
.autoflush(False).filter_by(name=val).count():
return True
return False

slug = request.params.get('slug') or ''
slugtype = request.params.get('type') or ''
# TODO: We need plugins to be able to register new disallowed names
disallowed = ['new', 'edit', 'search']
if slugtype == u'package':
response_data = dict(valid=not bool(common.package_exists(slug)
response_data = dict(valid=not (package_exists(slug)
or slug in disallowed))
return self._finish_ok(response_data)
if slugtype == u'group':
response_data = dict(valid=not bool(common.group_exists(slug) or
response_data = dict(valid=not (group_exists(slug) or
slug in disallowed))
return self._finish_ok(response_data)
return self._finish_bad_request('Bad slug type: %s' % slugtype)
Expand Down

0 comments on commit b3f7d55

Please sign in to comment.