Show More
@@ -37,9 +37,11 b' from rhodecode.model.user import UserMod' | |||
|
37 | 37 | from rhodecode.lib.utils import ask_ok |
|
38 | 38 | from rhodecode.model import init_model |
|
39 | 39 | from rhodecode.model.db import User, Permission, RhodeCodeUi, \ |
|
40 | RhodeCodeSetting, UserToPerm, DbMigrateVersion | |
|
40 | RhodeCodeSetting, UserToPerm, DbMigrateVersion, RepoGroup,\ | |
|
41 | UserRepoGroupToPerm | |
|
41 | 42 | |
|
42 | 43 | from sqlalchemy.engine import create_engine |
|
44 | from rhodecode.model.repos_group import ReposGroupModel | |
|
43 | 45 | |
|
44 | 46 | log = logging.getLogger(__name__) |
|
45 | 47 | |
@@ -170,7 +172,7 b' class DbManage(object):' | |||
|
170 | 172 | |
|
171 | 173 | def step_4(self): |
|
172 | 174 | print ('TODO:') |
|
173 | raise NotImplementedError() | |
|
175 | self.klass.fixup_groups() | |
|
174 | 176 | |
|
175 | 177 | upgrade_steps = [0] + range(curr_version + 1, __dbversion__ + 1) |
|
176 | 178 | |
@@ -348,6 +350,21 b' class DbManage(object):' | |||
|
348 | 350 | setting = RhodeCodeSetting(k, v) |
|
349 | 351 | self.sa.add(setting) |
|
350 | 352 | |
|
353 | def fixup_groups(self): | |
|
354 | def_usr = User.get_by_username('default') | |
|
355 | for g in RepoGroup.query().all(): | |
|
356 | g.group_name = g.get_new_name(g.name) | |
|
357 | self.sa.add(g) | |
|
358 | # get default perm | |
|
359 | default = UserRepoGroupToPerm.query()\ | |
|
360 | .filter(UserRepoGroupToPerm.group == g)\ | |
|
361 | .filter(UserRepoGroupToPerm.user == def_usr)\ | |
|
362 | .scalar() | |
|
363 | ||
|
364 | if default is None: | |
|
365 | log.debug('missing default permission for group %s adding' % g) | |
|
366 | ReposGroupModel()._create_default_perms(g) | |
|
367 | ||
|
351 | 368 | def config_prompt(self, test_repo_path='', retries=3): |
|
352 | 369 | if retries == 3: |
|
353 | 370 | log.info('Setting up repositories config') |
@@ -50,7 +50,7 b' from rhodecode.lib.caching_query import ' | |||
|
50 | 50 | |
|
51 | 51 | from rhodecode.model import meta |
|
52 | 52 | from rhodecode.model.db import Repository, User, RhodeCodeUi, \ |
|
53 | UserLog, RepoGroup, RhodeCodeSetting | |
|
53 | UserLog, RepoGroup, RhodeCodeSetting, UserRepoGroupToPerm | |
|
54 | 54 | from rhodecode.model.meta import Session |
|
55 | 55 | from rhodecode.model.repos_group import ReposGroupModel |
|
56 | 56 | |
@@ -415,6 +415,23 b' def repo2db_mapper(initial_repo_list, re' | |||
|
415 | 415 | raise Exception('Missing administrative account !') |
|
416 | 416 | added = [] |
|
417 | 417 | |
|
418 | # fixup groups paths to new format on the fly. Helps with migration from | |
|
419 | # old rhodecode versions also set permissions if they are not present ! | |
|
420 | # TODO: remove this in future, before release | |
|
421 | def_usr = User.get_by_username('default') | |
|
422 | for g in RepoGroup.query().all(): | |
|
423 | g.group_name = g.get_new_name(g.name) | |
|
424 | sa.add(g) | |
|
425 | # get default perm | |
|
426 | default = UserRepoGroupToPerm.query()\ | |
|
427 | .filter(UserRepoGroupToPerm.group == g)\ | |
|
428 | .filter(UserRepoGroupToPerm.user == def_usr)\ | |
|
429 | .scalar() | |
|
430 | ||
|
431 | if default is None: | |
|
432 | log.debug('missing default permission for group %s adding' % g) | |
|
433 | ReposGroupModel()._create_default_perms(g) | |
|
434 | ||
|
418 | 435 | for name, repo in initial_repo_list.items(): |
|
419 | 436 | group = map_groups(name.split(Repository.url_sep())) |
|
420 | 437 | if not rm.get_by_repo_name(name, cache=False): |
General Comments 0
You need to be logged in to leave comments.
Login now