summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Speicher <robert@gitlab.com>2016-03-18 01:21:07 +0000
committerRobert Speicher <robert@gitlab.com>2016-03-18 01:21:07 +0000
commit4c517ce6dc6cecd885d7db473d6ad3905a2f761c (patch)
tree238639eeabe6e20ae59232bbb6c399ea6ba5f2ce
parentabaf7ed2e58121cc44b39a779d02fd7da4541028 (diff)
parentcfb10c103f1298b7c4ec94c76f66445a5969d13f (diff)
downloadgitlab-ce-4c517ce6dc6cecd885d7db473d6ad3905a2f761c.tar.gz
Merge branch 'issue_14374' into 'master'
Check push permissions only when pushing directly to target branch. Fixes #14374 See merge request !3280
-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