Mercurial > kallithea
diff rhodecode/controllers/admin/users_groups.py @ 2031:82a88013a3fd
merge 1.3 into stable
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sun, 26 Feb 2012 17:25:09 +0200 |
parents | 4a7de41dc22a |
children | d9ba58526712 |
line wrap: on
line diff
--- a/rhodecode/controllers/admin/users_groups.py Sun Feb 19 20:21:14 2012 +0200 +++ b/rhodecode/controllers/admin/users_groups.py Sun Feb 26 17:25:09 2012 +0200 @@ -7,7 +7,7 @@ :created_on: Jan 25, 2011 :author: marcink - :copyright: (C) 2009-2011 Marcin Kuzminski <marcin@python-works.com> + :copyright: (C) 2010-2012 Marcin Kuzminski <marcin@python-works.com> :license: GPLv3, see COPYING for more details. """ # This program is free software: you can redistribute it and/or modify @@ -33,12 +33,15 @@ from pylons.i18n.translation import _ from rhodecode.lib.exceptions import UsersGroupsAssignedException -from rhodecode.lib import helpers as h +from rhodecode.lib import helpers as h, safe_unicode from rhodecode.lib.auth import LoginRequired, HasPermissionAllDecorator from rhodecode.lib.base import BaseController, render +from rhodecode.model.users_group import UsersGroupModel + from rhodecode.model.db import User, UsersGroup, Permission, UsersGroupToPerm -from rhodecode.model.forms import UserForm, UsersGroupForm +from rhodecode.model.forms import UsersGroupForm +from rhodecode.model.meta import Session log = logging.getLogger(__name__) @@ -70,10 +73,12 @@ users_group_form = UsersGroupForm()() try: form_result = users_group_form.to_python(dict(request.POST)) - UsersGroup.create(form_result) + UsersGroupModel().create(name=form_result['users_group_name'], + active=form_result['users_group_active']) h.flash(_('created users group %s') \ % form_result['users_group_name'], category='success') #action_logger(self.rhodecode_user, 'new_user', '', '', self.sa) + Session.commit() except formencode.Invalid, errors: return htmlfill.render( render('admin/users_groups/users_group_add.html'), @@ -103,29 +108,33 @@ # url('users_group', id=ID) c.users_group = UsersGroup.get(id) - c.group_members = [(x.user_id, x.user.username) for x in - c.users_group.members] + c.group_members_obj = [x.user for x in c.users_group.members] + c.group_members = [(x.user_id, x.username) for x in + c.group_members_obj] c.available_members = [(x.user_id, x.username) for x in self.sa.query(User).all()] + + available_members = [safe_unicode(x[0]) for x in c.available_members] + users_group_form = UsersGroupForm(edit=True, old_data=c.users_group.get_dict(), - available_members=[str(x[0]) for x - in c.available_members])() + available_members=available_members)() try: form_result = users_group_form.to_python(request.POST) - UsersGroup.update(id, form_result) + UsersGroupModel().update(c.users_group, form_result) h.flash(_('updated users group %s') \ % form_result['users_group_name'], category='success') #action_logger(self.rhodecode_user, 'new_user', '', '', self.sa) + Session.commit() except formencode.Invalid, errors: e = errors.error_dict or {} perm = Permission.get_by_key('hg.create.repository') e.update({'create_repo_perm': - UsersGroupToPerm.has_perm(id, perm)}) + UsersGroupModel().has_perm(id, perm)}) return htmlfill.render( render('admin/users_groups/users_group_edit.html'), @@ -150,8 +159,9 @@ # url('users_group', id=ID) try: - UsersGroup.delete(id) + UsersGroupModel().delete(id) h.flash(_('successfully deleted users group'), category='success') + Session.commit() except UsersGroupsAssignedException, e: h.flash(e, category='error') except Exception: @@ -172,14 +182,15 @@ return redirect(url('users_groups')) c.users_group.permissions = {} - c.group_members = [(x.user_id, x.user.username) for x in - c.users_group.members] + c.group_members_obj = [x.user for x in c.users_group.members] + c.group_members = [(x.user_id, x.username) for x in + c.group_members_obj] c.available_members = [(x.user_id, x.username) for x in self.sa.query(User).all()] defaults = c.users_group.get_dict() perm = Permission.get_by_key('hg.create.repository') defaults.update({'create_repo_perm': - UsersGroupToPerm.has_perm(id, perm)}) + UsersGroupModel().has_perm(c.users_group, perm)}) return htmlfill.render( render('admin/users_groups/users_group_edit.html'), defaults=defaults, @@ -195,20 +206,21 @@ if grant_perm: perm = Permission.get_by_key('hg.create.none') - UsersGroupToPerm.revoke_perm(id, perm) + UsersGroupModel().revoke_perm(id, perm) perm = Permission.get_by_key('hg.create.repository') - UsersGroupToPerm.grant_perm(id, perm) + UsersGroupModel().grant_perm(id, perm) h.flash(_("Granted 'repository create' permission to user"), category='success') + Session.commit() else: perm = Permission.get_by_key('hg.create.repository') - UsersGroupToPerm.revoke_perm(id, perm) + UsersGroupModel().revoke_perm(id, perm) perm = Permission.get_by_key('hg.create.none') - UsersGroupToPerm.grant_perm(id, perm) + UsersGroupModel().grant_perm(id, perm) h.flash(_("Revoked 'repository create' permission to user"), category='success') - + Session.commit() return redirect(url('edit_users_group', id=id))