diff --git a/rhodecode/model/permission_model.py b/rhodecode/model/permission_model.py --- a/rhodecode/model/permission_model.py +++ b/rhodecode/model/permission_model.py @@ -59,30 +59,41 @@ class PermissionModel(object): .filter(User.username == form_result['perm_user_name']).scalar() u2p = self.sa.query(UserToPerm).filter(UserToPerm.user == perm_user).all() if len(u2p) != 3: - raise Exception('There is more than 3 defined' - ' permissions for default user. This should not happen please verify' - ' your database') + raise Exception('Defined: %s should be 3 permissions for default' + ' user. This should not happen please verify' + ' your database' % len(u2p)) try: #stage 1 change defaults for p in u2p: if p.permission.permission_name.startswith('repository.'): - p.permission = self.get_permission_by_name(form_result['default_perm']) + p.permission = self.get_permission_by_name( + form_result['default_perm']) self.sa.add(p) if p.permission.permission_name.startswith('hg.register.'): - p.permission = self.get_permission_by_name(form_result['default_register']) + p.permission = self.get_permission_by_name( + form_result['default_register']) self.sa.add(p) if p.permission.permission_name.startswith('hg.create.'): - p.permission = self.get_permission_by_name(form_result['default_create']) + p.permission = self.get_permission_by_name( + form_result['default_create']) self.sa.add(p) #stage 2 update all default permissions for repos if checked if form_result['overwrite_default'] == 'true': - for r2p in self.sa.query(RepoToPerm).filter(RepoToPerm.user == perm_user).all(): - r2p.permission = self.get_permission_by_name(form_result['default_perm']) + for r2p in self.sa.query(RepoToPerm)\ + .filter(RepoToPerm.user == perm_user).all(): + r2p.permission = self.get_permission_by_name( + form_result['default_perm']) self.sa.add(r2p) + #stage 3 set anonymous access + if perm_user.username == 'default': + perm_user.active = bool(form_result['anonymous']) + self.sa.add(perm_user) + + self.sa.commit() except: log.error(traceback.format_exc())