Mercurial > hg > TagInTheMiddle
annotate taginthemiddle/example.py @ 19:57ca873ed9bf default tip
make this a pluggable system and start reorging infrastructure for that
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Tue, 25 May 2010 07:48:53 -0700 |
parents | 3bf478cb3166 |
children |
rev | line source |
---|---|
5 | 1 from middleware import Tagger |
0
1c5cbbde4299
initial commit of middleware tagging; doesnt yet work
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2 from paste.httpexceptions import HTTPExceptionHandler |
1c5cbbde4299
initial commit of middleware tagging; doesnt yet work
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3 from paste.urlparser import StaticURLParser |
1c5cbbde4299
initial commit of middleware tagging; doesnt yet work
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4 from pkg_resources import resource_filename |
1c5cbbde4299
initial commit of middleware tagging; doesnt yet work
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
5 |
18
3bf478cb3166
make a BogusAuth class for testing purposes
Jeff Hammel <jhammel@mozilla.com>
parents:
5
diff
changeset
|
6 class BogusAuth(object): |
3bf478cb3166
make a BogusAuth class for testing purposes
Jeff Hammel <jhammel@mozilla.com>
parents:
5
diff
changeset
|
7 """ |
3bf478cb3166
make a BogusAuth class for testing purposes
Jeff Hammel <jhammel@mozilla.com>
parents:
5
diff
changeset
|
8 a bogus authenticator class |
3bf478cb3166
make a BogusAuth class for testing purposes
Jeff Hammel <jhammel@mozilla.com>
parents:
5
diff
changeset
|
9 """ |
3bf478cb3166
make a BogusAuth class for testing purposes
Jeff Hammel <jhammel@mozilla.com>
parents:
5
diff
changeset
|
10 |
3bf478cb3166
make a BogusAuth class for testing purposes
Jeff Hammel <jhammel@mozilla.com>
parents:
5
diff
changeset
|
11 def __init__(self, app, user): |
3bf478cb3166
make a BogusAuth class for testing purposes
Jeff Hammel <jhammel@mozilla.com>
parents:
5
diff
changeset
|
12 self.app = app |
3bf478cb3166
make a BogusAuth class for testing purposes
Jeff Hammel <jhammel@mozilla.com>
parents:
5
diff
changeset
|
13 self.user = user |
0
1c5cbbde4299
initial commit of middleware tagging; doesnt yet work
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
14 |
18
3bf478cb3166
make a BogusAuth class for testing purposes
Jeff Hammel <jhammel@mozilla.com>
parents:
5
diff
changeset
|
15 def call(self, environ, start_response): |
3bf478cb3166
make a BogusAuth class for testing purposes
Jeff Hammel <jhammel@mozilla.com>
parents:
5
diff
changeset
|
16 environ['REMOTE_USER'] = self.user |
3bf478cb3166
make a BogusAuth class for testing purposes
Jeff Hammel <jhammel@mozilla.com>
parents:
5
diff
changeset
|
17 return self.app(environ, start_response) |
3bf478cb3166
make a BogusAuth class for testing purposes
Jeff Hammel <jhammel@mozilla.com>
parents:
5
diff
changeset
|
18 |
3bf478cb3166
make a BogusAuth class for testing purposes
Jeff Hammel <jhammel@mozilla.com>
parents:
5
diff
changeset
|
19 def factory(global_conf, **app_conf): |
3bf478cb3166
make a BogusAuth class for testing purposes
Jeff Hammel <jhammel@mozilla.com>
parents:
5
diff
changeset
|
20 """create an example view and wrap it in tagging middleware""" |
3bf478cb3166
make a BogusAuth class for testing purposes
Jeff Hammel <jhammel@mozilla.com>
parents:
5
diff
changeset
|
21 |
3bf478cb3166
make a BogusAuth class for testing purposes
Jeff Hammel <jhammel@mozilla.com>
parents:
5
diff
changeset
|
22 keystr = 'tags.' |
3bf478cb3166
make a BogusAuth class for testing purposes
Jeff Hammel <jhammel@mozilla.com>
parents:
5
diff
changeset
|
23 args = dict([(key.split(keystr, 1)[-1], value) |
3bf478cb3166
make a BogusAuth class for testing purposes
Jeff Hammel <jhammel@mozilla.com>
parents:
5
diff
changeset
|
24 for key, value in app_conf.items() |
3bf478cb3166
make a BogusAuth class for testing purposes
Jeff Hammel <jhammel@mozilla.com>
parents:
5
diff
changeset
|
25 if key.startswith(keystr) ]) |
3bf478cb3166
make a BogusAuth class for testing purposes
Jeff Hammel <jhammel@mozilla.com>
parents:
5
diff
changeset
|
26 app = StaticURLParser(app_conf['directory']) |
3bf478cb3166
make a BogusAuth class for testing purposes
Jeff Hammel <jhammel@mozilla.com>
parents:
5
diff
changeset
|
27 tagger = Tagger(app, **args) |
3bf478cb3166
make a BogusAuth class for testing purposes
Jeff Hammel <jhammel@mozilla.com>
parents:
5
diff
changeset
|
28 return HTTPExceptionHandler(BogusAuth(tagger, 'foo')) |
0
1c5cbbde4299
initial commit of middleware tagging; doesnt yet work
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
29 |