internal UserIdentityLookupService(Configuration configuration, AddinManagementService addinManagementService)
        {
            UserIdentityMappings    userIdentityMappingsConfig = configuration.SessionGroup.UserIdentityMappings;
            MigrationSourcesElement migrationSourcesConfig     = configuration.SessionGroup.MigrationSources;

            m_mappingAlgorithmPool = new UserIdMappingAlgorithmPool(configuration.SessionGroup.UserIdentityMappings,
                                                                    configuration.SessionGroup.Sessions.Session);
            m_lookupConfiguration = new UserIdLookupConfiguration(configuration.SessionGroup.UserIdentityMappings.EnableValidation,
                                                                  configuration.SessionGroup.MigrationSources);

            m_serviceIsConfigured = (userIdentityMappingsConfig.UserMappings.Count != 0 ||
                                     userIdentityMappingsConfig.DisplayNameMappings.Count != 0 ||
                                     userIdentityMappingsConfig.AliasMappings.Count != 0 ||
                                     userIdentityMappingsConfig.DomainMappings.Count != 0
                                     );

            m_addinManagementService = addinManagementService;

            foreach (AddinElement addinElem in configuration.Addins.Addin)
            {
                Guid   addinRefName = new Guid(addinElem.ReferenceName);
                IAddin addin        = m_addinManagementService.GetAddin(addinRefName);
                if (null != addin)
                {
                    var userLookupProvider = addin.GetService(typeof(IUserIdentityLookupServiceProvider)) as IUserIdentityLookupServiceProvider;
                    if (null != userLookupProvider)
                    {
                        this.RegisterLookupServiceProvider(addin.ReferenceName, userLookupProvider);
                    }
                }
            }
        }
        private void Initialize(
            UserIdentityMappings userIdentityMappingsConfig,
            NotifyingCollection <Session> sessions)
        {
            m_userIdentityMappings = userIdentityMappingsConfig;
            m_sessions             = sessions;

            // teyang_todo when no mapping is configured, default to: output = input ??
            m_userMappingAlg     = new UserMappingRuleEvaluator(userIdentityMappingsConfig.UserMappings);
            m_dispNameMappingAlg = new DisplayNameMappingRuleEvaluator(userIdentityMappingsConfig.DisplayNameMappings);
            m_aliasMappingAlg    = new AliasMappingRuleEvaluator(userIdentityMappingsConfig.AliasMappings);
            m_domainMappingAlg   = new DomainMappingRuleEvaluator(userIdentityMappingsConfig.DomainMappings);

            m_lookupContextManager = new IdentityLookupContextManager(sessions);
        }
Example #3
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="userIdentityMappingsConfig"></param>
 public UserIdMappingAlgorithmPool(
     UserIdentityMappings userIdentityMappingsConfig,
     NotifyingCollection <Session> sessions)
 {
     m_baseMappingAlgorithm = new UserIdMappingAlgorithm(userIdentityMappingsConfig, sessions);
 }
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="userIdentityMappingsConfig"></param>
 public UserIdMappingAlgorithm(
     UserIdentityMappings userIdentityMappingsConfig,
     NotifyingCollection <Session> sessions)
 {
     Initialize(userIdentityMappingsConfig, sessions);
 }