Switch to unified view

a/Allura/allura/controllers/rest.py b/Allura/allura/controllers/rest.py
...
...
30
from ming.utils import LazyProperty
30
from ming.utils import LazyProperty
31
31
32
from allura import model as M
32
from allura import model as M
33
from allura.lib import helpers as h
33
from allura.lib import helpers as h
34
from allura.lib import security
34
from allura.lib import security
35
from allura.lib import plugin
36
from allura.lib.exceptions import Invalid
35
37
36
log = logging.getLogger(__name__)
38
log = logging.getLogger(__name__)
37
action_logger = h.log_action(log, 'API:')
39
action_logger = h.log_action(log, 'API:')
38
40
39
class RestController(object):
41
class RestController(object):
...
...
241
    def __init__(self, neighborhood):
243
    def __init__(self, neighborhood):
242
        self._neighborhood = neighborhood
244
        self._neighborhood = neighborhood
243
245
244
    @expose()
246
    @expose()
245
    def _lookup(self, name, *remainder):
247
    def _lookup(self, name, *remainder):
246
        if not h.re_project_name.match(name):
248
        provider = plugin.ProjectRegistrationProvider.get()
249
        try:
250
            provider.shortname_validator.to_python(name, check_allowed=False, neighborhood=self._neighborhood)
251
        except Invalid as e:
247
            raise exc.HTTPNotFound, name
252
            raise exc.HTTPNotFound, name
248
        name = self._neighborhood.shortname_prefix + name
253
        name = self._neighborhood.shortname_prefix + name
249
        project = M.Project.query.get(shortname=name, neighborhood_id=self._neighborhood._id, deleted=False)
254
        project = M.Project.query.get(shortname=name, neighborhood_id=self._neighborhood._id, deleted=False)
250
        if not project: raise exc.HTTPNotFound, name
255
        if not project: raise exc.HTTPNotFound, name
251
        c.project = project
256
        c.project = project