summaryrefslogtreecommitdiff
path: root/app/models
diff options
context:
space:
mode:
authorOswaldo Ferreira <oswaldo@gitlab.com>2018-02-20 11:56:36 -0300
committerOswaldo Ferreira <oswaldo@gitlab.com>2018-02-20 13:03:06 -0300
commite0e3f1c2750b6db9343d530d00b096bcb1a57677 (patch)
tree1ee744d81f999a06250c11c41c363cf29b5ce52e /app/models
parentccc858a5dfdb446d9648db2449d3ee3ef7a2be59 (diff)
downloadgitlab-ce-e0e3f1c2750b6db9343d530d00b096bcb1a57677.tar.gz
Move button list logic to project presenter
Diffstat (limited to 'app/models')
-rw-r--r--app/models/project.rb7
1 files changed, 7 insertions, 0 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index 3893b1818f3..03640d7d18b 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -15,6 +15,7 @@ class Project < ActiveRecord::Base
include ValidAttribute
include ProjectFeaturesCompatibility
include SelectForProjectAuthorization
+ include Presentable
include Routable
include GroupDescendant
include Gitlab::SQL::Pattern
@@ -1015,6 +1016,12 @@ 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