diff --git a/app/helpers/tree_helper.rb b/app/helpers/tree_helper.rb
index 0a4da0ef3fc726154902f456dd33041b1f0b3833..f5733b4b57c18a313e23be4fee74e7ba2e5b2a72 100644
--- a/app/helpers/tree_helper.rb
+++ b/app/helpers/tree_helper.rb
@@ -55,7 +55,9 @@ module TreeHelper
   def tree_edit_branch(project = @project, ref = @ref)
     return unless can_edit_tree?(project, ref)
 
-    if project.user_can_push_to_branch?(current_user, ref)
+    project = project.present(current_user: current_user)
+
+    if project.can_current_user_push_to_branch?(ref)
       ref
     else
       project = tree_edit_project(project)
diff --git a/app/models/project.rb b/app/models/project.rb
index b42a26129120effc572dede1f797992dea1fa171..3ce233362981f34e6ae68f51a0c8217c51fb9cba 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -1027,12 +1027,6 @@ class Project < ActiveRecord::Base
     !ProtectedBranch.default_branch_protected? || team.max_member_access(user.id) > Gitlab::Access::DEVELOPER
   end
 
-  def user_can_push_to_branch?(user, branch_name)
-    return false unless repository.branch_exists?(branch_name)
-
-    ::Gitlab::UserAccess.new(user, project: self).can_push_to_branch?(branch_name)
-  end
-
   def forked?
     return true if fork_network && fork_network.root_project != self
 
diff --git a/app/presenters/project_presenter.rb b/app/presenters/project_presenter.rb
index f850f6273a31048e7121137d11ab200d5cb76476..9db4ef63fd73e03b1d53e0463738ef13a41056cb 100644
--- a/app/presenters/project_presenter.rb
+++ b/app/presenters/project_presenter.rb
@@ -164,11 +164,17 @@ class ProjectPresenter < Gitlab::View::Presenter::Delegated
       if empty_repo?
         can?(current_user, :push_code, project)
       else
-        user_can_push_to_branch?(current_user, default_branch)
+        can_current_user_push_to_branch?(default_branch)
       end
     end
   end
 
+  def can_current_user_push_to_branch?(branch)
+    return false unless repository.branch_exists?(branch)
+
+    ::Gitlab::UserAccess.new(current_user, project: project).can_push_to_branch?(branch)
+  end
+
   def files_anchor_data
     OpenStruct.new(enabled: true,
                    label: _('Files (%{human_size})') % { human_size: storage_counter(statistics.total_repository_size) },