diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-06-02 14:40:37 +0000 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-06-02 14:40:37 +0000 |
commit | 34cf3c49167464ea00635cc4db17c67032fe1610 (patch) | |
tree | b09a84fc121b9fde42437b0eedc66a2bd8d2aa57 | |
parent | 2c46b35b100be89e0549336616391aef2337454d (diff) | |
parent | d514833a1579d50070fc687acc2af4f135b25a56 (diff) | |
download | gitlab-ce-34cf3c49167464ea00635cc4db17c67032fe1610.tar.gz |
Merge branch 'developers-protected-branches' into 'master'
Dont show new file link on protected branch for developers
-rw-r--r-- | app/helpers/branches_helper.rb | 25 | ||||
-rw-r--r-- | app/views/projects/tree/_tree.html.haml | 2 |
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 |