Mercurial > kallithea
changeset 3734:a8f520540ab0 beta
New default permissions definition for user group create
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Wed, 10 Apr 2013 14:33:04 +0200 |
parents | af049a957506 |
children | 8a40028eaf73 |
files | rhodecode/config/routing.py rhodecode/controllers/admin/permissions.py rhodecode/controllers/admin/repos.py rhodecode/controllers/forks.py rhodecode/controllers/login.py rhodecode/lib/auth.py rhodecode/lib/db_manage.py rhodecode/lib/utils.py rhodecode/model/db.py rhodecode/model/forms.py rhodecode/model/permission.py rhodecode/model/repo.py rhodecode/model/repos_group.py rhodecode/model/users_group.py rhodecode/templates/admin/permissions/permissions.html rhodecode/templates/admin/users_groups/users_groups.html rhodecode/templates/base/perms_summary.html rhodecode/templates/pullrequests/pullrequest_data.html rhodecode/tests/functional/test_home.py rhodecode/tests/models/test_permissions.py |
diffstat | 20 files changed, 182 insertions(+), 82 deletions(-) [+] |
line wrap: on
line diff
--- a/rhodecode/config/routing.py Wed Apr 10 02:55:21 2013 +0200 +++ b/rhodecode/config/routing.py Wed Apr 10 14:33:04 2013 +0200 @@ -68,6 +68,15 @@ return is_valid_repos_group(repos_group_name, config['base_path'], skip_path_check=True) + def check_user_group(environ, match_dict): + """ + check for valid user group for proper 404 handling + + :param environ: + :param match_dict: + """ + return True + def check_int(environ, match_dict): return match_dict.get('id').isdigit() @@ -266,7 +275,8 @@ m.connect("delete_users_group", "/users_groups/{id}", action="delete", conditions=dict(method=["DELETE"])) m.connect("edit_users_group", "/users_groups/{id}/edit", - action="edit", conditions=dict(method=["GET"])) + action="edit", conditions=dict(method=["GET"]), + function=check_user_group) m.connect("formatted_edit_users_group", "/users_groups/{id}.{format}/edit", action="edit", conditions=dict(method=["GET"]))
--- a/rhodecode/controllers/admin/permissions.py Wed Apr 10 02:55:21 2013 +0200 +++ b/rhodecode/controllers/admin/permissions.py Wed Apr 10 14:33:04 2013 +0200 @@ -55,15 +55,19 @@ def __before__(self): super(PermissionsController, self).__before__() - self.repo_perms_choices = [('repository.none', _('None'),), + c.repo_perms_choices = [('repository.none', _('None'),), ('repository.read', _('Read'),), ('repository.write', _('Write'),), ('repository.admin', _('Admin'),)] - self.group_perms_choices = [('group.none', _('None'),), - ('group.read', _('Read'),), - ('group.write', _('Write'),), - ('group.admin', _('Admin'),)] - self.register_choices = [ + c.group_perms_choices = [('group.none', _('None'),), + ('group.read', _('Read'),), + ('group.write', _('Write'),), + ('group.admin', _('Admin'),)] + c.user_group_perms_choices = [('usergroup.none', _('None'),), + ('usergroup.read', _('Read'),), + ('usergroup.write', _('Write'),), + ('usergroup.admin', _('Admin'),)] + c.register_choices = [ ('hg.register.none', _('Disabled')), ('hg.register.manual_activate', @@ -71,18 +75,17 @@ ('hg.register.auto_activate', _('Allowed with automatic account activation')), ] - self.create_choices = [('hg.create.none', _('Disabled')), - ('hg.create.repository', _('Enabled'))] + c.repo_create_choices = [('hg.create.none', _('Disabled')), + ('hg.create.repository', _('Enabled'))] - self.fork_choices = [('hg.fork.none', _('Disabled')), - ('hg.fork.repository', _('Enabled'))] + c.user_group_create_choices = [('hg.usergroup.create.false', _('Disabled')), + ('hg.usergroup.create.true', _('Enabled'))] - # set the global template variables - c.repo_perms_choices = self.repo_perms_choices - c.group_perms_choices = self.group_perms_choices - c.register_choices = self.register_choices - c.create_choices = self.create_choices - c.fork_choices = self.fork_choices + c.repo_group_create_choices = [('hg.repogroup.create.false', _('Disabled')), + ('hg.repogroup.create.true', _('Enabled'))] + + c.fork_choices = [('hg.fork.none', _('Disabled')), + ('hg.fork.repository', _('Enabled'))] def index(self, format='html'): """GET /permissions: All items in the collection""" @@ -105,23 +108,25 @@ # method='put') # url('permission', id=ID) if id == 'default': - c.user = default_user = User.get_by_username('default') + c.user = default_user = User.get_default_user() c.perm_user = AuthUser(user_id=default_user.user_id) c.user_ip_map = UserIpMap.query()\ .filter(UserIpMap.user == default_user).all() - permission_model = PermissionModel() _form = DefaultPermissionsForm( - [x[0] for x in self.repo_perms_choices], - [x[0] for x in self.group_perms_choices], - [x[0] for x in self.register_choices], - [x[0] for x in self.create_choices], - [x[0] for x in self.fork_choices])() + [x[0] for x in c.repo_perms_choices], + [x[0] for x in c.group_perms_choices], + [x[0] for x in c.user_group_perms_choices], + [x[0] for x in c.repo_create_choices], + [x[0] for x in c.repo_group_create_choices], + [x[0] for x in c.user_group_create_choices], + [x[0] for x in c.fork_choices], + [x[0] for x in c.register_choices])() try: form_result = _form.to_python(dict(request.POST)) form_result.update({'perm_user_name': id}) - permission_model.update(form_result) + PermissionModel().update(form_result) Session().commit() h.flash(_('Default permissions updated successfully'), category='success') @@ -162,24 +167,33 @@ #this form can only edit default user permissions if id == 'default': - c.user = default_user = User.get_by_username('default') - defaults = {'anonymous': default_user.active} - c.perm_user = AuthUser(user_id=default_user.user_id) + c.user = User.get_default_user() + defaults = {'anonymous': c.user.active} + c.perm_user = c.user.AuthUser c.user_ip_map = UserIpMap.query()\ - .filter(UserIpMap.user == default_user).all() - for p in default_user.user_perms: + .filter(UserIpMap.user == c.user).all() + for p in c.user.user_perms: if p.permission.permission_name.startswith('repository.'): defaults['default_repo_perm'] = p.permission.permission_name if p.permission.permission_name.startswith('group.'): defaults['default_group_perm'] = p.permission.permission_name + if p.permission.permission_name.startswith('usergroup.'): + defaults['default_user_group_perm'] = p.permission.permission_name + + if p.permission.permission_name.startswith('hg.create.'): + defaults['default_repo_create'] = p.permission.permission_name + + if p.permission.permission_name.startswith('hg.repogroup.'): + defaults['default_repo_group_create'] = p.permission.permission_name + + if p.permission.permission_name.startswith('hg.usergroup.'): + defaults['default_user_group_create'] = 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 - if p.permission.permission_name.startswith('hg.fork.'): defaults['default_fork'] = p.permission.permission_name
--- a/rhodecode/controllers/admin/repos.py Wed Apr 10 02:55:21 2013 +0200 +++ b/rhodecode/controllers/admin/repos.py Wed Apr 10 14:33:04 2013 +0200 @@ -98,7 +98,7 @@ choices, c.landing_revs = ScmModel().get_repo_landing_revs(c.repo_info) c.landing_revs_choices = choices - c.default_user_id = User.get_by_username('default').user_id + c.default_user_id = User.get_default_user().user_id c.in_public_journal = UserFollowing.query()\ .filter(UserFollowing.user_id == c.default_user_id)\ .filter(UserFollowing.follows_repository == c.repo_info).scalar() @@ -466,7 +466,7 @@ if cur_token == token: try: repo_id = Repository.get_by_repo_name(repo_name).repo_id - user_id = User.get_by_username('default').user_id + user_id = User.get_default_user().user_id self.scm_model.toggle_following_repo(repo_id, user_id) h.flash(_('Updated repository visibility in public journal'), category='success')
--- a/rhodecode/controllers/forks.py Wed Apr 10 02:55:21 2013 +0200 +++ b/rhodecode/controllers/forks.py Wed Apr 10 14:33:04 2013 +0200 @@ -77,7 +77,7 @@ h.not_mapped_error(repo_name) return redirect(url('repos')) - c.default_user_id = User.get_by_username('default').user_id + c.default_user_id = User.get_default_user().user_id c.in_public_journal = UserFollowing.query()\ .filter(UserFollowing.user_id == c.default_user_id)\ .filter(UserFollowing.follows_repository == c.repo_info).scalar()
--- a/rhodecode/controllers/login.py Wed Apr 10 02:55:21 2013 +0200 +++ b/rhodecode/controllers/login.py Wed Apr 10 14:33:04 2013 +0200 @@ -126,7 +126,7 @@ @HasPermissionAnyDecorator('hg.admin', 'hg.register.auto_activate', 'hg.register.manual_activate') def register(self): - c.auto_active = 'hg.register.auto_activate' in User.get_by_username('default')\ + c.auto_active = 'hg.register.auto_activate' in User.get_default_user()\ .AuthUser.permissions['global'] if request.POST:
--- a/rhodecode/lib/auth.py Wed Apr 10 02:55:21 2013 +0200 +++ b/rhodecode/lib/auth.py Wed Apr 10 14:33:04 2013 +0200 @@ -229,7 +229,7 @@ 'lastname': safe_unicode(get_ldap_attr('ldap_attr_lastname')), 'email': get_ldap_attr('ldap_attr_email'), 'active': 'hg.register.auto_activate' in User\ - .get_by_username('default').AuthUser.permissions['global'] + .get_default_user().AuthUser.permissions['global'] } # don't store LDAP password since we don't need it. Override @@ -259,7 +259,7 @@ 'lastname': None, 'email': None, 'active': 'hg.register.auto_activate' in User\ - .get_by_username('default').AuthUser.permissions['global'] + .get_default_user().AuthUser.permissions['global'] } user = UserModel().create_for_container_auth(username, user_attrs) if not user:
--- a/rhodecode/lib/db_manage.py Wed Apr 10 02:55:21 2013 +0200 +++ b/rhodecode/lib/db_manage.py Wed Apr 10 14:33:04 2013 +0200 @@ -521,7 +521,7 @@ self.sa.add(setting) def fixup_groups(self): - def_usr = User.get_by_username('default') + def_usr = User.get_default_user() for g in RepoGroup.query().all(): g.group_name = g.get_new_name(g.name) self.sa.add(g) @@ -688,13 +688,8 @@ """ # module.(access|create|change|delete)_[name] # module.(none|read|write|admin) - - for p in Permission.PERMS: - if not Permission.get_by_key(p[0]): - new_perm = Permission() - new_perm.permission_name = p[0] - new_perm.permission_longname = p[0] - self.sa.add(new_perm) + log.info('creating permissions') + PermissionModel(self.sa).create_permissions() def populate_default_permissions(self): """
--- a/rhodecode/lib/utils.py Wed Apr 10 02:55:21 2013 +0200 +++ b/rhodecode/lib/utils.py Wed Apr 10 14:33:04 2013 +0200 @@ -58,6 +58,7 @@ from rhodecode.model.repos_group import ReposGroupModel from rhodecode.lib.utils2 import safe_str, safe_unicode from rhodecode.lib.vcs.utils.fakemod import create_module +from rhodecode.model.users_group import UserGroupModel log = logging.getLogger(__name__) @@ -100,6 +101,9 @@ return slug +#============================================================================== +# PERM DECORATOR HELPERS FOR EXTRACTING NAMES FOR PERM CHECKS +#============================================================================== def get_repo_slug(request): _repo = request.environ['pylons.routes_dict'].get('repo_name') if _repo: @@ -116,9 +120,15 @@ def get_user_group_slug(request): _group = request.environ['pylons.routes_dict'].get('id') - _group = UserGroup.get(_group) - if _group: - _group = _group.users_group_name + try: + _group = UserGroup.get(_group) + if _group: + _group = _group.users_group_name + except Exception: + log.debug(traceback.format_exc()) + #catch all failures here + pass + return _group
--- a/rhodecode/model/db.py Wed Apr 10 02:55:21 2013 +0200 +++ b/rhodecode/model/db.py Wed Apr 10 14:33:04 2013 +0200 @@ -637,6 +637,7 @@ members = relationship('UserGroupMember', cascade="all, delete, delete-orphan", lazy="joined") users_group_to_perm = relationship('UserGroupToPerm', cascade='all') users_group_repo_to_perm = relationship('UserGroupRepoToPerm', cascade='all') + users_group_repo_group_to_perm = relationship('UserGroupRepoGroupToPerm', cascade='all') user_user_group_to_perm = relationship('UserUserGroupToPerm ', cascade='all') user = relationship('User') @@ -1426,6 +1427,12 @@ ('usergroup.write', _('User group write access')), ('usergroup.admin', _('User group admin access')), + ('hg.repogroup.create.false', _('Repository Group creation disabled')), + ('hg.repogroup.create.true', _('Repository Group creation enabled')), + + ('hg.usergroup.create.false', _('User Group creation disabled')), + ('hg.usergroup.create.true', _('User Group creation enabled')), + ('hg.create.none', _('Repository creation disabled')), ('hg.create.repository', _('Repository creation enabled')), @@ -1451,6 +1458,8 @@ ] # defines which permissions are more important higher the more important + # Weight defines which permissions are more important. + # The higher number the more important. PERM_WEIGHTS = { 'repository.none': 0, 'repository.read': 1, @@ -1466,6 +1475,11 @@ 'usergroup.read': 1, 'usergroup.write': 3, 'usergroup.admin': 4, + 'hg.repogroup.create.false': 0, + 'hg.repogroup.create.true': 1, + + 'hg.usergroup.create.false': 0, + 'hg.usergroup.create.true': 1, 'hg.fork.none': 0, 'hg.fork.repository': 1,
--- a/rhodecode/model/forms.py Wed Apr 10 02:55:21 2013 +0200 +++ b/rhodecode/model/forms.py Wed Apr 10 14:33:04 2013 +0200 @@ -311,7 +311,9 @@ def DefaultPermissionsForm(repo_perms_choices, group_perms_choices, - register_choices, create_choices, fork_choices): + user_group_perms_choices, create_choices, + repo_group_create_choices, user_group_create_choices, + fork_choices, register_choices): class _DefaultPermissionsForm(formencode.Schema): allow_extra_fields = True filter_extra_fields = True @@ -320,10 +322,14 @@ anonymous = v.StringBoolean(if_missing=False) default_repo_perm = v.OneOf(repo_perms_choices) default_group_perm = v.OneOf(group_perms_choices) - default_register = v.OneOf(register_choices) - default_create = v.OneOf(create_choices) + default_user_group_perm = v.OneOf(user_group_perms_choices) + + default_repo_create = v.OneOf(create_choices) + default_user_group_create = v.OneOf(user_group_create_choices) + #default_repo_group_create = v.OneOf(repo_group_create_choices) #not impl. yet default_fork = v.OneOf(fork_choices) + default_register = v.OneOf(register_choices) return _DefaultPermissionsForm
--- a/rhodecode/model/permission.py Wed Apr 10 02:55:21 2013 +0200 +++ b/rhodecode/model/permission.py Wed Apr 10 14:33:04 2013 +0200 @@ -43,6 +43,17 @@ cls = Permission + def create_permissions(self): + """ + Create permissions for whole system + """ + for p in Permission.PERMS: + if not Permission.get_by_key(p[0]): + new_perm = Permission() + new_perm.permission_name = p[0] + new_perm.permission_longname = p[0] #translation err with p[1] + self.sa.add(new_perm) + def create_default_permissions(self, user): """ Creates only missing default permissions for user @@ -87,6 +98,7 @@ # stage 2 reset defaults and set them from form data def _make_new(usr, perm_name): + log.debug('Creating new permission:%s' % (perm_name)) new = UserToPerm() new.user = usr new.permission = Permission.get_by_key(perm_name) @@ -101,8 +113,11 @@ self.sa.delete(p) #create fresh set of permissions for def_perm_key in ['default_repo_perm', 'default_group_perm', - 'default_register', 'default_create', - 'default_fork']: + 'default_user_group_perm', + 'default_repo_create', + #'default_repo_group_create', #not implemented yet + 'default_user_group_create', + 'default_fork', 'default_register']: p = _make_new(perm_user, form_result[def_perm_key]) self.sa.add(p)
--- a/rhodecode/model/repo.py Wed Apr 10 02:55:21 2013 +0200 +++ b/rhodecode/model/repo.py Wed Apr 10 14:33:04 2013 +0200 @@ -63,7 +63,7 @@ def _create_default_perms(self, repository, private): # create default permission default = 'repository.read' - def_user = User.get_by_username('default') + def_user = User.get_default_user() for p in def_user.user_perms: if p.permission.permission_name.startswith('repository.'): default = p.permission.permission_name
--- a/rhodecode/model/repos_group.py Wed Apr 10 02:55:21 2013 +0200 +++ b/rhodecode/model/repos_group.py Wed Apr 10 14:33:04 2013 +0200 @@ -62,7 +62,7 @@ def _create_default_perms(self, new_group): # create default permission default_perm = 'group.read' - def_user = User.get_by_username('default') + def_user = User.get_default_user() for p in def_user.user_perms: if p.permission.permission_name.startswith('group.'): default_perm = p.permission.permission_name
--- a/rhodecode/model/users_group.py Wed Apr 10 02:55:21 2013 +0200 +++ b/rhodecode/model/users_group.py Wed Apr 10 14:33:04 2013 +0200 @@ -46,7 +46,7 @@ def _create_default_perms(self, user_group): # create default permission default_perm = 'usergroup.read' - def_user = User.get_by_username('default') + def_user = User.get_default_user() for p in def_user.user_perms: if p.permission.permission_name.startswith('usergroup.'): default_perm = p.permission.permission_name
--- a/rhodecode/templates/admin/permissions/permissions.html Wed Apr 10 02:55:21 2013 +0200 +++ b/rhodecode/templates/admin/permissions/permissions.html Wed Apr 10 14:33:04 2013 +0200 @@ -66,18 +66,32 @@ </div> <div class="field"> <div class="label"> - <label for="default_register">${_('Registration')}:</label> + <label for="default_group_perm">${_('User group')}:</label> </div> <div class="select"> - ${h.select('default_register','',c.register_choices)} + ${h.select('default_user_group_perm','',c.user_group_perms_choices)} + ${h.checkbox('overwrite_default_user_group','true')} + <label for="overwrite_default_user_group"> + <span class="tooltip" + title="${h.tooltip(_('All default permissions on each user group will be reset to chosen permission, note that all custom default permission on repository groups will be lost'))}"> + ${_('Overwrite existing settings')}</span> </label> + </div> </div> <div class="field"> <div class="label"> - <label for="default_create">${_('Repository creation')}:</label> + <label for="default_repo_create">${_('Repository creation')}:</label> </div> <div class="select"> - ${h.select('default_create','',c.create_choices)} + ${h.select('default_repo_create','',c.repo_create_choices)} + </div> + </div> + <div class="field"> + <div class="label"> + <label for="default_user_group_create">${_('User group creation')}:</label> + </div> + <div class="select"> + ${h.select('default_user_group_create','',c.user_group_create_choices)} </div> </div> <div class="field"> @@ -88,6 +102,14 @@ ${h.select('default_fork','',c.fork_choices)} </div> </div> + <div class="field"> + <div class="label"> + <label for="default_register">${_('Registration')}:</label> + </div> + <div class="select"> + ${h.select('default_register','',c.register_choices)} + </div> + </div> <div class="buttons"> ${h.submit('save',_('Save'),class_="ui-btn large")} ${h.reset('reset',_('Reset'),class_="ui-btn large")} @@ -104,7 +126,8 @@ </div> ## permissions overview - <%include file="/base/perms_summary.html"/> + <%namespace name="p" file="/base/perms_summary.html"/> + ${p.perms_summary(c.perm_user.permissions)} </div> <div class="box box-left" style="clear:left">
--- a/rhodecode/templates/admin/users_groups/users_groups.html Wed Apr 10 02:55:21 2013 +0200 +++ b/rhodecode/templates/admin/users_groups/users_groups.html Wed Apr 10 14:33:04 2013 +0200 @@ -28,7 +28,9 @@ </ul> </div> <!-- end box / title --> + <div class="table"> + %if c.users_groups_list: <table class="table_disp"> <tr class="header"> <th class="left">${_('Group name')}</th> @@ -55,6 +57,9 @@ </tr> %endfor </table> + %else: + ${_('There are no user groups yet')} + %endif </div> </div> </%def>
--- a/rhodecode/templates/base/perms_summary.html Wed Apr 10 02:55:21 2013 +0200 +++ b/rhodecode/templates/base/perms_summary.html Wed Apr 10 14:33:04 2013 +0200 @@ -9,28 +9,32 @@ %else: <div id='tbl_list_wrap_${section}' class="yui-skin-sam"> <table id="tbl_list_${section}"> - <thead> - <tr> - <th class="left">${_('Name')}</th> - <th class="left">${_('Permission')}</th> - <th class="left">${_('Edit Permission')}</th> - </thead> - <tbody> %if section == 'global': + <thead> + <tr> + <th colspan="2" class="left">${_('Permission')}</th> + <th class="left">${_('Edit Permission')}</th> + </thead> + <tbody> %for k in sorted(permissions[section], key=lambda s: s.lower()): <tr> - <td> + <td colspan="2"> ${h.get_permission_name(k)} </td> <td> - ${h.boolicon(k.split('.')[-1] != 'none')} - </td> - <td> <a href="${h.url('edit_permission', id='default')}">${_('edit')}</a> </td> </tr> %endfor + </tbody> %else: + <thead> + <tr> + <th class="left">${_('Name')}</th> + <th class="left">${_('Permission')}</th> + <th class="left">${_('Edit Permission')}</th> + </thead> + <tbody> %for k, section_perm in sorted(permissions[section].items(), key=lambda s: s[1]+s[0].lower()): <tr> <td> @@ -38,6 +42,9 @@ <a href="${h.url('summary_home',repo_name=k)}">${k}</a> %elif section == 'repositories_groups': <a href="${h.url('repos_group_home',group_name=k)}">${k}</a> + %elif section == 'user_groups': + ##<a href="${h.url('edit_users_group',id=k)}">${k}</a> + ${k} %endif </td> <td> @@ -48,13 +55,14 @@ <a href="${h.url('edit_repo',repo_name=k,anchor='permissions_manage')}">${_('edit')}</a> %elif section == 'repositories_groups': <a href="${h.url('edit_repos_group',group_name=k,anchor='permissions_manage')}">${_('edit')}</a> + %elif section == 'user_groups': + ##<a href="${h.url('edit_users_group',id=k)}">${_('edit')}</a> %endif </td> </tr> %endfor + </tbody> %endif - - </tbody> </table> </div> %endif
--- a/rhodecode/templates/pullrequests/pullrequest_data.html Wed Apr 10 02:55:21 2013 +0200 +++ b/rhodecode/templates/pullrequests/pullrequest_data.html Wed Apr 10 14:33:04 2013 +0200 @@ -21,4 +21,4 @@ <div class="pagination-wh pagination-left"> ${c.pullrequests_pager.pager('$link_previous ~2~ $link_next')} </div> -</div> \ No newline at end of file +</div>
--- a/rhodecode/tests/functional/test_home.py Wed Apr 10 02:55:21 2013 +0200 +++ b/rhodecode/tests/functional/test_home.py Wed Apr 10 14:33:04 2013 +0200 @@ -33,7 +33,7 @@ ) def test_repo_summary_with_anonymous_access_disabled(self): - anon = User.get_by_username('default') + anon = User.get_default_user() anon.active = False Session().add(anon) Session().commit() @@ -45,13 +45,13 @@ assert 'login' in response.location finally: - anon = User.get_by_username('default') + anon = User.get_default_user() anon.active = True Session().add(anon) Session().commit() def test_index_with_anonymous_access_disabled(self): - anon = User.get_by_username('default') + anon = User.get_default_user() anon.active = False Session().add(anon) Session().commit() @@ -61,7 +61,7 @@ status=302) assert 'login' in response.location finally: - anon = User.get_by_username('default') + anon = User.get_default_user() anon.active = True Session().add(anon) Session().commit()
--- a/rhodecode/tests/models/test_permissions.py Wed Apr 10 02:55:21 2013 +0200 +++ b/rhodecode/tests/models/test_permissions.py Wed Apr 10 14:33:04 2013 +0200 @@ -34,7 +34,7 @@ username=u'u3', password=u'qweqwe', email=u'u3@rhodecode.org', firstname=u'u3', lastname=u'u3' ) - self.anon = User.get_by_username('default') + self.anon = User.get_default_user() self.a1 = UserModel().create_or_update( username=u'a1', password=u'qweqwe', email=u'a1@rhodecode.org', firstname=u'a1', lastname=u'a1', admin=True