summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAhmad Sherif <me@ahmadsherif.com>2016-12-05 21:01:38 +0200
committerAhmad Sherif <me@ahmadsherif.com>2016-12-05 22:34:37 +0200
commit4e0a0d093d7a4290a59523238990bf96b1b89313 (patch)
tree6f7046f22abb981b32a0a57f46aac8055cfe2158
parent5fedc46343d054df28ce81a320f33d1d43d02bc8 (diff)
downloadgitlab-ce-fix/authorize-users-into-imported-gitlab-project.tar.gz
Authorize users into imported GitLab projectfix/authorize-users-into-imported-gitlab-project
-rw-r--r--app/models/member.rb1
-rw-r--r--changelogs/unreleased/fix-authorize-users-into-imported-gitlab-project.yml4
-rw-r--r--spec/lib/gitlab/import_export/members_mapper_spec.rb11
3 files changed, 14 insertions, 2 deletions
diff --git a/app/models/member.rb b/app/models/member.rb
index df93aaee847..3b65587c66b 100644
--- a/app/models/member.rb
+++ b/app/models/member.rb
@@ -63,6 +63,7 @@ class Member < ActiveRecord::Base
after_create :send_request, if: :request?, unless: :importing?
after_create :create_notification_setting, unless: [:pending?, :importing?]
after_create :post_create_hook, unless: [:pending?, :importing?]
+ after_create :refresh_member_authorized_projects, if: :importing?
after_update :post_update_hook, unless: [:pending?, :importing?]
after_destroy :post_destroy_hook, unless: :pending?
diff --git a/changelogs/unreleased/fix-authorize-users-into-imported-gitlab-project.yml b/changelogs/unreleased/fix-authorize-users-into-imported-gitlab-project.yml
new file mode 100644
index 00000000000..9f14463fdd1
--- /dev/null
+++ b/changelogs/unreleased/fix-authorize-users-into-imported-gitlab-project.yml
@@ -0,0 +1,4 @@
+---
+title: Authorize users into imported GitLab project
+merge_request:
+author:
diff --git a/spec/lib/gitlab/import_export/members_mapper_spec.rb b/spec/lib/gitlab/import_export/members_mapper_spec.rb
index 770e8b0c2f4..1cb02f8e318 100644
--- a/spec/lib/gitlab/import_export/members_mapper_spec.rb
+++ b/spec/lib/gitlab/import_export/members_mapper_spec.rb
@@ -2,9 +2,9 @@ require 'spec_helper'
describe Gitlab::ImportExport::MembersMapper, services: true do
describe 'map members' do
- let(:user) { create(:user) }
+ let(:user) { create(:user, authorized_projects_populated: true) }
let(:project) { create(:project, :public, name: 'searchable_project') }
- let(:user2) { create(:user) }
+ let(:user2) { create(:user, authorized_projects_populated: true) }
let(:exported_user_id) { 99 }
let(:exported_members) do
[{
@@ -67,5 +67,12 @@ describe Gitlab::ImportExport::MembersMapper, services: true do
expect(ProjectMember.find_by_invite_email('invite@test.com')).not_to be_nil
end
+
+ it 'authorizes the users to the project' do
+ members_mapper.map
+
+ expect(user.authorized_project?(project)).to be true
+ expect(user2.authorized_project?(project)).to be true
+ end
end
end