Просмотр исходного кода

Fixes #4106 - Multi LDAP: Httplog should include source where data was synced from.

Rolf Schmidt 2 лет назад
Родитель
Сommit
9e4792abda

+ 5 - 1
lib/sequencer/unit/import/common/model/http_log.rb

@@ -16,7 +16,7 @@ class Sequencer
                 direction:     'out',
                 facility:      facility,
                 method:        'tcp',
-                url:           "#{action} -> #{remote_id}",
+                url:           url,
                 status:        status,
                 ip:            nil,
                 request:       {
@@ -32,6 +32,10 @@ class Sequencer
 
             private
 
+            def url
+              "#{action} -> #{remote_id}"
+            end
+
             def status
               @status ||= begin
                 action == :failed ? :failed : :success

+ 8 - 0
lib/sequencer/unit/import/ldap/user/http_log.rb

@@ -6,8 +6,16 @@ class Sequencer
       module Ldap
         module User
           class HttpLog < Import::Common::Model::HttpLog
+            uses :ldap_config
+
             private
 
+            def url
+              return "source #{LdapSource.find(ldap_config[:id]).name} (#{ldap_config[:id]}): #{action} -> #{remote_id}" if ldap_config.present? && ldap_config[:id].present?
+
+              super
+            end
+
             def facility
               'ldap'
             end

+ 3 - 2
spec/lib/sequencer/sequence/import/ldap/users_spec.rb

@@ -3,6 +3,7 @@
 require 'rails_helper'
 
 RSpec.describe ::Sequencer::Sequence::Import::Ldap::Users, sequencer: :sequence do
+  let(:ldap_source) { create(:ldap_source) }
 
   context 'lost group assignment' do
 
@@ -19,7 +20,7 @@ RSpec.describe ::Sequencer::Sequence::Import::Ldap::Users, sequencer: :sequence
         group_entry['member'] = [user_entry.dn]
 
         ldap_config = {
-          id:               999,
+          id:               ldap_source.id,
           user_filter:      'user=filter',
           group_role_map:   {
             group_entry.dn => [1, 2]
@@ -62,7 +63,7 @@ RSpec.describe ::Sequencer::Sequence::Import::Ldap::Users, sequencer: :sequence
         imported_user = User.last
 
         expect(imported_user.active).to be true
-        expect(imported_user.source).to eq('Ldap::999')
+        expect(imported_user.source).to eq("Ldap::#{ldap_source.id}")
 
         connection = double(
           host:    'example.com',