Show More
@@ -239,8 +239,10 b' class ReposController(BaseRepoController' | |||
|
239 | 239 | #override the choices with extracted revisions ! |
|
240 | 240 | choices, c.landing_revs = ScmModel().get_repo_landing_revs(repo_name) |
|
241 | 241 | c.landing_revs_choices = choices |
|
242 | ||
|
243 |
_form = RepoForm(edit=True, old_data={'repo_name': repo_name |
|
|
242 | repo = Repository.get_by_repo_name(repo_name) | |
|
243 | _form = RepoForm(edit=True, old_data={'repo_name': repo_name, | |
|
244 | 'repo_group': repo.group.get_dict() \ | |
|
245 | if repo.group else {}}, | |
|
244 | 246 | repo_groups=c.repo_groups_choices, |
|
245 | 247 | landing_revs=c.landing_revs_choices)() |
|
246 | 248 | try: |
@@ -109,9 +109,11 b' class SettingsController(BaseRepoControl' | |||
|
109 | 109 | #override the choices with extracted revisions ! |
|
110 | 110 | choices, c.landing_revs = ScmModel().get_repo_landing_revs(repo_name) |
|
111 | 111 | c.landing_revs_choices = choices |
|
112 | ||
|
112 | repo = Repository.get_by_repo_name(repo_name) | |
|
113 | 113 | _form = RepoSettingsForm(edit=True, |
|
114 |
|
|
|
114 | old_data={'repo_name': repo_name, | |
|
115 | 'repo_group': repo.group.get_dict() \ | |
|
116 | if repo.group else {}}, | |
|
115 | 117 | repo_groups=c.repo_groups_choices, |
|
116 | 118 | landing_revs=c.landing_revs_choices)() |
|
117 | 119 | try: |
@@ -182,7 +182,7 b' def RepoForm(edit=False, old_data={}, su' | |||
|
182 | 182 | filter_extra_fields = False |
|
183 | 183 | repo_name = All(v.UnicodeString(strip=True, min=1, not_empty=True), |
|
184 | 184 | v.SlugifyName()) |
|
185 | repo_group = All(v.CanWriteGroup(), | |
|
185 | repo_group = All(v.CanWriteGroup(old_data), | |
|
186 | 186 | v.OneOf(repo_groups, hideList=True)) |
|
187 | 187 | repo_type = v.OneOf(supported_backends) |
|
188 | 188 | repo_description = v.UnicodeString(strip=True, min=1, not_empty=False) |
@@ -227,7 +227,7 b' def RepoSettingsForm(edit=False, old_dat' | |||
|
227 | 227 | filter_extra_fields = False |
|
228 | 228 | repo_name = All(v.UnicodeString(strip=True, min=1, not_empty=True), |
|
229 | 229 | v.SlugifyName()) |
|
230 | repo_group = All(v.CanWriteGroup(), | |
|
230 | repo_group = All(v.CanWriteGroup(old_data), | |
|
231 | 231 | v.OneOf(repo_groups, hideList=True)) |
|
232 | 232 | repo_description = v.UnicodeString(strip=True, min=1, not_empty=False) |
|
233 | 233 | repo_private = v.StringBoolean(if_missing=False) |
@@ -16,6 +16,7 b' from formencode.validators import (' | |||
|
16 | 16 | from rhodecode.lib.compat import OrderedSet |
|
17 | 17 | from rhodecode.lib import ipaddr |
|
18 | 18 | from rhodecode.lib.utils import repo_name_slug |
|
19 | from rhodecode.lib.utils2 import safe_int | |
|
19 | 20 | from rhodecode.model.db import RepoGroup, Repository, UserGroup, User,\ |
|
20 | 21 | ChangesetStatus |
|
21 | 22 | from rhodecode.lib.exceptions import LdapImportError |
@@ -472,7 +473,7 b' def ValidForkType(old_data={}):' | |||
|
472 | 473 | return _validator |
|
473 | 474 | |
|
474 | 475 | |
|
475 | def CanWriteGroup(): | |
|
476 | def CanWriteGroup(old_data=None): | |
|
476 | 477 | class _validator(formencode.validators.FancyValidator): |
|
477 | 478 | messages = { |
|
478 | 479 | 'permission_denied': _(u"You don't have permissions " |
@@ -493,6 +494,8 b' def CanWriteGroup():' | |||
|
493 | 494 | val = HasReposGroupPermissionAny('group.write', 'group.admin') |
|
494 | 495 | can_create_repos = HasPermissionAny('hg.admin', 'hg.create.repository') |
|
495 | 496 | forbidden = not val(gr_name, 'can write into group validator') |
|
497 | value_changed = True # old_data['repo_group'].get('group_id') != safe_int(value) | |
|
498 | if value_changed: # do check if we changed the value | |
|
496 | 499 | #parent group need to be existing |
|
497 | 500 | if gr and forbidden: |
|
498 | 501 | msg = M(self, 'permission_denied', state) |
General Comments 0
You need to be logged in to leave comments.
Login now