Mercurial > kallithea
comparison rhodecode/lib/db_manage.py @ 2825:f7a52d548fd0
merge with beta
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Fri, 07 Sep 2012 23:20:33 +0200 |
parents | f9c685144aeb bbaf0b86a1fe |
children | 909143a4dde5 |
comparison
equal
deleted
inserted
replaced
2793:4c13cedbde93 | 2825:f7a52d548fd0 |
---|---|
245 hggit.ui_value = '' | 245 hggit.ui_value = '' |
246 hggit.ui_active = False | 246 hggit.ui_active = False |
247 Session().add(hggit) | 247 Session().add(hggit) |
248 | 248 |
249 notify('re-check default permissions') | 249 notify('re-check default permissions') |
250 self.klass.populate_default_permissions() | 250 default_user = User.get_by_username(User.DEFAULT_USER) |
251 perm = Permission.get_by_key('hg.fork.repository') | |
252 reg_perm = UserToPerm() | |
253 reg_perm.user = default_user | |
254 reg_perm.permission = perm | |
255 Session().add(reg_perm) | |
256 | |
257 def step_7(self): | |
258 perm_fixes = self.klass.reset_permissions(User.DEFAULT_USER) | |
259 Session().commit() | |
260 if perm_fixes: | |
261 notify('There was an inconsistent state of permissions ' | |
262 'detected for default user. Permissions are now ' | |
263 'reset to the default value for default user. ' | |
264 'Please validate and check default permissions ' | |
265 'in admin panel') | |
251 | 266 |
252 upgrade_steps = [0] + range(curr_version + 1, __dbversion__ + 1) | 267 upgrade_steps = [0] + range(curr_version + 1, __dbversion__ + 1) |
253 | 268 |
254 # CALL THE PROPER ORDER OF STEPS TO PERFORM FULL UPGRADE | 269 # CALL THE PROPER ORDER OF STEPS TO PERFORM FULL UPGRADE |
255 _step = None | 270 _step = None |
468 | 483 |
469 if default is None: | 484 if default is None: |
470 log.debug('missing default permission for group %s adding' % g) | 485 log.debug('missing default permission for group %s adding' % g) |
471 ReposGroupModel()._create_default_perms(g) | 486 ReposGroupModel()._create_default_perms(g) |
472 | 487 |
488 def reset_permissions(self, username): | |
489 """ | |
490 Resets permissions to default state, usefull when old systems had | |
491 bad permissions, we must clean them up | |
492 | |
493 :param username: | |
494 :type username: | |
495 """ | |
496 default_user = User.get_by_username(username) | |
497 if not default_user: | |
498 return | |
499 | |
500 u2p = UserToPerm.query()\ | |
501 .filter(UserToPerm.user == default_user).all() | |
502 fixed = False | |
503 if len(u2p) != len(User.DEFAULT_PERMISSIONS): | |
504 for p in u2p: | |
505 Session().delete(p) | |
506 fixed = True | |
507 self.populate_default_permissions() | |
508 return fixed | |
509 | |
473 def config_prompt(self, test_repo_path='', retries=3, defaults={}): | 510 def config_prompt(self, test_repo_path='', retries=3, defaults={}): |
474 _path = defaults.get('repos_location') | 511 _path = defaults.get('repos_location') |
475 if retries == 3: | 512 if retries == 3: |
476 log.info('Setting up repositories config') | 513 log.info('Setting up repositories config') |
477 | 514 |
504 sys.exit('max retries reached') | 541 sys.exit('max retries reached') |
505 if path_ok is False: | 542 if path_ok is False: |
506 retries -= 1 | 543 retries -= 1 |
507 return self.config_prompt(test_repo_path, retries) | 544 return self.config_prompt(test_repo_path, retries) |
508 | 545 |
509 return path | 546 real_path = os.path.realpath(path) |
547 | |
548 if real_path != path: | |
549 if not ask_ok(('Path looks like a symlink, Rhodecode will store ' | |
550 'given path as %s ? [y/n]') % (real_path)): | |
551 log.error('Canceled by user') | |
552 sys.exit(-1) | |
553 | |
554 return real_path | |
510 | 555 |
511 def create_settings(self, path): | 556 def create_settings(self, path): |
512 | 557 |
513 self.create_ui_settings() | 558 self.create_ui_settings() |
514 | 559 |
595 def populate_default_permissions(self): | 640 def populate_default_permissions(self): |
596 log.info('creating default user permissions') | 641 log.info('creating default user permissions') |
597 | 642 |
598 default_user = User.get_by_username('default') | 643 default_user = User.get_by_username('default') |
599 | 644 |
600 for def_perm in ['hg.register.manual_activate', 'hg.create.repository', | 645 for def_perm in User.DEFAULT_PERMISSIONS: |
601 'hg.fork.repository', 'repository.read']: | |
602 | 646 |
603 perm = self.sa.query(Permission)\ | 647 perm = self.sa.query(Permission)\ |
604 .filter(Permission.permission_name == def_perm)\ | 648 .filter(Permission.permission_name == def_perm)\ |
605 .scalar() | 649 .scalar() |
606 if not perm: | 650 if not perm: |