pull-requests: use consistent check who is allowed to delete a pull request.

This commit is contained in:
Marcin Kuzminski 2017-04-06 19:01:10 +02:00
parent 4a94e085d5
commit ee34944cba

View file

@ -576,13 +576,21 @@ class PullrequestsController(BaseRepoController):
def delete(self, repo_name, pull_request_id): def delete(self, repo_name, pull_request_id):
pull_request_id = safe_int(pull_request_id) pull_request_id = safe_int(pull_request_id)
pull_request = PullRequest.get_or_404(pull_request_id) pull_request = PullRequest.get_or_404(pull_request_id)
pr_closed = pull_request.is_closed()
allowed_to_delete = PullRequestModel().check_user_delete(
pull_request, c.rhodecode_user) and not pr_closed
# only owner can delete it ! # only owner can delete it !
if pull_request.author.user_id == c.rhodecode_user.user_id: if allowed_to_delete:
PullRequestModel().delete(pull_request) PullRequestModel().delete(pull_request)
Session().commit() Session().commit()
h.flash(_('Successfully deleted pull request'), h.flash(_('Successfully deleted pull request'),
category='success') category='success')
return redirect(url('my_account_pullrequests')) return redirect(url('my_account_pullrequests'))
h.flash(_('Your are not allowed to delete this pull request'),
category='error')
raise HTTPForbidden() raise HTTPForbidden()
def _get_pr_version(self, pull_request_id, version=None): def _get_pr_version(self, pull_request_id, version=None):