summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortiagonbotelho <tiagonbotelho@hotmail.com>2016-08-06 13:20:07 +0100
committertiagonbotelho <tiagonbotelho@hotmail.com>2016-08-08 12:40:46 +0100
commit472611ad24ef4117d5a23e935001fa07ef9a4552 (patch)
tree49e9626525a5ec2a929a86a9e9dbc1fa39b625c9
parentb2d142c4a026b479925482c4756172d86888198b (diff)
downloadgitlab-ce-19926-edit-button-should-not-fork-when-user-already-owns-project.tar.gz
checks if user already owns a project with that name and hides the Edit button if true19926-edit-button-should-not-fork-when-user-already-owns-project
-rw-r--r--app/helpers/blob_helper.rb2
-rw-r--r--app/models/user.rb4
2 files changed, 5 insertions, 1 deletions
diff --git a/app/helpers/blob_helper.rb b/app/helpers/blob_helper.rb
index 48c27828219..78711b6d258 100644
--- a/app/helpers/blob_helper.rb
+++ b/app/helpers/blob_helper.rb
@@ -27,7 +27,7 @@ module BlobHelper
button_tag "Edit", class: "btn disabled has-tooltip btn-file-option", title: "You can only edit files when you are on a branch", data: { container: 'body' }
elsif can_edit_blob?(blob, project, ref)
link_to "Edit", edit_path, class: 'btn btn-sm'
- elsif can?(current_user, :fork_project, project)
+ elsif can?(current_user, :fork_project, project) && !current_user.already_owns?(project)
continue_params = {
to: edit_path,
notice: edit_in_new_fork_notice,
diff --git a/app/models/user.rb b/app/models/user.rb
index db747434959..e056423f9e3 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -531,6 +531,10 @@ class User < ActiveRecord::Base
end
end
+ def already_owns?(project)
+ !self.owned_projects.where(name: project.name).any?
+ end
+
def ldap_user?
identities.exists?(["provider LIKE ? AND extern_uid IS NOT NULL", "ldap%"])
end