Dont allow remove of protected branch

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
This commit is contained in:
Dmitriy Zaporozhets 2014-05-22 15:38:47 +03:00
parent a9d60b3b14
commit 36cac35b24
No known key found for this signature in database
GPG key ID: 627C5F589F467F17

View file

@ -44,14 +44,18 @@ module Gitlab
def push_allowed?(user, project, ref, oldrev, newrev, forced_push)
if user && user_allowed?(user)
action = if project.protected_branch?(ref)
if forced_push.to_s == 'true'
:force_push_code_to_protected_branches
else
:push_code_to_protected_branches
end
else
:push_code
end
# we dont allow force push to protected branch
if forced_push.to_s == 'true'
:force_push_code_to_protected_branches
# and we dont allow remove of protected branch
elsif newrev =~ /0000000/
:remove_protected_branches
else
:push_code_to_protected_branches
end
else
:push_code
end
user.can?(action, project)
else
false