Mercurial > hg > uploader
comparison uploader/dispatcher.py @ 1:a02c4fcd7001
* optionally require auth
* give a real version
author | k0s <k0scist@gmail.com> |
---|---|
date | Sun, 27 Dec 2009 13:29:27 -0500 |
parents | 827f7577f940 |
children | 0b5fce452087 |
comparison
equal
deleted
inserted
replaced
0:827f7577f940 | 1:a02c4fcd7001 |
---|---|
7 from webob import Request, exc | 7 from webob import Request, exc |
8 | 8 |
9 class Dispatcher(object): | 9 class Dispatcher(object): |
10 | 10 |
11 ### class level variables | 11 ### class level variables |
12 defaults = { 'directory': None} | 12 defaults = { 'directory': None, |
13 'auth': 'False' } | |
13 | 14 |
14 def __init__(self, **kw): | 15 def __init__(self, **kw): |
15 for key in self.defaults: | 16 for key in self.defaults: |
16 setattr(self, key, kw.get(key, self.defaults[key])) | 17 setattr(self, key, kw.get(key, self.defaults[key])) |
17 self.handlers = [ Get, Post ] | 18 self.handlers = [ Get, Post ] |
18 assert os.path.exists(self.directory) | 19 assert os.path.exists(self.directory) |
20 self.auth = self.auth.lower() == 'true' | |
19 | 21 |
20 ### methods dealing with HTTP | 22 ### methods dealing with HTTP |
21 def __call__(self, environ, start_response): | 23 def __call__(self, environ, start_response): |
22 request = Request(environ) | 24 request = Request(environ) |
25 if self.auth and not request.remote_user: | |
26 return exc.HTTPUnauthorized()(environ, start_response) | |
23 for h in self.handlers: | 27 for h in self.handlers: |
24 if h.match(request): | 28 if h.match(request): |
25 handler = h(self, request) | 29 handler = h(self, request) |
26 break | 30 break |
27 else: | 31 else: |