diff options
author | tiagonbotelho <tiagonbotelho@hotmail.com> | 2016-08-06 13:20:07 +0100 |
---|---|---|
committer | tiagonbotelho <tiagonbotelho@hotmail.com> | 2016-08-08 12:40:46 +0100 |
commit | 472611ad24ef4117d5a23e935001fa07ef9a4552 (patch) | |
tree | 49e9626525a5ec2a929a86a9e9dbc1fa39b625c9 | |
parent | b2d142c4a026b479925482c4756172d86888198b (diff) | |
download | gitlab-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.rb | 2 | ||||
-rw-r--r-- | app/models/user.rb | 4 |
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 |