Mercurial > kallithea
diff rhodecode/controllers/forks.py @ 2776:63e58ef80ef1
Merge beta branch into stable
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sun, 02 Sep 2012 21:19:54 +0200 |
parents | d2d35cf2b351 |
children | faffec4abbda |
line wrap: on
line diff
--- a/rhodecode/controllers/forks.py Sat May 19 14:54:50 2012 +0200 +++ b/rhodecode/controllers/forks.py Sun Sep 02 21:19:54 2012 +0200 @@ -35,11 +35,13 @@ from rhodecode.lib.helpers import Page from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator, \ - NotAnonymous, HasRepoPermissionAny + NotAnonymous, HasRepoPermissionAny, HasPermissionAllDecorator,\ + HasPermissionAnyDecorator from rhodecode.lib.base import BaseRepoController, render from rhodecode.model.db import Repository, RepoGroup, UserFollowing, User from rhodecode.model.repo import RepoModel from rhodecode.model.forms import RepoForkForm +from rhodecode.model.scm import ScmModel log = logging.getLogger(__name__) @@ -53,6 +55,8 @@ def __load_defaults(self): c.repo_groups = RepoGroup.groups_choices() c.repo_groups_choices = map(lambda k: unicode(k[0]), c.repo_groups) + choices, c.landing_revs = ScmModel().get_repo_landing_revs() + c.landing_revs_choices = choices def __load_data(self, repo_name=None): """ @@ -120,6 +124,7 @@ return render('/forks/forks.html') @NotAnonymous() + @HasPermissionAnyDecorator('hg.admin', 'hg.fork.repository') @HasRepoPermissionAnyDecorator('repository.read', 'repository.write', 'repository.admin') def fork(self, repo_name): @@ -142,24 +147,23 @@ force_defaults=False ) - @NotAnonymous() + @HasPermissionAnyDecorator('hg.admin', 'hg.fork.repository') @HasRepoPermissionAnyDecorator('repository.read', 'repository.write', 'repository.admin') def fork_create(self, repo_name): self.__load_defaults() c.repo_info = Repository.get_by_repo_name(repo_name) _form = RepoForkForm(old_data={'repo_type': c.repo_info.repo_type}, - repo_groups=c.repo_groups_choices,)() + repo_groups=c.repo_groups_choices, + landing_revs=c.landing_revs_choices)() form_result = {} try: form_result = _form.to_python(dict(request.POST)) - # add org_path of repo so we can do a clone from it later - form_result['org_path'] = c.repo_info.repo_name # create fork is done sometimes async on celery, db transaction # management is handled there. - RepoModel().create_fork(form_result, self.rhodecode_user) + RepoModel().create_fork(form_result, self.rhodecode_user.user_id) h.flash(_('forked %s repository as %s') \ % (repo_name, form_result['repo_name']), category='success')