comparison rhodecode/model/repo.py @ 1401:b7563ad4e7ee beta

Unicode fixes, added safe_str method for global str() operations +better test sandboxing
author Marcin Kuzminski <marcin@python-works.com>
date Thu, 30 Jun 2011 01:25:37 +0200
parents 47182d3bb9cb
children 7592484e84d3
comparison
equal deleted inserted replaced
1400:0d7b56b97953 1401:b7563ad4e7ee
31 from sqlalchemy.orm import joinedload, make_transient 31 from sqlalchemy.orm import joinedload, make_transient
32 32
33 from vcs.utils.lazy import LazyProperty 33 from vcs.utils.lazy import LazyProperty
34 from vcs.backends import get_backend 34 from vcs.backends import get_backend
35 35
36 from rhodecode.lib import safe_str
37
36 from rhodecode.model import BaseModel 38 from rhodecode.model import BaseModel
37 from rhodecode.model.caching_query import FromCache 39 from rhodecode.model.caching_query import FromCache
38 from rhodecode.model.db import Repository, RepoToPerm, User, Permission, \ 40 from rhodecode.model.db import Repository, RepoToPerm, User, Permission, \
39 Statistics, UsersGroup, UsersGroupRepoToPerm, RhodeCodeUi, Group 41 Statistics, UsersGroup, UsersGroupRepoToPerm, RhodeCodeUi, Group
40 from rhodecode.model.user import UserModel 42 from rhodecode.model.user import UserModel
169 171
170 def create(self, form_data, cur_user, just_db=False, fork=False): 172 def create(self, form_data, cur_user, just_db=False, fork=False):
171 173
172 try: 174 try:
173 if fork: 175 if fork:
174 #force str since hg doesn't go with unicode 176 repo_name = form_data['fork_name']
175 repo_name = str(form_data['fork_name']) 177 org_name = form_data['repo_name']
176 org_name = str(form_data['repo_name']) 178 org_full_name = org_name
177 org_full_name = org_name#str(form_data['fork_name_full'])
178 179
179 else: 180 else:
180 org_name = repo_name = str(form_data['repo_name']) 181 org_name = repo_name = form_data['repo_name']
181 repo_name_full = form_data['repo_name_full'] 182 repo_name_full = form_data['repo_name_full']
182 183
183 new_repo = Repository() 184 new_repo = Repository()
184 new_repo.enable_statistics = False 185 new_repo.enable_statistics = False
185 for k, v in form_data.items(): 186 for k, v in form_data.items():
300 :param parent_id: 301 :param parent_id:
301 :param clone_uri: 302 :param clone_uri:
302 """ 303 """
303 from rhodecode.lib.utils import check_repo 304 from rhodecode.lib.utils import check_repo
304 305
305
306 if new_parent_id: 306 if new_parent_id:
307 paths = Group.get(new_parent_id).full_path.split(Group.url_sep()) 307 paths = Group.get(new_parent_id).full_path.split(Group.url_sep())
308 new_parent_path = os.sep.join(paths) 308 new_parent_path = os.sep.join(paths)
309 else: 309 else:
310 new_parent_path = '' 310 new_parent_path = ''
311 311
312 repo_path = os.path.join(self.repos_path, new_parent_path, repo_name) 312 repo_path = os.path.join(*map(lambda x:safe_str(x),
313 313 [self.repos_path, new_parent_path, repo_name]))
314 if check_repo(repo_name, self.repos_path): 314
315 if check_repo(repo_path, self.repos_path):
315 log.info('creating repo %s in %s @ %s', repo_name, repo_path, 316 log.info('creating repo %s in %s @ %s', repo_name, repo_path,
316 clone_uri) 317 clone_uri)
317 backend = get_backend(alias) 318 backend = get_backend(alias)
319
318 backend(repo_path, create=True, src_url=clone_uri) 320 backend(repo_path, create=True, src_url=clone_uri)
321
319 322
320 def __rename_repo(self, old, new): 323 def __rename_repo(self, old, new):
321 """ 324 """
322 renames repository on filesystem 325 renames repository on filesystem
323 326