summaryrefslogtreecommitdiff
path: root/app/helpers/branches_helper.rb
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-06-02 16:18:16 +0300
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-06-02 16:18:16 +0300
commitd514833a1579d50070fc687acc2af4f135b25a56 (patch)
treeb09a84fc121b9fde42437b0eedc66a2bd8d2aa57 /app/helpers/branches_helper.rb
parent2c46b35b100be89e0549336616391aef2337454d (diff)
downloadgitlab-ce-d514833a1579d50070fc687acc2af4f135b25a56.tar.gz
Dont show new file link on protected branch for developers
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Diffstat (limited to 'app/helpers/branches_helper.rb')
-rw-r--r--app/helpers/branches_helper.rb25
1 files changed, 18 insertions, 7 deletions
diff --git a/app/helpers/branches_helper.rb b/app/helpers/branches_helper.rb
index e08ffccb94c..2ec2cc96157 100644
--- a/app/helpers/branches_helper.rb
+++ b/app/helpers/branches_helper.rb
@@ -1,11 +1,22 @@
module BranchesHelper
def can_remove_branch?(project, branch_name)
- if project.protected_branch? branch_name
- false
- elsif branch_name == project.repository.root_ref
- false
- else
- can?(current_user, :push_code, project)
- end
+ if project.protected_branch? branch_name
+ false
+ elsif branch_name == project.repository.root_ref
+ false
+ else
+ can?(current_user, :push_code, project)
+ end
+ end
+
+ def can_push_branch?(project, branch_name)
+ return false unless project.repository.branch_names.include?(branch_name)
+ action = if project.protected_branch?(branch_name)
+ :push_code_to_protected_branches
+ else
+ :push_code
+ end
+
+ current_user.can?(action, project)
end
end