Changeset 5743
- Timestamp:
- 11/22/08 08:26:53 (2 months ago)
- Files:
-
- trunk/tg/controllers.py (modified) (1 diff)
- trunk/tg/decorators.py (modified) (3 diffs)
- trunk/tg/__init__.py (modified) (2 diffs)
- trunk/tg/test_stack/auth_base.py (added)
- trunk/tg/test_stack/fixture (added)
- trunk/tg/test_stack/fixture/__init__.py (added)
- trunk/tg/test_stack/fixture/session (added)
- trunk/tg/test_stack/test_auth.py (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/tg/controllers.py
r5634 r5743 515 515 errors = [] 516 516 environ = pylons.request.environ 517 identity = environ.get('repoze.who.identity')518 517 if not hasattr(self, "require") or \ 519 518 self.require is None or \ 520 self.require.eval_with_ object(identity, errors):519 self.require.eval_with_environ(environ, errors): 521 520 return True 522 521 trunk/tg/decorators.py
r5544 r5743 10 10 from decorator import decorator 11 11 12 from webob.exc import HTTPUnauthorized 12 13 from webob.multidict import MultiDict 13 14 from webhelpers.paginate import Page 14 from tg.configuration import Bunch15 15 # this can't be tg, as we are circular importing then! 16 16 from pylons import config, request 17 17 from pylons import tmpl_context as c 18 18 from util import partial 19 from repoze.what.authorize import check_authorization, NotAuthorizedError 20 21 from tg.configuration import Bunch 22 from tg.flash import flash 19 23 20 24 class Decoration(object): … … 208 212 self.content_type, self.engine, self.template, self.exclude_names) 209 213 return func 214 210 215 211 216 def override_template(controller, template): … … 344 349 s.commit = old_commit 345 350 return retval 346 347 351 352 353 def require(predicate): 354 """ 355 Make repoze.what verify that the predicate is met. 356 357 @param predicate: A repoze.what predicate. 358 @return: The decorator that checks authorization. 359 360 """ 361 362 @decorator 363 def check_auth(func, *args, **kwargs): 364 environ = request.environ 365 try: 366 check_authorization(predicate, environ) 367 except NotAuthorizedError, e: 368 flash(e.errors, status="status_error") 369 raise HTTPUnauthorized() 370 return func(*args, **kwargs) 371 372 return check_auth 373 trunk/tg/__init__.py
r5418 r5743 54 54 from tg.controllers import TGController, redirect, url, use_wsgi_app 55 55 from tg.configuration import config 56 from tg.decorators import validate, expose, override_template, paginate, postpone_commits 56 from tg.decorators import validate, expose, override_template, paginate, \ 57 postpone_commits, require 57 58 from tg.flash import flash, get_flash, get_status 58 59 … … 62 63 'expose', 'validate', 'TGController', 'tmpl_context', 'app_globals', 63 64 'overide_template', 'request', 'response', 'session','TurboGearsApplication', 64 'use_wsgi_app', 'TGApp', 'app_globals' 65 'use_wsgi_app', 'TGApp', 'app_globals', 'require' 65 66 ]