Mercurial > kallithea
comparison rhodecode/controllers/admin/users_groups.py @ 1271:aa7e45ad0cea beta
Fixed permissions for users groups, group can have create repo permission now.
Some code refactor + pep8ify
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Tue, 19 Apr 2011 17:28:42 +0200 |
parents | 5f2fbab7c429 |
children | a62af7d509ee |
comparison
equal
deleted
inserted
replaced
1270:49872ed3227a | 1271:aa7e45ad0cea |
---|---|
34 | 34 |
35 from rhodecode.lib import helpers as h | 35 from rhodecode.lib import helpers as h |
36 from rhodecode.lib.auth import LoginRequired, HasPermissionAllDecorator | 36 from rhodecode.lib.auth import LoginRequired, HasPermissionAllDecorator |
37 from rhodecode.lib.base import BaseController, render | 37 from rhodecode.lib.base import BaseController, render |
38 | 38 |
39 from rhodecode.model.db import User, UsersGroup | 39 from rhodecode.model.db import User, UsersGroup, Permission, UsersGroupToPerm |
40 from rhodecode.model.forms import UserForm, UsersGroupForm | 40 from rhodecode.model.forms import UserForm, UsersGroupForm |
41 from rhodecode.model.user import UserModel | |
42 from rhodecode.model.users_group import UsersGroupModel | 41 from rhodecode.model.users_group import UsersGroupModel |
43 | 42 |
44 log = logging.getLogger(__name__) | 43 log = logging.getLogger(__name__) |
45 | 44 |
46 | 45 |
121 h.flash(_('updated users group %s') \ | 120 h.flash(_('updated users group %s') \ |
122 % form_result['users_group_name'], | 121 % form_result['users_group_name'], |
123 category='success') | 122 category='success') |
124 #action_logger(self.rhodecode_user, 'new_user', '', '', self.sa) | 123 #action_logger(self.rhodecode_user, 'new_user', '', '', self.sa) |
125 except formencode.Invalid, errors: | 124 except formencode.Invalid, errors: |
125 e = errors.error_dict or {} | |
126 | |
127 perm = Permission.get_by_key('hg.create.repository') | |
128 e.update({'create_repo_perm': | |
129 UsersGroupToPerm.has_perm(id, perm)}) | |
130 | |
126 return htmlfill.render( | 131 return htmlfill.render( |
127 render('admin/users_groups/users_group_edit.html'), | 132 render('admin/users_groups/users_group_edit.html'), |
128 defaults=errors.value, | 133 defaults=errors.value, |
129 errors=errors.error_dict or {}, | 134 errors=e, |
130 prefix_error=False, | 135 prefix_error=False, |
131 encoding="UTF-8") | 136 encoding="UTF-8") |
132 except Exception: | 137 except Exception: |
133 log.error(traceback.format_exc()) | 138 log.error(traceback.format_exc()) |
134 h.flash(_('error occurred during update of users group %s') \ | 139 h.flash(_('error occurred during update of users group %s') \ |
169 c.group_members = [(x.user_id, x.user.username) for x in | 174 c.group_members = [(x.user_id, x.user.username) for x in |
170 c.users_group.members] | 175 c.users_group.members] |
171 c.available_members = [(x.user_id, x.username) for x in | 176 c.available_members = [(x.user_id, x.username) for x in |
172 self.sa.query(User).all()] | 177 self.sa.query(User).all()] |
173 defaults = c.users_group.get_dict() | 178 defaults = c.users_group.get_dict() |
174 | 179 perm = Permission.get_by_key('hg.create.repository') |
180 defaults.update({'create_repo_perm': | |
181 UsersGroupToPerm.has_perm(id, perm)}) | |
175 return htmlfill.render( | 182 return htmlfill.render( |
176 render('admin/users_groups/users_group_edit.html'), | 183 render('admin/users_groups/users_group_edit.html'), |
177 defaults=defaults, | 184 defaults=defaults, |
178 encoding="UTF-8", | 185 encoding="UTF-8", |
179 force_defaults=False | 186 force_defaults=False |
180 ) | 187 ) |
188 | |
189 def update_perm(self, id): | |
190 """PUT /users_perm/id: Update an existing item""" | |
191 # url('users_group_perm', id=ID, method='put') | |
192 | |
193 grant_perm = request.POST.get('create_repo_perm', False) | |
194 | |
195 if grant_perm: | |
196 perm = Permission.get_by_key('hg.create.none') | |
197 UsersGroupToPerm.revoke_perm(id, perm) | |
198 | |
199 perm = Permission.get_by_key('hg.create.repository') | |
200 UsersGroupToPerm.grant_perm(id, perm) | |
201 h.flash(_("Granted 'repository create' permission to user"), | |
202 category='success') | |
203 | |
204 else: | |
205 perm = Permission.get_by_key('hg.create.repository') | |
206 UsersGroupToPerm.revoke_perm(id, perm) | |
207 | |
208 perm = Permission.get_by_key('hg.create.none') | |
209 UsersGroupToPerm.grant_perm(id, perm) | |
210 h.flash(_("Revoked 'repository create' permission to user"), | |
211 category='success') | |
212 | |
213 return redirect(url('edit_users_group', id=id)) |