Mercurial > public > src > rhodecode
comparison pylons_app/lib/auth.py @ 401:5cd6616b8673
routes python 2.5 compatible
added my account settings,
some changes to routes mappers for settings to more custom ones
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Wed, 28 Jul 2010 01:44:39 +0200 |
parents | a26f48ad7a8a |
children | bd8b25ad058d |
comparison
equal
deleted
inserted
replaced
399:5df93e22eec0 | 401:5cd6616b8673 |
---|---|
102 | 102 |
103 config['available_permissions'] = [x.permission_name for x in all_perms] | 103 config['available_permissions'] = [x.permission_name for x in all_perms] |
104 | 104 |
105 def set_base_path(config): | 105 def set_base_path(config): |
106 config['base_path'] = config['pylons.app_globals'].base_path | 106 config['base_path'] = config['pylons.app_globals'].base_path |
107 | 107 |
108 def fill_data(user): | |
109 """ | |
110 Fills user data with those from database | |
111 @param user: | |
112 """ | |
113 sa = meta.Session | |
114 dbuser = sa.query(User).get(user.user_id) | |
115 | |
116 user.username = dbuser.username | |
117 user.is_admin = dbuser.admin | |
118 user.name = dbuser.name | |
119 user.lastname = dbuser.lastname | |
120 | |
121 meta.Session.remove() | |
122 return user | |
123 | |
108 def fill_perms(user): | 124 def fill_perms(user): |
109 """ | 125 """ |
110 Fills user permission attribute with permissions taken from database | 126 Fills user permission attribute with permissions taken from database |
111 @param user: | 127 @param user: |
112 """ | 128 """ |
113 | 129 |
114 sa = meta.Session | 130 sa = meta.Session |
115 user.permissions['repositories'] = {} | 131 user.permissions['repositories'] = {} |
132 user.permissions['global'] = set() | |
116 | 133 |
117 #first fetch default permissions | 134 #first fetch default permissions |
118 default_perms = sa.query(Repo2Perm, Repository, Permission)\ | 135 default_perms = sa.query(Repo2Perm, Repository, Permission)\ |
119 .join((Repository, Repo2Perm.repository_id == Repository.repo_id))\ | 136 .join((Repository, Repo2Perm.repository_id == Repository.repo_id))\ |
120 .join((Permission, Repo2Perm.permission_id == Permission.permission_id))\ | 137 .join((Permission, Repo2Perm.permission_id == Permission.permission_id))\ |
121 .filter(Repo2Perm.user_id == sa.query(User).filter(User.username == | 138 .filter(Repo2Perm.user_id == sa.query(User).filter(User.username == |
122 'default').one().user_id).all() | 139 'default').one().user_id).all() |
123 | 140 |
124 if user.is_admin: | 141 if user.is_admin: |
125 user.permissions['global'] = set(['hg.admin']) | 142 user.permissions['global'].add('hg.admin') |
126 #admin have all rights full | 143 #admin have all rights full |
127 for perm in default_perms: | 144 for perm in default_perms: |
128 p = 'repository.admin' | 145 p = 'repository.admin' |
129 user.permissions['repositories'][perm.Repo2Perm.repository.repo_name] = p | 146 user.permissions['repositories'][perm.Repo2Perm.repository.repo_name] = p |
130 | 147 |
131 else: | 148 else: |
132 user.permissions['global'] = set() | 149 user.permissions['global'].add('') |
133 for perm in default_perms: | 150 for perm in default_perms: |
134 if perm.Repository.private: | 151 if perm.Repository.private: |
135 #disable defaults for private repos, | 152 #disable defaults for private repos, |
136 p = 'repository.none' | 153 p = 'repository.none' |
137 elif perm.Repository.user_id == user.user_id: | 154 elif perm.Repository.user_id == user.user_id: |
162 """ | 179 """ |
163 Gets user from session, and wraps permissions into user | 180 Gets user from session, and wraps permissions into user |
164 @param session: | 181 @param session: |
165 """ | 182 """ |
166 user = session.get('hg_app_user', AuthUser()) | 183 user = session.get('hg_app_user', AuthUser()) |
167 | |
168 if user.is_authenticated: | 184 if user.is_authenticated: |
185 user = fill_data(user) | |
169 user = fill_perms(user) | 186 user = fill_perms(user) |
170 session['hg_app_user'] = user | 187 session['hg_app_user'] = user |
171 session.save() | 188 session.save() |
172 return user | 189 return user |
173 | 190 |