summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorRobert Speicher <robert@gitlab.com>2016-01-20 23:03:59 +0000
committerRobert Speicher <robert@gitlab.com>2016-01-20 23:03:59 +0000
commit4d84259df8a2cf649734aca60a9555eb1b02ba51 (patch)
tree36e9246f4ece283c9f1c256805050234630c08c9 /app
parent3a6fac4a852c96391ba9f1eea57a873f1a13e12f (diff)
parent096485ef65ffce7d31d0cefe530cc1b5c1825b52 (diff)
downloadgitlab-ce-4d84259df8a2cf649734aca60a9555eb1b02ba51.tar.gz
Merge branch 'fix-project-creation' into 'master'
Creator should be added as a master of the project on creation Fixes #4222 This also enable a project creator to add themselves as a master of the project for existing repositories that were created in the meanwhile that they don't appear as members. See merge request !2520
Diffstat (limited to 'app')
-rw-r--r--app/models/member.rb7
-rw-r--r--app/services/projects/create_service.rb2
2 files changed, 7 insertions, 2 deletions
diff --git a/app/models/member.rb b/app/models/member.rb
index 28aee2e3799..34efcd0088d 100644
--- a/app/models/member.rb
+++ b/app/models/member.rb
@@ -91,7 +91,7 @@ class Member < ActiveRecord::Base
member.invite_email = user
end
- if can_update_member?(current_user, member)
+ if can_update_member?(current_user, member) || project_creator?(member, access_level)
member.created_by ||= current_user
member.access_level = access_level
@@ -107,6 +107,11 @@ class Member < ActiveRecord::Base
current_user.can?(:update_group_member, member) ||
current_user.can?(:update_project_member, member)
end
+
+ def project_creator?(member, access_level)
+ member.new_record? && member.owner? &&
+ access_level.to_i == ProjectMember::MASTER
+ end
end
def invite?
diff --git a/app/services/projects/create_service.rb b/app/services/projects/create_service.rb
index c94d7ab710f..a6820183bee 100644
--- a/app/services/projects/create_service.rb
+++ b/app/services/projects/create_service.rb
@@ -95,7 +95,7 @@ module Projects
system_hook_service.execute_hooks_for(@project, :create)
unless @project.group
- @project.team << [current_user, :master]
+ @project.team << [current_user, :master, current_user]
end
@project.import_start if @project.import?