Mercurial > kallithea
annotate rhodecode/lib/db_manage.py @ 3625:260a7a01b054 beta
follow Python conventions for boolean values
True and False might be singletons and the "default" values for "boolean"
expressions, but "all" values in Python has a boolean value and should be
evaluated as such. Checking with 'is True' and 'is False' is thus confusing,
error prone and unnessarily complex.
If we anywhere rely and nullable boolean fields from the database layer and
don't want the null value to be treated as False then we should check
explicitly for null with 'is None'.
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Thu, 28 Mar 2013 01:10:45 +0100 |
parents | b3cf4539d1bd |
children | 10b4e34841a4 |
rev | line source |
---|---|
835
08d2dcd71666
fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents:
834
diff
changeset
|
1 # -*- coding: utf-8 -*- |
08d2dcd71666
fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents:
834
diff
changeset
|
2 """ |
08d2dcd71666
fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents:
834
diff
changeset
|
3 rhodecode.lib.db_manage |
08d2dcd71666
fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents:
834
diff
changeset
|
4 ~~~~~~~~~~~~~~~~~~~~~~~ |
08d2dcd71666
fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents:
834
diff
changeset
|
5 |
838 | 6 Database creation, and setup module for RhodeCode. Used for creation |
7 of database as well as for migration operations | |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1138
diff
changeset
|
8 |
835
08d2dcd71666
fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents:
834
diff
changeset
|
9 :created_on: Apr 10, 2010 |
08d2dcd71666
fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents:
834
diff
changeset
|
10 :author: marcink |
1824
89efedac4e6c
2012 copyrights
Marcin Kuzminski <marcin@python-works.com>
parents:
1783
diff
changeset
|
11 :copyright: (C) 2010-2012 Marcin Kuzminski <marcin@python-works.com> |
835
08d2dcd71666
fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents:
834
diff
changeset
|
12 :license: GPLv3, see COPYING for more details. |
08d2dcd71666
fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents:
834
diff
changeset
|
13 """ |
1206
a671db5bdd58
fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
14 # This program is free software: you can redistribute it and/or modify |
a671db5bdd58
fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
15 # it under the terms of the GNU General Public License as published by |
a671db5bdd58
fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
16 # the Free Software Foundation, either version 3 of the License, or |
a671db5bdd58
fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
17 # (at your option) any later version. |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1138
diff
changeset
|
18 # |
252
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
249
diff
changeset
|
19 # This program is distributed in the hope that it will be useful, |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
249
diff
changeset
|
20 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
249
diff
changeset
|
21 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
249
diff
changeset
|
22 # GNU General Public License for more details. |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1138
diff
changeset
|
23 # |
252
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
249
diff
changeset
|
24 # You should have received a copy of the GNU General Public License |
1206
a671db5bdd58
fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
25 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
252
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
249
diff
changeset
|
26 |
249
bad9ccac26b7
fixed import errors on db_manage
Marcin Kuzminski <marcin@python-works.com>
parents:
243
diff
changeset
|
27 import os |
bad9ccac26b7
fixed import errors on db_manage
Marcin Kuzminski <marcin@python-works.com>
parents:
243
diff
changeset
|
28 import sys |
327
0e87466a117e
updated installation instruction, made more user friendly way of creating all needed configs. All is done now from paster setup-app
Marcin Kuzminski <marcin@python-works.com>
parents:
307
diff
changeset
|
29 import uuid |
835
08d2dcd71666
fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents:
834
diff
changeset
|
30 import logging |
08d2dcd71666
fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents:
834
diff
changeset
|
31 from os.path import dirname as dn, join as jn |
08d2dcd71666
fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents:
834
diff
changeset
|
32 |
2827
d30c0a9867c4
warn user about not using waitress on python2.5
Marcin Kuzminski <marcin@python-works.com>
parents:
2819
diff
changeset
|
33 from rhodecode import __dbversion__, __py_version__ |
249
bad9ccac26b7
fixed import errors on db_manage
Marcin Kuzminski <marcin@python-works.com>
parents:
243
diff
changeset
|
34 |
1634
1d904d972c47
User usermodel instead of db model to manage accounts
Marcin Kuzminski <marcin@python-works.com>
parents:
1633
diff
changeset
|
35 from rhodecode.model.user import UserModel |
547
1e757ac98988
renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
533
diff
changeset
|
36 from rhodecode.lib.utils import ask_ok |
1e757ac98988
renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
533
diff
changeset
|
37 from rhodecode.model import init_model |
1266
a1bcfe58a1ab
Fixed #161 form saves the create repository permission.
Marcin Kuzminski <marcin@python-works.com>
parents:
1206
diff
changeset
|
38 from rhodecode.model.db import User, Permission, RhodeCodeUi, \ |
2765
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
39 RhodeCodeSetting, UserToPerm, DbMigrateVersion, RepoGroup, \ |
1985
40f04021fa61
Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
40 UserRepoGroupToPerm |
835
08d2dcd71666
fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents:
834
diff
changeset
|
41 |
239
b18f89d6d17f
Adde draft for permissions systems, made all needed decorators, and checks. For future usage in the system.
Marcin Kuzminski <marcin@python-works.com>
parents:
234
diff
changeset
|
42 from sqlalchemy.engine import create_engine |
1985
40f04021fa61
Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
43 from rhodecode.model.repos_group import ReposGroupModel |
2765
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
44 #from rhodecode.model import meta |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
45 from rhodecode.model.meta import Session, Base |
3309
b3cf4539d1bd
Added missing migrations, and move update_repoinfo to RepoModel
Marcin Kuzminski <marcin@python-works.com>
parents:
3232
diff
changeset
|
46 from rhodecode.model.repo import RepoModel |
2765
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
47 |
835
08d2dcd71666
fixed imports on migrate, added getting current version from database
Marcin Kuzminski <marcin@python-works.com>
parents:
834
diff
changeset
|
48 |
351
d09381593b12
updated db manage script, and remove broken test
Marcin Kuzminski <marcin@python-works.com>
parents:
350
diff
changeset
|
49 log = logging.getLogger(__name__) |
66
163464441e0d
updated db manage script for creating interactive admin account and db
Marcin Kuzminski <marcin@python-blog.com>
parents:
59
diff
changeset
|
50 |
1266
a1bcfe58a1ab
Fixed #161 form saves the create repository permission.
Marcin Kuzminski <marcin@python-works.com>
parents:
1206
diff
changeset
|
51 |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
52 def notify(msg): |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
53 """ |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
54 Notification for migrations messages |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
55 """ |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
56 ml = len(msg) + (4 * 2) |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
57 print >> sys.stdout, ('*** %s ***\n%s' % (msg, '*' * ml)).upper() |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
58 |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
59 |
226
c6526b7531e9
rewritten db manage script to use sqlalchemy. Fixed sqlalchemy models to more generic.
Marcin Kuzminski <marcin@python-works.com>
parents:
88
diff
changeset
|
60 class DbManage(object): |
2919
29630805893d
Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents:
2918
diff
changeset
|
61 def __init__(self, log_sql, dbconf, root, tests=False, cli_args={}): |
781
7ae66bddf48d
fixed db manage, to work on other databases than sqlite
Marcin Kuzminski <marcin@python-works.com>
parents:
773
diff
changeset
|
62 self.dbname = dbconf.split('/')[-1] |
459
7c978511c951
implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents:
417
diff
changeset
|
63 self.tests = tests |
552
2642f128ad46
removed egg info, update files for distutils build
Marcin Kuzminski <marcin@python-works.com>
parents:
549
diff
changeset
|
64 self.root = root |
781
7ae66bddf48d
fixed db manage, to work on other databases than sqlite
Marcin Kuzminski <marcin@python-works.com>
parents:
773
diff
changeset
|
65 self.dburi = dbconf |
907
2f83756f3041
Fixed dbmigrate issues.
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
66 self.log_sql = log_sql |
2f83756f3041
Fixed dbmigrate issues.
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
67 self.db_exists = False |
2919
29630805893d
Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents:
2918
diff
changeset
|
68 self.cli_args = cli_args |
907
2f83756f3041
Fixed dbmigrate issues.
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
69 self.init_db() |
2919
29630805893d
Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents:
2918
diff
changeset
|
70 global ask_ok |
29630805893d
Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents:
2918
diff
changeset
|
71 |
3625
260a7a01b054
follow Python conventions for boolean values
Mads Kiilerich <madski@unity3d.com>
parents:
3309
diff
changeset
|
72 if self.cli_args.get('force_ask'): |
2919
29630805893d
Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents:
2918
diff
changeset
|
73 ask_ok = lambda *args, **kwargs: True |
3625
260a7a01b054
follow Python conventions for boolean values
Mads Kiilerich <madski@unity3d.com>
parents:
3309
diff
changeset
|
74 elif not self.cli_args.get('force_ask'): |
2919
29630805893d
Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents:
2918
diff
changeset
|
75 ask_ok = lambda *args, **kwargs: False |
907
2f83756f3041
Fixed dbmigrate issues.
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
76 |
2f83756f3041
Fixed dbmigrate issues.
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
77 def init_db(self): |
2f83756f3041
Fixed dbmigrate issues.
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
78 engine = create_engine(self.dburi, echo=self.log_sql) |
226
c6526b7531e9
rewritten db manage script to use sqlalchemy. Fixed sqlalchemy models to more generic.
Marcin Kuzminski <marcin@python-works.com>
parents:
88
diff
changeset
|
79 init_model(engine) |
2765
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
80 self.sa = Session() |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
81 |
2919
29630805893d
Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents:
2918
diff
changeset
|
82 def create_tables(self, override=False): |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
83 """ |
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
84 Create a auth database |
226
c6526b7531e9
rewritten db manage script to use sqlalchemy. Fixed sqlalchemy models to more generic.
Marcin Kuzminski <marcin@python-works.com>
parents:
88
diff
changeset
|
85 """ |
2919
29630805893d
Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents:
2918
diff
changeset
|
86 |
1138
9c45e11493fb
fixed ldap settings creation, we need to fill in some bool defaults properly to make it work fine
Marcin Kuzminski <marcin@python-works.com>
parents:
1116
diff
changeset
|
87 log.info("Any existing database is going to be destroyed") |
2919
29630805893d
Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents:
2918
diff
changeset
|
88 if self.tests: |
1138
9c45e11493fb
fixed ldap settings creation, we need to fill in some bool defaults properly to make it work fine
Marcin Kuzminski <marcin@python-works.com>
parents:
1116
diff
changeset
|
89 destroy = True |
9c45e11493fb
fixed ldap settings creation, we need to fill in some bool defaults properly to make it work fine
Marcin Kuzminski <marcin@python-works.com>
parents:
1116
diff
changeset
|
90 else: |
9c45e11493fb
fixed ldap settings creation, we need to fill in some bool defaults properly to make it work fine
Marcin Kuzminski <marcin@python-works.com>
parents:
1116
diff
changeset
|
91 destroy = ask_ok('Are you sure to destroy old database ? [y/n]') |
9c45e11493fb
fixed ldap settings creation, we need to fill in some bool defaults properly to make it work fine
Marcin Kuzminski <marcin@python-works.com>
parents:
1116
diff
changeset
|
92 if not destroy: |
2919
29630805893d
Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents:
2918
diff
changeset
|
93 sys.exit('Nothing done') |
1138
9c45e11493fb
fixed ldap settings creation, we need to fill in some bool defaults properly to make it work fine
Marcin Kuzminski <marcin@python-works.com>
parents:
1116
diff
changeset
|
94 if destroy: |
2765
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
95 Base.metadata.drop_all() |
964
84bb5b8b498d
changed dev and tests to postgressql for more error proof setup.
Marcin Kuzminski <marcin@python-works.com>
parents:
907
diff
changeset
|
96 |
351
d09381593b12
updated db manage script, and remove broken test
Marcin Kuzminski <marcin@python-works.com>
parents:
350
diff
changeset
|
97 checkfirst = not override |
2765
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
98 Base.metadata.create_all(checkfirst=checkfirst) |
1976 | 99 log.info('Created tables for %s' % self.dbname) |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
100 |
834
8924ed0e4f36
added current db version into rhodecode,
Marcin Kuzminski <marcin@python-works.com>
parents:
781
diff
changeset
|
101 def set_db_version(self): |
1734
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
102 ver = DbMigrateVersion() |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
103 ver.version = __dbversion__ |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
104 ver.repository_id = 'rhodecode_db_migrations' |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
105 ver.repository_path = 'versions' |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
106 self.sa.add(ver) |
1976 | 107 log.info('db version set to: %s' % __dbversion__) |
834
8924ed0e4f36
added current db version into rhodecode,
Marcin Kuzminski <marcin@python-works.com>
parents:
781
diff
changeset
|
108 |
839
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
109 def upgrade(self): |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
110 """ |
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
111 Upgrades given database schema to given revision following |
900
07f248329a3b
updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
890
diff
changeset
|
112 all needed steps, to perform the upgrade |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1138
diff
changeset
|
113 |
839
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
114 """ |
841
78b3d2d730f2
fixed import problems
Marcin Kuzminski <marcin@python-works.com>
parents:
839
diff
changeset
|
115 |
78b3d2d730f2
fixed import problems
Marcin Kuzminski <marcin@python-works.com>
parents:
839
diff
changeset
|
116 from rhodecode.lib.dbmigrate.migrate.versioning import api |
78b3d2d730f2
fixed import problems
Marcin Kuzminski <marcin@python-works.com>
parents:
839
diff
changeset
|
117 from rhodecode.lib.dbmigrate.migrate.exceptions import \ |
78b3d2d730f2
fixed import problems
Marcin Kuzminski <marcin@python-works.com>
parents:
839
diff
changeset
|
118 DatabaseNotControlledError |
78b3d2d730f2
fixed import problems
Marcin Kuzminski <marcin@python-works.com>
parents:
839
diff
changeset
|
119 |
1835
971ce5e20856
added warning on sqlite when using migration.
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
120 if 'sqlite' in self.dburi: |
971ce5e20856
added warning on sqlite when using migration.
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
121 print ( |
971ce5e20856
added warning on sqlite when using migration.
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
122 '********************** WARNING **********************\n' |
971ce5e20856
added warning on sqlite when using migration.
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
123 'Make sure your version of sqlite is at least 3.7.X. \n' |
971ce5e20856
added warning on sqlite when using migration.
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
124 'Earlier versions are known to fail on some migrations\n' |
971ce5e20856
added warning on sqlite when using migration.
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
125 '*****************************************************\n' |
971ce5e20856
added warning on sqlite when using migration.
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
126 ) |
839
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
127 upgrade = ask_ok('You are about to perform database upgrade, make ' |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
128 'sure You backed up your database before. ' |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
129 'Continue ? [y/n]') |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
130 if not upgrade: |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
131 sys.exit('Nothing done') |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
132 |
843
3b21ba5f7cb0
fixed path issues in upgrade script
Marcin Kuzminski <marcin@python-works.com>
parents:
841
diff
changeset
|
133 repository_path = jn(dn(dn(dn(os.path.realpath(__file__)))), |
3b21ba5f7cb0
fixed path issues in upgrade script
Marcin Kuzminski <marcin@python-works.com>
parents:
841
diff
changeset
|
134 'rhodecode/lib/dbmigrate') |
839
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
135 db_uri = self.dburi |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
136 |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
137 try: |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
138 curr_version = api.db_version(db_uri, repository_path) |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
139 msg = ('Found current database under version' |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
140 ' control with version %s' % curr_version) |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
141 |
1299
8eda822931c9
small fixes for interactive prompt in setup
Marcin Kuzminski <marcin@python-works.com>
parents:
1290
diff
changeset
|
142 except (RuntimeError, DatabaseNotControlledError): |
839
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
143 curr_version = 1 |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
144 msg = ('Current database is not under version control. Setting' |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
145 ' as version %s' % curr_version) |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
146 api.version_control(db_uri, repository_path, curr_version) |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
147 |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
148 notify(msg) |
839
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
149 |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
150 if curr_version == __dbversion__: |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
151 sys.exit('This database is already at the newest version') |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
152 |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
153 #====================================================================== |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
154 # UPGRADE STEPS |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
155 #====================================================================== |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
156 |
839
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
157 class UpgradeSteps(object): |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
158 """ |
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
159 Those steps follow schema versions so for example schema |
900
07f248329a3b
updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
890
diff
changeset
|
160 for example schema with seq 002 == step_2 and so on. |
07f248329a3b
updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
890
diff
changeset
|
161 """ |
839
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
162 |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
163 def __init__(self, klass): |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
164 self.klass = klass |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
165 |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
166 def step_0(self): |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
167 # step 0 is the schema upgrade, and than follow proper upgrades |
3148
b31984972e95
Migration upgrades cache for lightweight dashboard
Marcin Kuzminski <marcin@python-works.com>
parents:
3125
diff
changeset
|
168 notify('attempting to do database upgrade from ' |
b31984972e95
Migration upgrades cache for lightweight dashboard
Marcin Kuzminski <marcin@python-works.com>
parents:
3125
diff
changeset
|
169 'version %s to version %s' %(curr_version, __dbversion__)) |
839
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
170 api.upgrade(db_uri, repository_path, __dbversion__) |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
171 notify('Schema upgrade completed') |
839
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
172 |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
173 def step_1(self): |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
174 pass |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
175 |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
176 def step_2(self): |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
177 notify('Patching repo paths for newer version of RhodeCode') |
839
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
178 self.klass.fix_repo_paths() |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
179 |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
180 notify('Patching default user of RhodeCode') |
839
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
181 self.klass.fix_default_user() |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
182 |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
183 log.info('Changing ui settings') |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
184 self.klass.create_ui_settings() |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
185 |
890
042d38683d42
implemented #89 google analytics code
Marcin Kuzminski <marcin@python-works.com>
parents:
843
diff
changeset
|
186 def step_3(self): |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
187 notify('Adding additional settings into RhodeCode db') |
890
042d38683d42
implemented #89 google analytics code
Marcin Kuzminski <marcin@python-works.com>
parents:
843
diff
changeset
|
188 self.klass.fix_settings() |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
189 notify('Adding ldap defaults') |
1510
90062009bb1e
added default ldap option into migration
Marcin Kuzminski <marcin@python-works.com>
parents:
1503
diff
changeset
|
190 self.klass.create_ldap_options(skip_existing=True) |
1734
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
191 |
1835
971ce5e20856
added warning on sqlite when using migration.
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
192 def step_4(self): |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
193 notify('create permissions and fix groups') |
1987
77b5c24f1887
fixed found issues in upgrade script
Marcin Kuzminski <marcin@python-works.com>
parents:
1986
diff
changeset
|
194 self.klass.create_permissions() |
1985
40f04021fa61
Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
195 self.klass.fixup_groups() |
1835
971ce5e20856
added warning on sqlite when using migration.
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
196 |
2000
72c525a7e7ad
added migrations from 1.2.X to 1.3
Marcin Kuzminski <marcin@python-works.com>
parents:
1987
diff
changeset
|
197 def step_5(self): |
72c525a7e7ad
added migrations from 1.2.X to 1.3
Marcin Kuzminski <marcin@python-works.com>
parents:
1987
diff
changeset
|
198 pass |
2006
34d009e5147a
added clone_uri to API method for creating users
Marcin Kuzminski <marcin@python-works.com>
parents:
2000
diff
changeset
|
199 |
2214
2fd474e63177
Starting RhodeCode 1.4 Branch
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
200 def step_6(self): |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
201 |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
202 notify('re-checking permissions') |
2765
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
203 self.klass.create_permissions() |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
204 |
2781
d03d51b6541e
migration: set new UI options as in old version
Marcin Kuzminski <marcin@python-works.com>
parents:
2779
diff
changeset
|
205 notify('installing new UI options') |
d03d51b6541e
migration: set new UI options as in old version
Marcin Kuzminski <marcin@python-works.com>
parents:
2779
diff
changeset
|
206 sett4 = RhodeCodeSetting('show_public_icon', True) |
d03d51b6541e
migration: set new UI options as in old version
Marcin Kuzminski <marcin@python-works.com>
parents:
2779
diff
changeset
|
207 Session().add(sett4) |
d03d51b6541e
migration: set new UI options as in old version
Marcin Kuzminski <marcin@python-works.com>
parents:
2779
diff
changeset
|
208 sett5 = RhodeCodeSetting('show_private_icon', True) |
d03d51b6541e
migration: set new UI options as in old version
Marcin Kuzminski <marcin@python-works.com>
parents:
2779
diff
changeset
|
209 Session().add(sett5) |
d03d51b6541e
migration: set new UI options as in old version
Marcin Kuzminski <marcin@python-works.com>
parents:
2779
diff
changeset
|
210 sett6 = RhodeCodeSetting('stylify_metatags', False) |
d03d51b6541e
migration: set new UI options as in old version
Marcin Kuzminski <marcin@python-works.com>
parents:
2779
diff
changeset
|
211 Session().add(sett6) |
d03d51b6541e
migration: set new UI options as in old version
Marcin Kuzminski <marcin@python-works.com>
parents:
2779
diff
changeset
|
212 |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
213 notify('fixing old PULL hook') |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
214 _pull = RhodeCodeUi.get_by_key('preoutgoing.pull_logger') |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
215 if _pull: |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
216 _pull.ui_key = RhodeCodeUi.HOOK_PULL |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
217 Session().add(_pull) |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
218 |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
219 notify('fixing old PUSH hook') |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
220 _push = RhodeCodeUi.get_by_key('pretxnchangegroup.push_logger') |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
221 if _push: |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
222 _push.ui_key = RhodeCodeUi.HOOK_PUSH |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
223 Session().add(_push) |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
224 |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
225 notify('installing new pre-push hook') |
2765
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
226 hooks4 = RhodeCodeUi() |
2767
7562f46b1e90
More fixes to upgrade procedure,
Marcin Kuzminski <marcin@python-works.com>
parents:
2765
diff
changeset
|
227 hooks4.ui_section = 'hooks' |
2765
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
228 hooks4.ui_key = RhodeCodeUi.HOOK_PRE_PUSH |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
229 hooks4.ui_value = 'python:rhodecode.lib.hooks.pre_push' |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
230 Session().add(hooks4) |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
231 |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
232 notify('installing new pre-pull hook') |
2765
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
233 hooks6 = RhodeCodeUi() |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
234 hooks6.ui_section = 'hooks' |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
235 hooks6.ui_key = RhodeCodeUi.HOOK_PRE_PULL |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
236 hooks6.ui_value = 'python:rhodecode.lib.hooks.pre_pull' |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
237 Session().add(hooks6) |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
238 |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
239 notify('installing hgsubversion option') |
2765
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
240 # enable hgsubversion disabled by default |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
241 hgsubversion = RhodeCodeUi() |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
242 hgsubversion.ui_section = 'extensions' |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
243 hgsubversion.ui_key = 'hgsubversion' |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
244 hgsubversion.ui_value = '' |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
245 hgsubversion.ui_active = False |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
246 Session().add(hgsubversion) |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
247 |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
248 notify('installing hg git option') |
2765
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
249 # enable hggit disabled by default |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
250 hggit = RhodeCodeUi() |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
251 hggit.ui_section = 'extensions' |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
252 hggit.ui_key = 'hggit' |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
253 hggit.ui_value = '' |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
254 hggit.ui_active = False |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
255 Session().add(hggit) |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
256 |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
257 notify('re-check default permissions') |
2795
456a5190f1cc
fix default permissions migrations that can cause troubles for some old users
Marcin Kuzminski <marcin@python-works.com>
parents:
2781
diff
changeset
|
258 default_user = User.get_by_username(User.DEFAULT_USER) |
456a5190f1cc
fix default permissions migrations that can cause troubles for some old users
Marcin Kuzminski <marcin@python-works.com>
parents:
2781
diff
changeset
|
259 perm = Permission.get_by_key('hg.fork.repository') |
456a5190f1cc
fix default permissions migrations that can cause troubles for some old users
Marcin Kuzminski <marcin@python-works.com>
parents:
2781
diff
changeset
|
260 reg_perm = UserToPerm() |
456a5190f1cc
fix default permissions migrations that can cause troubles for some old users
Marcin Kuzminski <marcin@python-works.com>
parents:
2781
diff
changeset
|
261 reg_perm.user = default_user |
456a5190f1cc
fix default permissions migrations that can cause troubles for some old users
Marcin Kuzminski <marcin@python-works.com>
parents:
2781
diff
changeset
|
262 reg_perm.permission = perm |
456a5190f1cc
fix default permissions migrations that can cause troubles for some old users
Marcin Kuzminski <marcin@python-works.com>
parents:
2781
diff
changeset
|
263 Session().add(reg_perm) |
2765
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
264 |
2797
c9baaacb670a
Remove null from revision column as for comments inside pull requests to work properly
Marcin Kuzminski <marcin@python-works.com>
parents:
2795
diff
changeset
|
265 def step_7(self): |
2798
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
266 perm_fixes = self.klass.reset_permissions(User.DEFAULT_USER) |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
267 Session().commit() |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
268 if perm_fixes: |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
269 notify('There was an inconsistent state of permissions ' |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
270 'detected for default user. Permissions are now ' |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
271 'reset to the default value for default user. ' |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
272 'Please validate and check default permissions ' |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
273 'in admin panel') |
2797
c9baaacb670a
Remove null from revision column as for comments inside pull requests to work properly
Marcin Kuzminski <marcin@python-works.com>
parents:
2795
diff
changeset
|
274 |
3052
d3200c58764e
implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
2919
diff
changeset
|
275 def step_8(self): |
d3200c58764e
implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
2919
diff
changeset
|
276 self.klass.populate_default_permissions() |
3056
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
277 self.klass.create_default_options(skip_existing=True) |
3052
d3200c58764e
implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
2919
diff
changeset
|
278 Session().commit() |
d3200c58764e
implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
2919
diff
changeset
|
279 |
3101
102ef3f1b849
default permissions can get duplicated after migration from 1.4.X. check and verify again it, notify user that he should re-check it.
Marcin Kuzminski <marcin@python-works.com>
parents:
3056
diff
changeset
|
280 def step_9(self): |
102ef3f1b849
default permissions can get duplicated after migration from 1.4.X. check and verify again it, notify user that he should re-check it.
Marcin Kuzminski <marcin@python-works.com>
parents:
3056
diff
changeset
|
281 perm_fixes = self.klass.reset_permissions(User.DEFAULT_USER) |
102ef3f1b849
default permissions can get duplicated after migration from 1.4.X. check and verify again it, notify user that he should re-check it.
Marcin Kuzminski <marcin@python-works.com>
parents:
3056
diff
changeset
|
282 Session().commit() |
102ef3f1b849
default permissions can get duplicated after migration from 1.4.X. check and verify again it, notify user that he should re-check it.
Marcin Kuzminski <marcin@python-works.com>
parents:
3056
diff
changeset
|
283 if perm_fixes: |
102ef3f1b849
default permissions can get duplicated after migration from 1.4.X. check and verify again it, notify user that he should re-check it.
Marcin Kuzminski <marcin@python-works.com>
parents:
3056
diff
changeset
|
284 notify('There was an inconsistent state of permissions ' |
102ef3f1b849
default permissions can get duplicated after migration from 1.4.X. check and verify again it, notify user that he should re-check it.
Marcin Kuzminski <marcin@python-works.com>
parents:
3056
diff
changeset
|
285 'detected for default user. Permissions are now ' |
102ef3f1b849
default permissions can get duplicated after migration from 1.4.X. check and verify again it, notify user that he should re-check it.
Marcin Kuzminski <marcin@python-works.com>
parents:
3056
diff
changeset
|
286 'reset to the default value for default user. ' |
102ef3f1b849
default permissions can get duplicated after migration from 1.4.X. check and verify again it, notify user that he should re-check it.
Marcin Kuzminski <marcin@python-works.com>
parents:
3056
diff
changeset
|
287 'Please validate and check default permissions ' |
102ef3f1b849
default permissions can get duplicated after migration from 1.4.X. check and verify again it, notify user that he should re-check it.
Marcin Kuzminski <marcin@python-works.com>
parents:
3056
diff
changeset
|
288 'in admin panel') |
102ef3f1b849
default permissions can get duplicated after migration from 1.4.X. check and verify again it, notify user that he should re-check it.
Marcin Kuzminski <marcin@python-works.com>
parents:
3056
diff
changeset
|
289 |
3125
9b92cf5a0cca
Added UserIpMap interface for allowed IP addresses and IP restriction access
Marcin Kuzminski <marcin@python-works.com>
parents:
3101
diff
changeset
|
290 def step_10(self): |
9b92cf5a0cca
Added UserIpMap interface for allowed IP addresses and IP restriction access
Marcin Kuzminski <marcin@python-works.com>
parents:
3101
diff
changeset
|
291 pass |
9b92cf5a0cca
Added UserIpMap interface for allowed IP addresses and IP restriction access
Marcin Kuzminski <marcin@python-works.com>
parents:
3101
diff
changeset
|
292 |
3309
b3cf4539d1bd
Added missing migrations, and move update_repoinfo to RepoModel
Marcin Kuzminski <marcin@python-works.com>
parents:
3232
diff
changeset
|
293 def step_11(self): |
b3cf4539d1bd
Added missing migrations, and move update_repoinfo to RepoModel
Marcin Kuzminski <marcin@python-works.com>
parents:
3232
diff
changeset
|
294 self.klass.update_repo_info() |
b3cf4539d1bd
Added missing migrations, and move update_repoinfo to RepoModel
Marcin Kuzminski <marcin@python-works.com>
parents:
3232
diff
changeset
|
295 |
839
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
296 upgrade_steps = [0] + range(curr_version + 1, __dbversion__ + 1) |
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
297 |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
298 # CALL THE PROPER ORDER OF STEPS TO PERFORM FULL UPGRADE |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
299 _step = None |
839
ad66bd0e5601
moved db migration do db manage script, added my cycles for upgrades
Marcin Kuzminski <marcin@python-works.com>
parents:
838
diff
changeset
|
300 for step in upgrade_steps: |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
301 notify('performing upgrade step %s' % step) |
1716
7d1fc253549e
notification to commit author + gardening
Marcin Kuzminski <marcin@python-works.com>
parents:
1694
diff
changeset
|
302 getattr(UpgradeSteps(self), 'step_%s' % step)() |
1987
77b5c24f1887
fixed found issues in upgrade script
Marcin Kuzminski <marcin@python-works.com>
parents:
1986
diff
changeset
|
303 self.sa.commit() |
2779
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
304 _step = step |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
305 |
d0d3158850d4
migrations: fix old hook values
Marcin Kuzminski <marcin@python-works.com>
parents:
2767
diff
changeset
|
306 notify('upgrade to version %s successful' % _step) |
2000
72c525a7e7ad
added migrations from 1.2.X to 1.3
Marcin Kuzminski <marcin@python-works.com>
parents:
1987
diff
changeset
|
307 |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
308 def fix_repo_paths(self): |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
309 """ |
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
310 Fixes a old rhodecode version path into new one without a '*' |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
311 """ |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
312 |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
313 paths = self.sa.query(RhodeCodeUi)\ |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
314 .filter(RhodeCodeUi.ui_key == '/')\ |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
315 .scalar() |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
316 |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
317 paths.ui_value = paths.ui_value.replace('*', '') |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
318 |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
319 try: |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
320 self.sa.add(paths) |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
321 self.sa.commit() |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
322 except: |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
323 self.sa.rollback() |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
324 raise |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
325 |
838 | 326 def fix_default_user(self): |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
327 """ |
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
328 Fixes a old default user with some 'nicer' default values, |
838 | 329 used mostly for anonymous access |
330 """ | |
331 def_user = self.sa.query(User)\ | |
332 .filter(User.username == 'default')\ | |
333 .one() | |
334 | |
335 def_user.name = 'Anonymous' | |
336 def_user.lastname = 'User' | |
337 def_user.email = 'anonymous@rhodecode.org' | |
338 | |
339 try: | |
340 self.sa.add(def_user) | |
341 self.sa.commit() | |
342 except: | |
343 self.sa.rollback() | |
344 raise | |
345 | |
890
042d38683d42
implemented #89 google analytics code
Marcin Kuzminski <marcin@python-works.com>
parents:
843
diff
changeset
|
346 def fix_settings(self): |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
347 """ |
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
348 Fixes rhodecode settings adds ga_code key for google analytics |
890
042d38683d42
implemented #89 google analytics code
Marcin Kuzminski <marcin@python-works.com>
parents:
843
diff
changeset
|
349 """ |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
350 |
1633
2c0d35e336b5
refactoring of models names for repoGroup permissions
Marcin Kuzminski <marcin@python-works.com>
parents:
1510
diff
changeset
|
351 hgsettings3 = RhodeCodeSetting('ga_code', '') |
907
2f83756f3041
Fixed dbmigrate issues.
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
352 |
890
042d38683d42
implemented #89 google analytics code
Marcin Kuzminski <marcin@python-works.com>
parents:
843
diff
changeset
|
353 try: |
042d38683d42
implemented #89 google analytics code
Marcin Kuzminski <marcin@python-works.com>
parents:
843
diff
changeset
|
354 self.sa.add(hgsettings3) |
042d38683d42
implemented #89 google analytics code
Marcin Kuzminski <marcin@python-works.com>
parents:
843
diff
changeset
|
355 self.sa.commit() |
042d38683d42
implemented #89 google analytics code
Marcin Kuzminski <marcin@python-works.com>
parents:
843
diff
changeset
|
356 except: |
042d38683d42
implemented #89 google analytics code
Marcin Kuzminski <marcin@python-works.com>
parents:
843
diff
changeset
|
357 self.sa.rollback() |
042d38683d42
implemented #89 google analytics code
Marcin Kuzminski <marcin@python-works.com>
parents:
843
diff
changeset
|
358 raise |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
359 |
2919
29630805893d
Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents:
2918
diff
changeset
|
360 def admin_prompt(self, second=False): |
459
7c978511c951
implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents:
417
diff
changeset
|
361 if not self.tests: |
7c978511c951
implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents:
417
diff
changeset
|
362 import getpass |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
363 |
2284
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
364 # defaults |
2919
29630805893d
Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents:
2918
diff
changeset
|
365 defaults = self.cli_args |
2284
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
366 username = defaults.get('username') |
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
367 password = defaults.get('password') |
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
368 email = defaults.get('email') |
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
369 |
597
53128b6b9a4d
added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents:
569
diff
changeset
|
370 def get_password(): |
1266
a1bcfe58a1ab
Fixed #161 form saves the create repository permission.
Marcin Kuzminski <marcin@python-works.com>
parents:
1206
diff
changeset
|
371 password = getpass.getpass('Specify admin password ' |
a1bcfe58a1ab
Fixed #161 form saves the create repository permission.
Marcin Kuzminski <marcin@python-works.com>
parents:
1206
diff
changeset
|
372 '(min 6 chars):') |
597
53128b6b9a4d
added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents:
569
diff
changeset
|
373 confirm = getpass.getpass('Confirm password:') |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
374 |
597
53128b6b9a4d
added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents:
569
diff
changeset
|
375 if password != confirm: |
53128b6b9a4d
added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents:
569
diff
changeset
|
376 log.error('passwords mismatch') |
53128b6b9a4d
added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents:
569
diff
changeset
|
377 return False |
53128b6b9a4d
added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents:
569
diff
changeset
|
378 if len(password) < 6: |
53128b6b9a4d
added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents:
569
diff
changeset
|
379 log.error('password is to short use at least 6 characters') |
53128b6b9a4d
added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents:
569
diff
changeset
|
380 return False |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
381 |
597
53128b6b9a4d
added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents:
569
diff
changeset
|
382 return password |
2284
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
383 if username is None: |
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
384 username = raw_input('Specify admin username:') |
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
385 if password is None: |
597
53128b6b9a4d
added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents:
569
diff
changeset
|
386 password = get_password() |
53128b6b9a4d
added password validation, second try on paster setup-app,
Marcin Kuzminski <marcin@python-works.com>
parents:
569
diff
changeset
|
387 if not password: |
2284
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
388 #second try |
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
389 password = get_password() |
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
390 if not password: |
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
391 sys.exit() |
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
392 if email is None: |
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
393 email = raw_input('Specify admin email:') |
491
fefffd6fd5f4
Added some more tests, rewrite testing schema, to autogenerate fresh db, new index.
Marcin Kuzminski <marcin@python-works.com>
parents:
471
diff
changeset
|
394 self.create_user(username, password, email, True) |
459
7c978511c951
implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents:
417
diff
changeset
|
395 else: |
7c978511c951
implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents:
417
diff
changeset
|
396 log.info('creating admin and regular test users') |
2765
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
397 from rhodecode.tests import TEST_USER_ADMIN_LOGIN, \ |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
398 TEST_USER_ADMIN_PASS, TEST_USER_ADMIN_EMAIL, \ |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
399 TEST_USER_REGULAR_LOGIN, TEST_USER_REGULAR_PASS, \ |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
400 TEST_USER_REGULAR_EMAIL, TEST_USER_REGULAR2_LOGIN, \ |
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
401 TEST_USER_REGULAR2_PASS, TEST_USER_REGULAR2_EMAIL |
1758
a87aa385f21c
fixed repo_create permission by adding missing commit statements
Marcin Kuzminski <marcin@python-works.com>
parents:
1749
diff
changeset
|
402 |
a87aa385f21c
fixed repo_create permission by adding missing commit statements
Marcin Kuzminski <marcin@python-works.com>
parents:
1749
diff
changeset
|
403 self.create_user(TEST_USER_ADMIN_LOGIN, TEST_USER_ADMIN_PASS, |
a87aa385f21c
fixed repo_create permission by adding missing commit statements
Marcin Kuzminski <marcin@python-works.com>
parents:
1749
diff
changeset
|
404 TEST_USER_ADMIN_EMAIL, True) |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
405 |
1758
a87aa385f21c
fixed repo_create permission by adding missing commit statements
Marcin Kuzminski <marcin@python-works.com>
parents:
1749
diff
changeset
|
406 self.create_user(TEST_USER_REGULAR_LOGIN, TEST_USER_REGULAR_PASS, |
a87aa385f21c
fixed repo_create permission by adding missing commit statements
Marcin Kuzminski <marcin@python-works.com>
parents:
1749
diff
changeset
|
407 TEST_USER_REGULAR_EMAIL, False) |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
408 |
1758
a87aa385f21c
fixed repo_create permission by adding missing commit statements
Marcin Kuzminski <marcin@python-works.com>
parents:
1749
diff
changeset
|
409 self.create_user(TEST_USER_REGULAR2_LOGIN, TEST_USER_REGULAR2_PASS, |
a87aa385f21c
fixed repo_create permission by adding missing commit statements
Marcin Kuzminski <marcin@python-works.com>
parents:
1749
diff
changeset
|
410 TEST_USER_REGULAR2_EMAIL, False) |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
411 |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
412 def create_ui_settings(self): |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
413 """ |
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
414 Creates ui settings, fills out hooks |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
415 and disables dotencode |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
416 """ |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1138
diff
changeset
|
417 |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
418 #HOOKS |
1460
b50348816a80
Added more advanced hook management into rhodecode admin settings
Marcin Kuzminski <marcin@python-works.com>
parents:
1399
diff
changeset
|
419 hooks1_key = RhodeCodeUi.HOOK_UPDATE |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
420 hooks1_ = self.sa.query(RhodeCodeUi)\ |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
421 .filter(RhodeCodeUi.ui_key == hooks1_key).scalar() |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
422 |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
423 hooks1 = RhodeCodeUi() if hooks1_ is None else hooks1_ |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
424 hooks1.ui_section = 'hooks' |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
425 hooks1.ui_key = hooks1_key |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
426 hooks1.ui_value = 'hg update >&2' |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
427 hooks1.ui_active = False |
2726
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
428 self.sa.add(hooks1) |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
429 |
1460
b50348816a80
Added more advanced hook management into rhodecode admin settings
Marcin Kuzminski <marcin@python-works.com>
parents:
1399
diff
changeset
|
430 hooks2_key = RhodeCodeUi.HOOK_REPO_SIZE |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
431 hooks2_ = self.sa.query(RhodeCodeUi)\ |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
432 .filter(RhodeCodeUi.ui_key == hooks2_key).scalar() |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
433 hooks2 = RhodeCodeUi() if hooks2_ is None else hooks2_ |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
434 hooks2.ui_section = 'hooks' |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
435 hooks2.ui_key = hooks2_key |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
436 hooks2.ui_value = 'python:rhodecode.lib.hooks.repo_size' |
2726
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
437 self.sa.add(hooks2) |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
438 |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
439 hooks3 = RhodeCodeUi() |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
440 hooks3.ui_section = 'hooks' |
1460
b50348816a80
Added more advanced hook management into rhodecode admin settings
Marcin Kuzminski <marcin@python-works.com>
parents:
1399
diff
changeset
|
441 hooks3.ui_key = RhodeCodeUi.HOOK_PUSH |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
442 hooks3.ui_value = 'python:rhodecode.lib.hooks.log_push_action' |
2726
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
443 self.sa.add(hooks3) |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
444 |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
445 hooks4 = RhodeCodeUi() |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
446 hooks4.ui_section = 'hooks' |
2726
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
447 hooks4.ui_key = RhodeCodeUi.HOOK_PRE_PUSH |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
448 hooks4.ui_value = 'python:rhodecode.lib.hooks.pre_push' |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
449 self.sa.add(hooks4) |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
450 |
2726
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
451 hooks5 = RhodeCodeUi() |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
452 hooks5.ui_section = 'hooks' |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
453 hooks5.ui_key = RhodeCodeUi.HOOK_PULL |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
454 hooks5.ui_value = 'python:rhodecode.lib.hooks.log_pull_action' |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
455 self.sa.add(hooks5) |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
456 |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
457 hooks6 = RhodeCodeUi() |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
458 hooks6.ui_section = 'hooks' |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
459 hooks6.ui_key = RhodeCodeUi.HOOK_PRE_PULL |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
460 hooks6.ui_value = 'python:rhodecode.lib.hooks.pre_pull' |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
461 self.sa.add(hooks6) |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
462 |
1694
1450ceb36aa6
enabled largefiles extension by default in rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
1634
diff
changeset
|
463 # enable largefiles |
1734
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
464 largefiles = RhodeCodeUi() |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
465 largefiles.ui_section = 'extensions' |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
466 largefiles.ui_key = 'largefiles' |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
467 largefiles.ui_value = '' |
2726
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
468 self.sa.add(largefiles) |
1694
1450ceb36aa6
enabled largefiles extension by default in rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
1634
diff
changeset
|
469 |
2705
bf177b4981c3
Add hgsubversion entry for RhodeCode UI (disabled by default)
Marcin Kuzminski <marcin@python-works.com>
parents:
2662
diff
changeset
|
470 # enable hgsubversion disabled by default |
bf177b4981c3
Add hgsubversion entry for RhodeCode UI (disabled by default)
Marcin Kuzminski <marcin@python-works.com>
parents:
2662
diff
changeset
|
471 hgsubversion = RhodeCodeUi() |
bf177b4981c3
Add hgsubversion entry for RhodeCode UI (disabled by default)
Marcin Kuzminski <marcin@python-works.com>
parents:
2662
diff
changeset
|
472 hgsubversion.ui_section = 'extensions' |
bf177b4981c3
Add hgsubversion entry for RhodeCode UI (disabled by default)
Marcin Kuzminski <marcin@python-works.com>
parents:
2662
diff
changeset
|
473 hgsubversion.ui_key = 'hgsubversion' |
bf177b4981c3
Add hgsubversion entry for RhodeCode UI (disabled by default)
Marcin Kuzminski <marcin@python-works.com>
parents:
2662
diff
changeset
|
474 hgsubversion.ui_value = '' |
bf177b4981c3
Add hgsubversion entry for RhodeCode UI (disabled by default)
Marcin Kuzminski <marcin@python-works.com>
parents:
2662
diff
changeset
|
475 hgsubversion.ui_active = False |
2726
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
476 self.sa.add(hgsubversion) |
2705
bf177b4981c3
Add hgsubversion entry for RhodeCode UI (disabled by default)
Marcin Kuzminski <marcin@python-works.com>
parents:
2662
diff
changeset
|
477 |
2708
9bce679a3f49
Added form for controlling mercurial extensions
Marcin Kuzminski <marcin@python-works.com>
parents:
2705
diff
changeset
|
478 # enable hggit disabled by default |
9bce679a3f49
Added form for controlling mercurial extensions
Marcin Kuzminski <marcin@python-works.com>
parents:
2705
diff
changeset
|
479 hggit = RhodeCodeUi() |
9bce679a3f49
Added form for controlling mercurial extensions
Marcin Kuzminski <marcin@python-works.com>
parents:
2705
diff
changeset
|
480 hggit.ui_section = 'extensions' |
9bce679a3f49
Added form for controlling mercurial extensions
Marcin Kuzminski <marcin@python-works.com>
parents:
2705
diff
changeset
|
481 hggit.ui_key = 'hggit' |
9bce679a3f49
Added form for controlling mercurial extensions
Marcin Kuzminski <marcin@python-works.com>
parents:
2705
diff
changeset
|
482 hggit.ui_value = '' |
9bce679a3f49
Added form for controlling mercurial extensions
Marcin Kuzminski <marcin@python-works.com>
parents:
2705
diff
changeset
|
483 hggit.ui_active = False |
9bce679a3f49
Added form for controlling mercurial extensions
Marcin Kuzminski <marcin@python-works.com>
parents:
2705
diff
changeset
|
484 self.sa.add(hggit) |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
485 |
1734
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
486 def create_ldap_options(self, skip_existing=False): |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
487 """Creates ldap settings""" |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
488 |
1734
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
489 for k, v in [('ldap_active', 'false'), ('ldap_host', ''), |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
490 ('ldap_port', '389'), ('ldap_tls_kind', 'PLAIN'), |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
491 ('ldap_tls_reqcert', ''), ('ldap_dn_user', ''), |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
492 ('ldap_dn_pass', ''), ('ldap_base_dn', ''), |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
493 ('ldap_filter', ''), ('ldap_search_scope', ''), |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
494 ('ldap_attr_login', ''), ('ldap_attr_firstname', ''), |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
495 ('ldap_attr_lastname', ''), ('ldap_attr_email', '')]: |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
496 |
1734
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
497 if skip_existing and RhodeCodeSetting.get_by_name(k) != None: |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
498 log.debug('Skipping option %s' % k) |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
499 continue |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
500 setting = RhodeCodeSetting(k, v) |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
501 self.sa.add(setting) |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
502 |
3056
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
503 def create_default_options(self, skip_existing=False): |
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
504 """Creates default settings""" |
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
505 |
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
506 for k, v in [ |
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
507 ('default_repo_enable_locking', False), |
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
508 ('default_repo_enable_downloads', False), |
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
509 ('default_repo_enable_statistics', False), |
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
510 ('default_repo_private', False), |
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
511 ('default_repo_type', 'hg')]: |
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
512 |
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
513 if skip_existing and RhodeCodeSetting.get_by_name(k) != None: |
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
514 log.debug('Skipping option %s' % k) |
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
515 continue |
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
516 setting = RhodeCodeSetting(k, v) |
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
517 self.sa.add(setting) |
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
518 |
1985
40f04021fa61
Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
519 def fixup_groups(self): |
40f04021fa61
Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
520 def_usr = User.get_by_username('default') |
40f04021fa61
Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
521 for g in RepoGroup.query().all(): |
40f04021fa61
Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
522 g.group_name = g.get_new_name(g.name) |
40f04021fa61
Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
523 self.sa.add(g) |
40f04021fa61
Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
524 # get default perm |
40f04021fa61
Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
525 default = UserRepoGroupToPerm.query()\ |
40f04021fa61
Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
526 .filter(UserRepoGroupToPerm.group == g)\ |
40f04021fa61
Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
527 .filter(UserRepoGroupToPerm.user == def_usr)\ |
40f04021fa61
Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
528 .scalar() |
40f04021fa61
Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
529 |
40f04021fa61
Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
530 if default is None: |
40f04021fa61
Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
531 log.debug('missing default permission for group %s adding' % g) |
40f04021fa61
Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
532 ReposGroupModel()._create_default_perms(g) |
40f04021fa61
Added group permission autofix for older version of rhodecode which didn't have default permissions for repos groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
533 |
2798
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
534 def reset_permissions(self, username): |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
535 """ |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
536 Resets permissions to default state, usefull when old systems had |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
537 bad permissions, we must clean them up |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
538 |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
539 :param username: |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
540 :type username: |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
541 """ |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
542 default_user = User.get_by_username(username) |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
543 if not default_user: |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
544 return |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
545 |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
546 u2p = UserToPerm.query()\ |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
547 .filter(UserToPerm.user == default_user).all() |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
548 fixed = False |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
549 if len(u2p) != len(User.DEFAULT_PERMISSIONS): |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
550 for p in u2p: |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
551 Session().delete(p) |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
552 fixed = True |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
553 self.populate_default_permissions() |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
554 return fixed |
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
555 |
3309
b3cf4539d1bd
Added missing migrations, and move update_repoinfo to RepoModel
Marcin Kuzminski <marcin@python-works.com>
parents:
3232
diff
changeset
|
556 def update_repo_info(self): |
b3cf4539d1bd
Added missing migrations, and move update_repoinfo to RepoModel
Marcin Kuzminski <marcin@python-works.com>
parents:
3232
diff
changeset
|
557 RepoModel.update_repoinfo() |
b3cf4539d1bd
Added missing migrations, and move update_repoinfo to RepoModel
Marcin Kuzminski <marcin@python-works.com>
parents:
3232
diff
changeset
|
558 |
2919
29630805893d
Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents:
2918
diff
changeset
|
559 def config_prompt(self, test_repo_path='', retries=3): |
29630805893d
Implemented proposed changes from pull request #77
Marcin Kuzminski <marcin@python-works.com>
parents:
2918
diff
changeset
|
560 defaults = self.cli_args |
2284
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
561 _path = defaults.get('repos_location') |
1094
44661d2a7b61
fixes #120 websetup command runs os.access on given path checking for write access
Marcin Kuzminski <marcin@python-works.com>
parents:
991
diff
changeset
|
562 if retries == 3: |
44661d2a7b61
fixes #120 websetup command runs os.access on given path checking for write access
Marcin Kuzminski <marcin@python-works.com>
parents:
991
diff
changeset
|
563 log.info('Setting up repositories config') |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
564 |
2284
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
565 if _path is not None: |
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
566 path = _path |
e285aa097a81
new setup-rhodecode command with optional defaults
Marcin Kuzminski <marcin@python-works.com>
parents:
2112
diff
changeset
|
567 elif not self.tests and not test_repo_path: |
1896
12135cff4c77
more user friendly message for repo path on setup
Marcin Kuzminski <marcin@python-works.com>
parents:
1835
diff
changeset
|
568 path = raw_input( |
2112
1477e048292e
force and check for absolute path on rhodecode setup
Marcin Kuzminski <marcin@python-works.com>
parents:
2006
diff
changeset
|
569 'Enter a valid absolute path to store repositories. ' |
1896
12135cff4c77
more user friendly message for repo path on setup
Marcin Kuzminski <marcin@python-works.com>
parents:
1835
diff
changeset
|
570 'All repositories in that path will be added automatically:' |
12135cff4c77
more user friendly message for repo path on setup
Marcin Kuzminski <marcin@python-works.com>
parents:
1835
diff
changeset
|
571 ) |
459
7c978511c951
implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents:
417
diff
changeset
|
572 else: |
7c978511c951
implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents:
417
diff
changeset
|
573 path = test_repo_path |
1094
44661d2a7b61
fixes #120 websetup command runs os.access on given path checking for write access
Marcin Kuzminski <marcin@python-works.com>
parents:
991
diff
changeset
|
574 path_ok = True |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
575 |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
576 # check proper dir |
341
1ef52a70f3b7
Made config file free configuration based on database and capable of beeing manage via application settings + some code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
327
diff
changeset
|
577 if not os.path.isdir(path): |
1094
44661d2a7b61
fixes #120 websetup command runs os.access on given path checking for write access
Marcin Kuzminski <marcin@python-works.com>
parents:
991
diff
changeset
|
578 path_ok = False |
1976 | 579 log.error('Given path %s is not a valid directory' % path) |
1094
44661d2a7b61
fixes #120 websetup command runs os.access on given path checking for write access
Marcin Kuzminski <marcin@python-works.com>
parents:
991
diff
changeset
|
580 |
2112
1477e048292e
force and check for absolute path on rhodecode setup
Marcin Kuzminski <marcin@python-works.com>
parents:
2006
diff
changeset
|
581 elif not os.path.isabs(path): |
1477e048292e
force and check for absolute path on rhodecode setup
Marcin Kuzminski <marcin@python-works.com>
parents:
2006
diff
changeset
|
582 path_ok = False |
1477e048292e
force and check for absolute path on rhodecode setup
Marcin Kuzminski <marcin@python-works.com>
parents:
2006
diff
changeset
|
583 log.error('Given path %s is not an absolute path' % path) |
1477e048292e
force and check for absolute path on rhodecode setup
Marcin Kuzminski <marcin@python-works.com>
parents:
2006
diff
changeset
|
584 |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
585 # check write access |
2112
1477e048292e
force and check for absolute path on rhodecode setup
Marcin Kuzminski <marcin@python-works.com>
parents:
2006
diff
changeset
|
586 elif not os.access(path, os.W_OK) and path_ok: |
1094
44661d2a7b61
fixes #120 websetup command runs os.access on given path checking for write access
Marcin Kuzminski <marcin@python-works.com>
parents:
991
diff
changeset
|
587 path_ok = False |
1976 | 588 log.error('No write permission to given path %s' % path) |
1094
44661d2a7b61
fixes #120 websetup command runs os.access on given path checking for write access
Marcin Kuzminski <marcin@python-works.com>
parents:
991
diff
changeset
|
589 |
44661d2a7b61
fixes #120 websetup command runs os.access on given path checking for write access
Marcin Kuzminski <marcin@python-works.com>
parents:
991
diff
changeset
|
590 if retries == 0: |
1399
4134af931e91
Added info about sys.exit cause
Marcin Kuzminski <marcin@python-works.com>
parents:
1299
diff
changeset
|
591 sys.exit('max retries reached') |
3625
260a7a01b054
follow Python conventions for boolean values
Mads Kiilerich <madski@unity3d.com>
parents:
3309
diff
changeset
|
592 if not path_ok: |
1094
44661d2a7b61
fixes #120 websetup command runs os.access on given path checking for write access
Marcin Kuzminski <marcin@python-works.com>
parents:
991
diff
changeset
|
593 retries -= 1 |
44661d2a7b61
fixes #120 websetup command runs os.access on given path checking for write access
Marcin Kuzminski <marcin@python-works.com>
parents:
991
diff
changeset
|
594 return self.config_prompt(test_repo_path, retries) |
44661d2a7b61
fixes #120 websetup command runs os.access on given path checking for write access
Marcin Kuzminski <marcin@python-works.com>
parents:
991
diff
changeset
|
595 |
2918
ce8572f45c85
use normpath when comparing paths used to determine if directory is a symlink, it's a part of pull-request #77
Marcin Kuzminski <marcin@python-works.com>
parents:
2907
diff
changeset
|
596 real_path = os.path.normpath(os.path.realpath(path)) |
2819
bbaf0b86a1fe
Detect symlink in given repository path, and ask user if stored path should be were the symlink points
Marcin Kuzminski <marcin@python-works.com>
parents:
2798
diff
changeset
|
597 |
2918
ce8572f45c85
use normpath when comparing paths used to determine if directory is a symlink, it's a part of pull-request #77
Marcin Kuzminski <marcin@python-works.com>
parents:
2907
diff
changeset
|
598 if real_path != os.path.normpath(path): |
2819
bbaf0b86a1fe
Detect symlink in given repository path, and ask user if stored path should be were the symlink points
Marcin Kuzminski <marcin@python-works.com>
parents:
2798
diff
changeset
|
599 if not ask_ok(('Path looks like a symlink, Rhodecode will store ' |
bbaf0b86a1fe
Detect symlink in given repository path, and ask user if stored path should be were the symlink points
Marcin Kuzminski <marcin@python-works.com>
parents:
2798
diff
changeset
|
600 'given path as %s ? [y/n]') % (real_path)): |
bbaf0b86a1fe
Detect symlink in given repository path, and ask user if stored path should be were the symlink points
Marcin Kuzminski <marcin@python-works.com>
parents:
2798
diff
changeset
|
601 log.error('Canceled by user') |
bbaf0b86a1fe
Detect symlink in given repository path, and ask user if stored path should be were the symlink points
Marcin Kuzminski <marcin@python-works.com>
parents:
2798
diff
changeset
|
602 sys.exit(-1) |
bbaf0b86a1fe
Detect symlink in given repository path, and ask user if stored path should be were the symlink points
Marcin Kuzminski <marcin@python-works.com>
parents:
2798
diff
changeset
|
603 |
bbaf0b86a1fe
Detect symlink in given repository path, and ask user if stored path should be were the symlink points
Marcin Kuzminski <marcin@python-works.com>
parents:
2798
diff
changeset
|
604 return real_path |
1094
44661d2a7b61
fixes #120 websetup command runs os.access on given path checking for write access
Marcin Kuzminski <marcin@python-works.com>
parents:
991
diff
changeset
|
605 |
44661d2a7b61
fixes #120 websetup command runs os.access on given path checking for write access
Marcin Kuzminski <marcin@python-works.com>
parents:
991
diff
changeset
|
606 def create_settings(self, path): |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
607 |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
608 self.create_ui_settings() |
673
dd532af216d9
#49 Enabled anonymous access for web interface controllable from permissions pannel
Marcin Kuzminski <marcin@python-works.com>
parents:
657
diff
changeset
|
609 |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
610 #HG UI OPTIONS |
549
f99075170eb4
more renames for rhode code !!
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
611 web1 = RhodeCodeUi() |
341
1ef52a70f3b7
Made config file free configuration based on database and capable of beeing manage via application settings + some code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
327
diff
changeset
|
612 web1.ui_section = 'web' |
1ef52a70f3b7
Made config file free configuration based on database and capable of beeing manage via application settings + some code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
327
diff
changeset
|
613 web1.ui_key = 'push_ssl' |
1ef52a70f3b7
Made config file free configuration based on database and capable of beeing manage via application settings + some code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
327
diff
changeset
|
614 web1.ui_value = 'false' |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
615 |
549
f99075170eb4
more renames for rhode code !!
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
616 web2 = RhodeCodeUi() |
341
1ef52a70f3b7
Made config file free configuration based on database and capable of beeing manage via application settings + some code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
327
diff
changeset
|
617 web2.ui_section = 'web' |
1ef52a70f3b7
Made config file free configuration based on database and capable of beeing manage via application settings + some code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
327
diff
changeset
|
618 web2.ui_key = 'allow_archive' |
1ef52a70f3b7
Made config file free configuration based on database and capable of beeing manage via application settings + some code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
327
diff
changeset
|
619 web2.ui_value = 'gz zip bz2' |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
620 |
549
f99075170eb4
more renames for rhode code !!
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
621 web3 = RhodeCodeUi() |
341
1ef52a70f3b7
Made config file free configuration based on database and capable of beeing manage via application settings + some code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
327
diff
changeset
|
622 web3.ui_section = 'web' |
1ef52a70f3b7
Made config file free configuration based on database and capable of beeing manage via application settings + some code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
327
diff
changeset
|
623 web3.ui_key = 'allow_push' |
1ef52a70f3b7
Made config file free configuration based on database and capable of beeing manage via application settings + some code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
327
diff
changeset
|
624 web3.ui_value = '*' |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
625 |
549
f99075170eb4
more renames for rhode code !!
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
626 web4 = RhodeCodeUi() |
341
1ef52a70f3b7
Made config file free configuration based on database and capable of beeing manage via application settings + some code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
327
diff
changeset
|
627 web4.ui_section = 'web' |
1ef52a70f3b7
Made config file free configuration based on database and capable of beeing manage via application settings + some code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
327
diff
changeset
|
628 web4.ui_key = 'baseurl' |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
629 web4.ui_value = '/' |
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
630 |
549
f99075170eb4
more renames for rhode code !!
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
631 paths = RhodeCodeUi() |
341
1ef52a70f3b7
Made config file free configuration based on database and capable of beeing manage via application settings + some code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
327
diff
changeset
|
632 paths.ui_section = 'paths' |
1ef52a70f3b7
Made config file free configuration based on database and capable of beeing manage via application settings + some code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
327
diff
changeset
|
633 paths.ui_key = '/' |
631
05528ad948c4
Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
634 paths.ui_value = path |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
635 |
2726
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
636 phases = RhodeCodeUi() |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
637 phases.ui_section = 'phases' |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
638 phases.ui_key = 'publish' |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
639 phases.ui_value = False |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2709
diff
changeset
|
640 |
2662
91c442a489bb
sqlalchemy sessions cleanup in admin
Marcin Kuzminski <marcin@python-works.com>
parents:
2651
diff
changeset
|
641 sett1 = RhodeCodeSetting('realm', 'RhodeCode authentication') |
91c442a489bb
sqlalchemy sessions cleanup in admin
Marcin Kuzminski <marcin@python-works.com>
parents:
2651
diff
changeset
|
642 sett2 = RhodeCodeSetting('title', 'RhodeCode') |
91c442a489bb
sqlalchemy sessions cleanup in admin
Marcin Kuzminski <marcin@python-works.com>
parents:
2651
diff
changeset
|
643 sett3 = RhodeCodeSetting('ga_code', '') |
91c442a489bb
sqlalchemy sessions cleanup in admin
Marcin Kuzminski <marcin@python-works.com>
parents:
2651
diff
changeset
|
644 |
91c442a489bb
sqlalchemy sessions cleanup in admin
Marcin Kuzminski <marcin@python-works.com>
parents:
2651
diff
changeset
|
645 sett4 = RhodeCodeSetting('show_public_icon', True) |
91c442a489bb
sqlalchemy sessions cleanup in admin
Marcin Kuzminski <marcin@python-works.com>
parents:
2651
diff
changeset
|
646 sett5 = RhodeCodeSetting('show_private_icon', True) |
91c442a489bb
sqlalchemy sessions cleanup in admin
Marcin Kuzminski <marcin@python-works.com>
parents:
2651
diff
changeset
|
647 sett6 = RhodeCodeSetting('stylify_metatags', False) |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
648 |
1734
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
649 self.sa.add(web1) |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
650 self.sa.add(web2) |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
651 self.sa.add(web3) |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
652 self.sa.add(web4) |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
653 self.sa.add(paths) |
2662
91c442a489bb
sqlalchemy sessions cleanup in admin
Marcin Kuzminski <marcin@python-works.com>
parents:
2651
diff
changeset
|
654 self.sa.add(sett1) |
91c442a489bb
sqlalchemy sessions cleanup in admin
Marcin Kuzminski <marcin@python-works.com>
parents:
2651
diff
changeset
|
655 self.sa.add(sett2) |
91c442a489bb
sqlalchemy sessions cleanup in admin
Marcin Kuzminski <marcin@python-works.com>
parents:
2651
diff
changeset
|
656 self.sa.add(sett3) |
91c442a489bb
sqlalchemy sessions cleanup in admin
Marcin Kuzminski <marcin@python-works.com>
parents:
2651
diff
changeset
|
657 self.sa.add(sett4) |
91c442a489bb
sqlalchemy sessions cleanup in admin
Marcin Kuzminski <marcin@python-works.com>
parents:
2651
diff
changeset
|
658 self.sa.add(sett5) |
91c442a489bb
sqlalchemy sessions cleanup in admin
Marcin Kuzminski <marcin@python-works.com>
parents:
2651
diff
changeset
|
659 self.sa.add(sett6) |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
660 |
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
661 self.create_ldap_options() |
3056
6104dfd35b16
Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3052
diff
changeset
|
662 self.create_default_options() |
837
60cbde084047
fixed wrong migration schema
Marcin Kuzminski <marcin@python-works.com>
parents:
835
diff
changeset
|
663 |
341
1ef52a70f3b7
Made config file free configuration based on database and capable of beeing manage via application settings + some code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
327
diff
changeset
|
664 log.info('created ui config') |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
665 |
491
fefffd6fd5f4
Added some more tests, rewrite testing schema, to autogenerate fresh db, new index.
Marcin Kuzminski <marcin@python-works.com>
parents:
471
diff
changeset
|
666 def create_user(self, username, password, email='', admin=False): |
1976 | 667 log.info('creating user %s' % username) |
1734
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
668 UserModel().create_or_update(username, password, email, |
2513
388843a3a3c0
Updated create_or_update method to not change API key when password is not updated
Marcin Kuzminski <marcin@python-works.com>
parents:
2285
diff
changeset
|
669 firstname='RhodeCode', lastname='Admin', |
1634
1d904d972c47
User usermodel instead of db model to manage accounts
Marcin Kuzminski <marcin@python-works.com>
parents:
1633
diff
changeset
|
670 active=True, admin=admin) |
459
7c978511c951
implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents:
417
diff
changeset
|
671 |
7c978511c951
implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents:
417
diff
changeset
|
672 def create_default_user(self): |
7c978511c951
implemented basic (startup) nose test suite.
Marcin Kuzminski <marcin@python-works.com>
parents:
417
diff
changeset
|
673 log.info('creating default user') |
1634
1d904d972c47
User usermodel instead of db model to manage accounts
Marcin Kuzminski <marcin@python-works.com>
parents:
1633
diff
changeset
|
674 # create default user for handling default permissions. |
1734
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
675 UserModel().create_or_update(username='default', |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
676 password=str(uuid.uuid1())[:8], |
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
677 email='anonymous@rhodecode.org', |
2513
388843a3a3c0
Updated create_or_update method to not change API key when password is not updated
Marcin Kuzminski <marcin@python-works.com>
parents:
2285
diff
changeset
|
678 firstname='Anonymous', lastname='User') |
1734
48d4fcf04a29
another major refactoring with session management
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
679 |
239
b18f89d6d17f
Adde draft for permissions systems, made all needed decorators, and checks. For future usage in the system.
Marcin Kuzminski <marcin@python-works.com>
parents:
234
diff
changeset
|
680 def create_permissions(self): |
1783
dde0ef0d886f
fixes #324 proper largefiles extension enable
Marcin Kuzminski <marcin@python-works.com>
parents:
1758
diff
changeset
|
681 # module.(access|create|change|delete)_[name] |
1982
87f0800abc7b
#227 Initial version of repository groups permissions system
Marcin Kuzminski <marcin@python-works.com>
parents:
1976
diff
changeset
|
682 # module.(none|read|write|admin) |
1266
a1bcfe58a1ab
Fixed #161 form saves the create repository permission.
Marcin Kuzminski <marcin@python-works.com>
parents:
1206
diff
changeset
|
683 |
2532
19de74e33fb0
Better descriptions of given permission overview in edit user view
Marcin Kuzminski <marcin@python-works.com>
parents:
2513
diff
changeset
|
684 for p in Permission.PERMS: |
1987
77b5c24f1887
fixed found issues in upgrade script
Marcin Kuzminski <marcin@python-works.com>
parents:
1986
diff
changeset
|
685 if not Permission.get_by_key(p[0]): |
1986
367d76f5fcf5
added re-creation of permissions into step4 upgrade
Marcin Kuzminski <marcin@python-works.com>
parents:
1985
diff
changeset
|
686 new_perm = Permission() |
367d76f5fcf5
added re-creation of permissions into step4 upgrade
Marcin Kuzminski <marcin@python-works.com>
parents:
1985
diff
changeset
|
687 new_perm.permission_name = p[0] |
2532
19de74e33fb0
Better descriptions of given permission overview in edit user view
Marcin Kuzminski <marcin@python-works.com>
parents:
2513
diff
changeset
|
688 new_perm.permission_longname = p[0] |
1986
367d76f5fcf5
added re-creation of permissions into step4 upgrade
Marcin Kuzminski <marcin@python-works.com>
parents:
1985
diff
changeset
|
689 self.sa.add(new_perm) |
417
3ed2d46a2ca7
permission refactoring,
Marcin Kuzminski <marcin@python-works.com>
parents:
392
diff
changeset
|
690 |
3ed2d46a2ca7
permission refactoring,
Marcin Kuzminski <marcin@python-works.com>
parents:
392
diff
changeset
|
691 def populate_default_permissions(self): |
3ed2d46a2ca7
permission refactoring,
Marcin Kuzminski <marcin@python-works.com>
parents:
392
diff
changeset
|
692 log.info('creating default user permissions') |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
693 |
2709
d2d35cf2b351
RhodeCode now has a option to explicitly set forking permissions. ref #508
Marcin Kuzminski <marcin@python-works.com>
parents:
2708
diff
changeset
|
694 default_user = User.get_by_username('default') |
629
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
695 |
2798
091e99b29fd4
auto-healing of permissions for default user after upgrading from some old versions.
Marcin Kuzminski <marcin@python-works.com>
parents:
2797
diff
changeset
|
696 for def_perm in User.DEFAULT_PERMISSIONS: |
2709
d2d35cf2b351
RhodeCode now has a option to explicitly set forking permissions. ref #508
Marcin Kuzminski <marcin@python-works.com>
parents:
2708
diff
changeset
|
697 |
2765
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
698 perm = self.sa.query(Permission)\ |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
699 .filter(Permission.permission_name == def_perm)\ |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
700 .scalar() |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
701 if not perm: |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
702 raise Exception( |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
703 'CRITICAL: permission %s not found inside database !!' |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
704 % def_perm |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
705 ) |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
706 if not UserToPerm.query()\ |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
707 .filter(UserToPerm.permission == perm)\ |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
708 .filter(UserToPerm.user == default_user).scalar(): |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
709 reg_perm = UserToPerm() |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
710 reg_perm.user = default_user |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
711 reg_perm.permission = perm |
186b1cf7f759
Step6a for migrations from 1.3.6
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
712 self.sa.add(reg_perm) |
2827
d30c0a9867c4
warn user about not using waitress on python2.5
Marcin Kuzminski <marcin@python-works.com>
parents:
2819
diff
changeset
|
713 |
3232
99c093d1a142
run waitress check on startup
Marcin Kuzminski <marcin@python-works.com>
parents:
3148
diff
changeset
|
714 @staticmethod |
99c093d1a142
run waitress check on startup
Marcin Kuzminski <marcin@python-works.com>
parents:
3148
diff
changeset
|
715 def check_waitress(): |
2827
d30c0a9867c4
warn user about not using waitress on python2.5
Marcin Kuzminski <marcin@python-works.com>
parents:
2819
diff
changeset
|
716 """ |
d30c0a9867c4
warn user about not using waitress on python2.5
Marcin Kuzminski <marcin@python-works.com>
parents:
2819
diff
changeset
|
717 Function executed at the end of setup |
d30c0a9867c4
warn user about not using waitress on python2.5
Marcin Kuzminski <marcin@python-works.com>
parents:
2819
diff
changeset
|
718 """ |
d30c0a9867c4
warn user about not using waitress on python2.5
Marcin Kuzminski <marcin@python-works.com>
parents:
2819
diff
changeset
|
719 if not __py_version__ >= (2, 6): |
d30c0a9867c4
warn user about not using waitress on python2.5
Marcin Kuzminski <marcin@python-works.com>
parents:
2819
diff
changeset
|
720 notify('Python2.5 detected, please switch ' |
d30c0a9867c4
warn user about not using waitress on python2.5
Marcin Kuzminski <marcin@python-works.com>
parents:
2819
diff
changeset
|
721 'egg:waitress#main -> egg:Paste#http ' |
2907
0b86972de820
white space cleanup
Marcin Kuzminski <marcin@python-works.com>
parents:
2827
diff
changeset
|
722 'in your .ini file') |