summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-06-02 23:34:10 -0700
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-06-02 23:34:10 -0700
commit0447c731ba392641145ac53cb8c50fab5392cda7 (patch)
treee182c52ae09bed80bf0526dee9fb223e19076580
parentc228098587c1e90ec0530ae4646381448e36e573 (diff)
parent41f88f468af711ee6b296754964de0c026dbd24c (diff)
downloadgitlab-ce-0447c731ba392641145ac53cb8c50fab5392cda7.tar.gz
Merge pull request #4161 from Undev/fix-#4109
Fix bug with team assignation on project from #4109
-rw-r--r--lib/gitlab/user_team_manager.rb4
-rw-r--r--spec/lib/gitlab/user_team_manager_spec.rb28
2 files changed, 30 insertions, 2 deletions
diff --git a/lib/gitlab/user_team_manager.rb b/lib/gitlab/user_team_manager.rb
index c9ca0f3c5bc..d5ec4ff6676 100644
--- a/lib/gitlab/user_team_manager.rb
+++ b/lib/gitlab/user_team_manager.rb
@@ -99,8 +99,8 @@ module Gitlab
teams ||= project.user_teams.with_member(user)
- if action && (action == :added) && (teams.count == 1)
- result_access ||= project.users_project.with_user(user).first.project_access
+ if action && (action == :added)
+ result_access = project.users_projects.with_user(user).first.project_access if project.users_projects.with_user(user).any?
end
if teams.any?
diff --git a/spec/lib/gitlab/user_team_manager_spec.rb b/spec/lib/gitlab/user_team_manager_spec.rb
new file mode 100644
index 00000000000..2ee3587b367
--- /dev/null
+++ b/spec/lib/gitlab/user_team_manager_spec.rb
@@ -0,0 +1,28 @@
+require 'spec_helper'
+
+describe Gitlab::UserTeamManager do
+ before do
+ @user = create :user
+ @project = create :project, creator: @user
+
+ @master = create :user
+ @developer = create :user
+ @reporter = create :user
+
+ @project.team << [@master, :master]
+ @project.team << [@developer, :developer]
+ @project.team << [@reporter, :reporter]
+
+ @team = create :user_team, owner: @user
+
+ @team.add_members([@master.id, @developer.id, @reporter.id], UsersProject::DEVELOPER, false)
+ end
+
+ it "should assign team to project with correct permissions result" do
+ @team.assign_to_project(@project, UsersProject::MASTER)
+
+ @project.users_projects.find_by_user_id(@master).project_access.should == UsersProject::MASTER
+ @project.users_projects.find_by_user_id(@developer).project_access.should == UsersProject::DEVELOPER
+ @project.users_projects.find_by_user_id(@reporter).project_access.should == UsersProject::DEVELOPER
+ end
+end