public LdapOperationStatus SaveLdapSettings(string settings, bool acceptCertificate) { CheckLdapPermissions(); var operations = LDAPTasks.GetTasks() .Where(t => t.GetProperty <int>(LdapOperation.OWNER) == TenantProvider.CurrentTenantID).ToList(); if (operations.Any(o => o.Status <= DistributedTaskStatus.Running)) { return(GetStartProcessError()); } var ldapSettings = JsonConvert.DeserializeObject <LdapSettings>(settings); ldapSettings.AcceptCertificate = acceptCertificate; if (!ldapSettings.EnableLdapAuthentication) { SetLdapCronSettings(null); } //ToDo ldapSettings.AccessRights.Clear(); var ldapLocalization = new LdapLocalization(Resource.ResourceManager); var tenant = CoreContext.TenantManager.GetCurrentTenant(); var op = new LdapSaveSyncOperation(ldapSettings, tenant, LdapOperationType.Save, ldapLocalization, CurrentUser.ToString()); return(QueueTask(op)); }
public static void AutoSync(Tenant tenant) { var ldapSettings = LdapSettings.LoadForTenant(tenant.TenantId); if (!ldapSettings.EnableLdapAuthentication) { var cronSettings = LdapCronSettings.LoadForTenant(tenant.TenantId); cronSettings.Cron = ""; cronSettings.SaveForTenant(tenant.TenantId); UnregisterAutoSync(tenant); return; } var op = new LdapSaveSyncOperation(ldapSettings, tenant, LdapOperationType.Sync); ldapTasks.QueueTask(op.RunJob, op.GetDistributedTask()); }
public LdapOperationStatus TestLdapSave(string settings, bool acceptCertificate) { CheckLdapPermissions(); var operations = LDAPTasks.GetTasks() .Where(t => t.GetProperty <int>(LdapOperation.OWNER) == TenantProvider.CurrentTenantID) .ToList(); var hasStarted = operations.Any(o => { var opType = o.GetProperty <LdapOperationType>(LdapOperation.OPERATION_TYPE); return(o.Status <= DistributedTaskStatus.Running && (opType == LdapOperationType.SyncTest || opType == LdapOperationType.SaveTest)); }); if (hasStarted) { return(GetLdapOperationStatus()); } if (operations.Any(o => o.Status <= DistributedTaskStatus.Running)) { return(GetStartProcessError()); } var ldapSettings = JsonConvert.DeserializeObject <LdapSettings>(settings); ldapSettings.AcceptCertificate = acceptCertificate; var ldapLocalization = new LdapLocalization(Resource.ResourceManager); var tenant = CoreContext.TenantManager.GetCurrentTenant(); Cache.Insert("REWRITE_URL" + tenant.TenantId, HttpContext.Current.Request.GetUrlRewriter().ToString(), TimeSpan.FromMinutes(5)); var op = new LdapSaveSyncOperation(ldapSettings, tenant, LdapOperationType.SaveTest, ldapLocalization, CurrentUser.ToString()); return(QueueTask(op)); }
public LdapOperationStatus SaveLdapSettings(string settings, bool acceptCertificate) { CheckLdapPermissions(); var operations = LDAPTasks.GetTasks() .Where(t => t.GetProperty <int>(LdapOperation.OWNER) == TenantProvider.CurrentTenantID).ToList(); if (operations.Any(o => o.Status <= DistributedTaskStatus.Running)) { return(GetStartProcessError()); } var ldapSettings = JsonConvert.DeserializeObject <LdapSettings>(settings); ldapSettings.AcceptCertificate = acceptCertificate; if (!ldapSettings.EnableLdapAuthentication) { SetLdapCronSettings(null); } //ToDo ldapSettings.AccessRights.Clear(); if (!ldapSettings.LdapMapping.ContainsKey(LdapSettings.MappingFields.MailAttribute) || string.IsNullOrEmpty(ldapSettings.LdapMapping[LdapSettings.MappingFields.MailAttribute])) { ldapSettings.SendWelcomeEmail = false; } var ldapLocalization = new LdapLocalization(Resource.ResourceManager, ASC.Web.Studio.Core.Notify.WebstudioNotifyPatternResource.ResourceManager); var tenant = CoreContext.TenantManager.GetCurrentTenant(); Cache.Insert("REWRITE_URL" + tenant.TenantId, HttpContext.Current.Request.GetUrlRewriter().ToString(), TimeSpan.FromMinutes(5)); var op = new LdapSaveSyncOperation(ldapSettings, tenant, LdapOperationType.Save, ldapLocalization, CurrentUser.ToString()); return(QueueTask(op)); }
public LdapOperationStatus TestLdapSync() { CheckLdapPermissions(); var operations = LDAPTasks.GetTasks() .Where(t => t.GetProperty <int>(LdapOperation.OWNER) == TenantProvider.CurrentTenantID) .ToList(); var hasStarted = operations.Any(o => { var opType = o.GetProperty <LdapOperationType>(LdapOperation.OPERATION_TYPE); return(o.Status <= DistributedTaskStatus.Running && (opType == LdapOperationType.SyncTest || opType == LdapOperationType.SaveTest)); }); if (hasStarted) { return(GetLdapOperationStatus()); } if (operations.Any(o => o.Status <= DistributedTaskStatus.Running)) { return(GetStartProcessError()); } var ldapSettings = LdapSettings.Load(); var ldapLocalization = new LdapLocalization(Resource.ResourceManager); var tenant = CoreContext.TenantManager.GetCurrentTenant(); var op = new LdapSaveSyncOperation(ldapSettings, tenant, LdapOperationType.SyncTest, ldapLocalization); return(QueueTask(op)); }