Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-06-02 17:18:16 +0400
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-06-02 17:18:16 +0400
commitd514833a1579d50070fc687acc2af4f135b25a56 (patch)
treeb09a84fc121b9fde42437b0eedc66a2bd8d2aa57 /app
parent2c46b35b100be89e0549336616391aef2337454d (diff)
Dont show new file link on protected branch for developers
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Diffstat (limited to 'app')
-rw-r--r--app/helpers/branches_helper.rb25
-rw-r--r--app/views/projects/tree/_tree.html.haml2
2 files changed, 19 insertions, 8 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
diff --git a/app/views/projects/tree/_tree.html.haml b/app/views/projects/tree/_tree.html.haml
index ee850e2bc1b..1fc06928bcf 100644
--- a/app/views/projects/tree/_tree.html.haml
+++ b/app/views/projects/tree/_tree.html.haml
@@ -9,7 +9,7 @@
= link_to truncate(title, length: 40), project_tree_path(@project, path)
- else
= link_to title, '#'
- - if current_user && @repository.branch_names.include?(@ref) && current_user.can?(:push_code, @project)
+ - if current_user && can_push_branch?(@project, @ref)
%li
= link_to project_new_tree_path(@project, @id), title: 'New file', id: 'new-file-link' do
%small