Example #1
0
        public void ProcessJob(TaskScheduling task)
        {
            ServicesAdministrationServiceClient adminClient = new ServicesAdministrationServiceClient(true);
            List <StoreType> storeTypes = adminClient.LoadAllStoreTypes();

            adminClient.LoadAllIdentityStores().ForEach((IdentityStore store) => {
                if (store.get_StoreType() == null)
                {
                    StoreType storeType = storeTypes.Find((StoreType st) => st.get_StoreTypeId() == store.get_StoreTypeId());
                    if (storeType != null)
                    {
                        store.set_StoreType(storeType);
                    }
                }
                this.ReplicateStore(store);
            });
            try
            {
                ActionResult result = (new ServicesAdministrationServiceClient(true)).EnsureSchemaLinkAttributeIsUptoDate();
                Helper.LogDebugResults(SchemaReplicationProcessor.logger, result, "Schema link attribute update ");
            }
            catch (Exception exception1)
            {
                Exception exception = exception1;
                string    message   = string.Concat("Error occurred while updating the schema link attribute. Reason: ", exception.Message);
                LogExtension.LogException(SchemaReplicationProcessor.logger, message, exception);
            }
            SchemaReplicationProcessor.logger.InfoFormat("Job processed successfully.", Array.Empty <object>());
        }
 public void ProcessJob(TaskScheduling task)
 {
     try
     {
         ServicesAdministrationServiceClient adminClient  = new ServicesAdministrationServiceClient(true);
         ServicesSearchServiceClient         searchClient = new ServicesSearchServiceClient(false);
         IdentityStore   store                   = adminClient.GetIdentityStoreById(task.get_IdentityStoreId(), true);
         KnownAttributes knownAttributes         = searchClient.GetKnownAttributes(task.get_IdentityStoreId());
         List <PermissionAnalyzerServer> servers = new List <PermissionAnalyzerServer>();
         Dictionary <string, Dictionary <int, string> > configurations = this.LoadConfigurations(store, adminClient, servers, knownAttributes);
         List <Schema> schema = adminClient.GetIdentityStoreSchema(task.get_IdentityStoreId());
         if (servers.Count > 0)
         {
             (new Imanami.PermissionReplicationService.PermissionReplicationService(store, configurations, schema, knownAttributes)).ReplicatePermissions(1, servers);
         }
     }
     catch (Exception exception)
     {
         LogExtension.LogException(PermissionAnalyzer.logger, "Error While Replicating Permissions.", exception);
     }
     PermissionAnalyzer.logger.InfoFormat("Job processed successfully.", Array.Empty <object>());
 }
        public static IStoreTypeHelper GetStoreTypeHelper(int identityStoreId)
        {
            IStoreTypeHelper storeTypeHelper;

            try
            {
                ServicesAdministrationServiceClient adminClient = new ServicesAdministrationServiceClient(false);
                StoreType storeType = adminClient.GetIdentityStoreById(identityStoreId, false).get_StoreType();
                if (storeType != null)
                {
                    storeTypeHelper = StoreTypeHelperFactory.get_Instance().GetStoreTypeHelper(storeType.get_StoreTypeName());
                    return(storeTypeHelper);
                }
            }
            catch (Exception exception)
            {
                Exception ex = exception;
                Helper.logger.Error(string.Concat("Error occurred while getting store type helper. ", ex.Message), ex);
            }
            storeTypeHelper = null;
            return(storeTypeHelper);
        }
        public Dictionary <string, Dictionary <int, string> > LoadConfigurations(IdentityStore store, ServicesAdministrationServiceClient _client, List <PermissionAnalyzerServer> servers, KnownAttributes knownAttributes)
        {
            Dictionary <string, Dictionary <int, string> > strs;

            try
            {
                try
                {
                    PermissionAnalyzerConfigurationService         permissionAnalyzerConfigurationService = new PermissionAnalyzerConfigurationService(store.get_IdentityStoreId());
                    Dictionary <string, Dictionary <int, string> > strs1 = new Dictionary <string, Dictionary <int, string> >();
                    IdentityStorePermissionAnalyzerConfiguration   permissionConfigurations = permissionAnalyzerConfigurationService.GetPermissionConfigurations();
                    if ((permissionConfigurations == null || permissionConfigurations.get_Servers() == null ? false : permissionConfigurations.get_Servers().Count > 0))
                    {
                        if (permissionConfigurations.get_IncludeFutureServers())
                        {
                            List <PermissionAnalyzerServer> allServers = permissionAnalyzerConfigurationService.GetCriteriaBasedServers(permissionConfigurations);
                            IEnumerable <string>            strs2      = (
                                from x in allServers
                                select x.get_ServerID()).Except <string>(
                                from y in permissionConfigurations.get_Servers()
                                select y.get_ServerID());
                            IEnumerable <PermissionAnalyzerServer> latestServers =
                                from server in allServers
                                where strs2.Any <string>((string id) => server.get_ServerID().Equals(id, StringComparison.InvariantCultureIgnoreCase))
                                select server;
                            if ((latestServers == null ? false : latestServers.Count <PermissionAnalyzerServer>() > 0))
                            {
                                permissionConfigurations.get_Servers().AddRange(latestServers);
                            }
                        }
                        if ((Helper.CurrentTask.get_Targets() == null ? false : Helper.CurrentTask.get_Targets().Count > 0))
                        {
                            permissionConfigurations.set_Servers((
                                                                     from server in permissionConfigurations.get_Servers()
                                                                     where Helper.CurrentTask.get_Targets().Any <SchedulingTarget>((SchedulingTarget target) => target.get_Target().Equals(server.get_ServerID(), StringComparison.InvariantCultureIgnoreCase))
                                                                     select server).ToList <PermissionAnalyzerServer>());
                            Helper.CurrentTask.get_Targets().Clear();
                        }
                        permissionConfigurations.get_Servers().ForEach((PermissionAnalyzerServer server) => {
                            if (permissionConfigurations.get_ExcludedServers() != null)
                            {
                                if (permissionConfigurations.get_ExcludedServers().Any <string>((string excludedServer) => excludedServer.Equals(server.get_ServerID(), StringComparison.InvariantCultureIgnoreCase)))
                                {
                                    return;
                                }
                            }
                            if (!string.IsNullOrEmpty(server.get_ScheduleJob()))
                            {
                                if (!server.get_ScheduleJob().Equals(PermissionAnalyzerConfigurationService.GetScheduleName()))
                                {
                                    return;
                                }
                            }
                            if (server.get_Credentials() == null)
                            {
                                server.set_Credentials(new PermissionAnalyzerServerCredentials());
                            }
                            server.get_Credentials();
                            if (server.get_IsServiceAccountConfigured())
                            {
                                server.get_Credentials().set_UserName(store.get_IdentityStoreConfigurationValues()["UserName"]);
                                server.get_Credentials().set_Password(store.get_IdentityStoreConfigurationValues()["Password"]);
                            }
                            server.get_Credentials().set_ServerName(server.get_Server());
                            if ((server.get_FileShare() == null ? false : server.get_FileShare().get_Shares() != null))
                            {
                                List <string> serverShares = new List <string>();
                                if (!server.get_IsServiceAccountConfigured())
                                {
                                    server.get_Credentials().set_Password(CryptographyHelper.DecryptFromLocalMachine(server.get_Credentials().get_Password()));
                                }
                                try
                                {
                                    serverShares = permissionAnalyzerConfigurationService.GetNetworkShareResourcesList(server.get_Credentials());
                                }
                                catch (Exception exception)
                                {
                                }
                                if (!server.get_IsServiceAccountConfigured())
                                {
                                    server.get_Credentials().set_Password(CryptographyHelper.EncryptForLocalMachine(server.get_Credentials().get_Password()));
                                }
                                serverShares.ForEach((string latestShare) => {
                                    if (!server.get_FileShare().get_Shares().Any <PermissionAnalyzerServerShare>((PermissionAnalyzerServerShare x) => x.get_ShareID().Equals(latestShare, StringComparison.InvariantCultureIgnoreCase)))
                                    {
                                        List <PermissionAnalyzerServerShare> shares = server.get_FileShare().get_Shares();
                                        PermissionAnalyzerServerShare permissionAnalyzerServerShare = new PermissionAnalyzerServerShare();
                                        permissionAnalyzerServerShare.set_IsSelected(true);
                                        permissionAnalyzerServerShare.set_Share(latestShare);
                                        permissionAnalyzerServerShare.set_ShareID(latestShare);
                                        shares.Add(permissionAnalyzerServerShare);
                                    }
                                });
                            }
                            this.SetConfigurations(store, server, strs1);
                            servers.Add(server);
                        });
                    }
                    strs = strs1;
                    return(strs);
                }
                catch (Exception exception1)
                {
                    Exception ex = exception1;
                    LogExtension.LogException(PermissionAnalyzer.logger, ex.Message, ex);
                }
            }
            finally
            {
                (new ServicesSchedulingServiceClient(false)).Update(Helper.CurrentTask);
            }
            strs = new Dictionary <string, Dictionary <int, string> >();
            return(strs);
        }