summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2008-07-09 02:10:28 +0000
committerChris McDonough <chrism@agendaless.com>2008-07-09 02:10:28 +0000
commit6a85c5dbb57c1647f96ca7943c0127b3e1ad5d93 (patch)
tree5c4546ecb57e0d7448bd95c655a2bb58c0e08371
parent627152500bc9621a9dde766ae429d6e717043df9 (diff)
downloadpyramid-6a85c5dbb57c1647f96ca7943c0127b3e1ad5d93.tar.gz
pyramid-6a85c5dbb57c1647f96ca7943c0127b3e1ad5d93.tar.bz2
pyramid-6a85c5dbb57c1647f96ca7943c0127b3e1ad5d93.zip
Provide a policy for doing redirects.
-rw-r--r--repoze/bfg/router.py10
-rw-r--r--repoze/bfg/sampleapp/run.py6
2 files changed, 11 insertions, 5 deletions
diff --git a/repoze/bfg/router.py b/repoze/bfg/router.py
index efc7406b6..ad8549f4f 100644
--- a/repoze/bfg/router.py
+++ b/repoze/bfg/router.py
@@ -15,8 +15,9 @@ from repoze.bfg.interfaces import IRequest
_marker = ()
class Router:
- def __init__(self, root_policy):
+ def __init__(self, root_policy, default_redirects=True):
self.root_policy = root_policy
+ self.default_redirects = True
def __call__(self, environ, start_response):
request = Request(environ)
@@ -25,7 +26,7 @@ class Router:
path = environ.get('PATH_INFO', '/')
traverser = getMultiAdapter((root, request), IPublishTraverserFactory)
context, name, subpath = traverser(path)
- if (not name) and (not path.endswith('/')):
+ if self.default_redirects and (not name) and (not path.endswith('/')):
# if this is the default view of the context, and the URL
# doesn't end in a slash, redirect to the url + '/' (so we
# don't have to play base tag games)
@@ -40,9 +41,10 @@ class Router:
app = getMultiAdapter((app, request), IWSGIApplicationFactory)
return app(environ, start_response)
-def make_app(root_policy, package=None, filename='configure.zcml'):
+def make_app(root_policy, package=None, default_redirects=True,
+ filename='configure.zcml'):
import zope.configuration.xmlconfig
zope.configuration.xmlconfig.file(filename, package=package)
- return Router(root_policy)
+ return Router(root_policy, default_redirects)
diff --git a/repoze/bfg/sampleapp/run.py b/repoze/bfg/sampleapp/run.py
index 2c7722892..5ee6a66e2 100644
--- a/repoze/bfg/sampleapp/run.py
+++ b/repoze/bfg/sampleapp/run.py
@@ -3,7 +3,7 @@ from repoze.bfg.sampleapp.models import Blog
from repoze.bfg.sampleapp.models import BlogEntry
from repoze.bfg.router import make_app
-if __name__ == '__main__':
+def main():
blog = Blog('Sample blog')
blog['sample'] = BlogEntry('sample', 'Sample Blog Entry',
'<p>This is a sample blog entry</p>',
@@ -18,3 +18,7 @@ if __name__ == '__main__':
## )
from paste import httpserver
httpserver.serve(app, host='0.0.0.0', port='5432')
+
+if __name__ == '__main__':
+ main()
+