comparison pylons_app/lib/auth.py @ 312:d303aacb3349

repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes. Added permission fetching for each request in AuthUser instance
author Marcin Kuzminski <marcin@python-works.com>
date Mon, 28 Jun 2010 13:54:47 +0200
parents 0e5455fda8fd
children d6e2817734d2
comparison
equal deleted inserted replaced
311:15e96b5a2685 312:d303aacb3349
25 25
26 from functools import wraps 26 from functools import wraps
27 from pylons import session, url, app_globals as g 27 from pylons import session, url, app_globals as g
28 from pylons.controllers.util import abort, redirect 28 from pylons.controllers.util import abort, redirect
29 from pylons_app.model import meta 29 from pylons_app.model import meta
30 from pylons_app.model.db import User 30 from pylons_app.model.db import User, Repo2Perm
31 from sqlalchemy.exc import OperationalError 31 from sqlalchemy.exc import OperationalError
32 from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound 32 from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound
33 import crypt 33 import crypt
34 import logging 34 import logging
35 log = logging.getLogger(__name__) 35 log = logging.getLogger(__name__)
89 logging.info('getting information about all available permissions') 89 logging.info('getting information about all available permissions')
90 sa = Session() 90 sa = Session()
91 all_perms = sa.query(Permission).all() 91 all_perms = sa.query(Permission).all()
92 config['pylons.app_globals'].available_permissions = [x.permission_name for x in all_perms] 92 config['pylons.app_globals'].available_permissions = [x.permission_name for x in all_perms]
93 93
94 94 def get_user(session):
95 """
96 Gets user from session, and wraps permissions into user
97 @param session:
98 """
99 user = session.get('hg_app_user', AuthUser())
100 if user.is_authenticated:
101 sa = meta.Session
102 user.permissions = sa.query(Repo2Perm)\
103 .filter(Repo2Perm.user_id == user.user_id).all()
104
105 return user
95 106
96 #=============================================================================== 107 #===============================================================================
97 # DECORATORS 108 # DECORATORS
98 #=============================================================================== 109 #===============================================================================
99 class LoginRequired(object): 110 class LoginRequired(object):