private void SyncLdapAccessRights() { SetProgress(95, Resource.LdapSettingsStatusUpdatingAccessRights); var currentUserRights = new List <LdapSettings.AccessRight>(); TakeUsersRights(_currentUser != null ? currentUserRights : null); if (LDAPSettings.GroupMembership && LDAPSettings.AccessRights != null && LDAPSettings.AccessRights.Count > 0) { GiveUsersRights(LDAPSettings.AccessRights, _currentUser != null ? currentUserRights : null); } if (currentUserRights.Count > 0) { Warning = Resource.LdapSettingsErrorLostRights; } LDAPSettings.Save(); }
protected override void Do() { try { if (OperationType == LdapOperationType.Save) { SetProgress(10, Resource.LdapSettingsStatusSavingSettings); LDAPSettings.IsDefault = LDAPSettings.Equals(LDAPSettings.GetDefault()); if (!LDAPSettings.Save()) { Logger.Error("Can't save LDAP settings."); Error = Resource.LdapSettingsErrorCantSaveLdapSettings; return; } } if (LDAPSettings.EnableLdapAuthentication) { Logger.Debug("SyncLDAP()"); SyncLDAP(); if (!string.IsNullOrEmpty(Error)) { return; } } else { Logger.Debug("TurnOffLDAP()"); TurnOffLDAP(); ((LdapCurrentUserPhotos)LdapCurrentUserPhotos.Load().GetDefault()).Save(); ((LdapCurrentAcccessSettings)LdapCurrentAcccessSettings.Load().GetDefault()).Save(); //не снимать права при выключении //var rights = new List<LdapSettings.AccessRight>(); //TakeUsersRights(rights); //if (rights.Count > 0) //{ // Warning = Resource.LdapSettingsErrorLostRights; //} } } catch (NovellLdapTlsCertificateRequestedException ex) { Logger.ErrorFormat( "CheckSettings(acceptCertificate={0}, cert thumbprint: {1}): NovellLdapTlsCertificateRequestedException: {2}", LDAPSettings.AcceptCertificate, LDAPSettings.AcceptCertificateHash, ex.ToString()); Error = Resource.LdapSettingsStatusCertificateVerification; //TaskInfo.SetProperty(CERT_REQUEST, ex.CertificateConfirmRequest); } catch (TenantQuotaException e) { Logger.ErrorFormat("TenantQuotaException. {0}", e.ToString()); Error = Resource.LdapSettingsTenantQuotaSettled; } catch (FormatException e) { Logger.ErrorFormat("FormatException error. {0}", e.ToString()); Error = Resource.LdapSettingsErrorCantCreateUsers; } catch (Exception e) { Logger.ErrorFormat("Internal server error. {0}", e.ToString()); Error = Resource.LdapSettingsInternalServerError; } finally { SetProgress(99, Resource.LdapSettingsStatusDisconnecting, ""); Dispose(); } SetProgress(100, OperationType == LdapOperationType.SaveTest || OperationType == LdapOperationType.SyncTest ? JsonConvert.SerializeObject(_ldapChanges) : "", ""); }