# HG changeset patch # User Marcin Kuzminski # Date 1345588824 -7200 # Node ID 5899fe08f063332c2756d60372bcaddd41fd5960 # Parent aa17c7a1b8a560cb090c6ae28b4c04c2df11e222 Forbid adding files and editing from web interface while repo is locked diff -r aa17c7a1b8a5 -r 5899fe08f063 rhodecode/controllers/files.py --- a/rhodecode/controllers/files.py Wed Aug 22 00:30:02 2012 +0200 +++ b/rhodecode/controllers/files.py Wed Aug 22 00:40:24 2012 +0200 @@ -234,6 +234,15 @@ @LoginRequired() @HasRepoPermissionAnyDecorator('repository.write', 'repository.admin') def edit(self, repo_name, revision, f_path): + repo = Repository.get_by_repo_name(repo_name) + if repo.enable_locking and repo.locked[0]: + h.flash(_('This repository is has been locked by %s on %s') + % (h.person_by_id(repo.locked[0]), + h.fmt_date(h.time_to_datetime(repo.locked[1]))), + 'warning') + return redirect(h.url('files_home', + repo_name=repo_name, revision='tip')) + r_post = request.POST c.cs = self.__get_cs_or_redirect(revision, repo_name) @@ -284,6 +293,16 @@ @LoginRequired() @HasRepoPermissionAnyDecorator('repository.write', 'repository.admin') def add(self, repo_name, revision, f_path): + + repo = Repository.get_by_repo_name(repo_name) + if repo.enable_locking and repo.locked[0]: + h.flash(_('This repository is has been locked by %s on %s') + % (h.person_by_id(repo.locked[0]), + h.fmt_date(h.time_to_datetime(repo.locked[1]))), + 'warning') + return redirect(h.url('files_home', + repo_name=repo_name, revision='tip')) + r_post = request.POST c.cs = self.__get_cs_or_redirect(revision, repo_name, redirect_after=False)