summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRubén Dávila <rdavila84@gmail.com>2016-03-17 15:16:34 -0500
committerRubén Dávila <rdavila84@gmail.com>2016-03-17 15:16:34 -0500
commitcfb10c103f1298b7c4ec94c76f66445a5969d13f (patch)
treecac3ba9eab75f74cdae43aaba52061a2c01c859d
parentf728e4b519bc153534dc9632aa37932e2ac24801 (diff)
downloadgitlab-ce-issue_14374.tar.gz
Check push permissions only when pushing directly to target branch.issue_14374
-rw-r--r--app/services/commits/revert_service.rb7
1 files changed, 4 insertions, 3 deletions
diff --git a/app/services/commits/revert_service.rb b/app/services/commits/revert_service.rb
index 9cb918d7a2e..a3c950ede1f 100644
--- a/app/services/commits/revert_service.rb
+++ b/app/services/commits/revert_service.rb
@@ -9,7 +9,8 @@ module Commits
@commit = params[:commit]
@create_merge_request = params[:create_merge_request].present?
- validate and commit
+ check_push_permissions unless @create_merge_request
+ commit
rescue Repository::CommitError, Gitlab::Git::Repository::InvalidBlobName, GitHooksService::PreReceiveError,
ValidationError, ReversionError => ex
error(ex.message)
@@ -45,11 +46,11 @@ module Commits
end
end
- def validate
+ def check_push_permissions
allowed = ::Gitlab::GitAccess.new(current_user, project).can_push_to_branch?(@target_branch)
unless allowed
- raise_error('You are not allowed to push into this branch')
+ raise ValidationError.new('You are not allowed to push into this branch')
end
true