diff --git a/rhodecode/controllers/admin/permissions.py b/rhodecode/controllers/admin/permissions.py --- a/rhodecode/controllers/admin/permissions.py +++ b/rhodecode/controllers/admin/permissions.py @@ -30,10 +30,9 @@ from pylons.i18n.translation import _ from rhodecode.lib import helpers as h from rhodecode.lib.auth import LoginRequired, HasPermissionAllDecorator from rhodecode.lib.base import BaseController, render -from rhodecode.model.db import User, UserLog from rhodecode.model.forms import UserForm, DefaultPermissionsForm from rhodecode.model.permission_model import PermissionModel -from rhodecode.model.user_model import UserModel +from rhodecode.model.user import UserModel import formencode import logging import traceback @@ -45,14 +44,14 @@ class PermissionsController(BaseControll # To properly map this controller, ensure your config/routing.py # file has a resource setup: # map.resource('permission', 'permissions') - + @LoginRequired() @HasPermissionAllDecorator('hg.admin') def __before__(self): c.admin_user = session.get('admin_user') c.admin_username = session.get('admin_username') super(PermissionsController, self).__before__() - + self.perms_choices = [('repository.none', _('None'),), ('repository.read', _('Read'),), ('repository.write', _('Write'),), @@ -63,11 +62,11 @@ class PermissionsController(BaseControll _('allowed with manual account activation')), ('hg.register.auto_activate', _('allowed with automatic account activation')), ] - + self.create_choices = [('hg.create.none', _('Disabled')), - ('hg.create.repository', _('Enabled'))] + ('hg.create.repository', _('Enabled'))] - + def index(self, format='html'): """GET /permissions: All items in the collection""" # url('permissions') @@ -88,38 +87,38 @@ class PermissionsController(BaseControll # h.form(url('permission', id=ID), # method='put') # url('permission', id=ID) - + permission_model = PermissionModel() - + _form = DefaultPermissionsForm([x[0] for x in self.perms_choices], [x[0] for x in self.register_choices], [x[0] for x in self.create_choices])() - + try: form_result = _form.to_python(dict(request.POST)) form_result.update({'perm_user_name':id}) permission_model.update(form_result) h.flash(_('Default permissions updated succesfully'), category='success') - + except formencode.Invalid, errors: c.perms_choices = self.perms_choices c.register_choices = self.register_choices c.create_choices = self.create_choices - + return htmlfill.render( render('admin/permissions/permissions.html'), defaults=errors.value, errors=errors.error_dict or {}, prefix_error=False, - encoding="UTF-8") + encoding="UTF-8") except Exception: log.error(traceback.format_exc()) h.flash(_('error occured during update of permissions'), category='error') - + return redirect(url('edit_permission', id=id)) - + def delete(self, id): @@ -141,23 +140,23 @@ class PermissionsController(BaseControll c.perms_choices = self.perms_choices c.register_choices = self.register_choices c.create_choices = self.create_choices - + if id == 'default': defaults = {'_method':'put'} for p in UserModel().get_default().user_perms: if p.permission.permission_name.startswith('repository.'): - defaults['default_perm'] = p.permission.permission_name - + defaults['default_perm'] = p.permission.permission_name + if p.permission.permission_name.startswith('hg.register.'): defaults['default_register'] = p.permission.permission_name - + if p.permission.permission_name.startswith('hg.create.'): defaults['default_create'] = p.permission.permission_name - + return htmlfill.render( render('admin/permissions/permissions.html'), defaults=defaults, encoding="UTF-8", - force_defaults=True,) + force_defaults=True,) else: return redirect(url('admin_home'))