Mercurial > kallithea
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 |