fix
This commit is contained in:
parent
11ac66a1e0
commit
787a1ba172
@ -161,4 +161,9 @@ public class LdapCertificateConfirmRequest
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return JsonSerializer.Serialize(this);
|
||||
}
|
||||
}
|
||||
|
@ -34,7 +34,6 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
private string _culture;
|
||||
|
||||
public LdapSettings LDAPSettings { get; private set; }
|
||||
protected DistributedTask TaskInfo { get; private set; }
|
||||
protected string Source { get; private set; }
|
||||
protected new string Status { get; set; }
|
||||
protected string Error { get; set; }
|
||||
@ -47,7 +46,7 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
{
|
||||
return _tenantId ?? this[nameof(_tenantId)];
|
||||
}
|
||||
set
|
||||
private set
|
||||
{
|
||||
_tenantId = value;
|
||||
this[nameof(_tenantId)] = value;
|
||||
@ -116,7 +115,7 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
{
|
||||
_currentUser = userId != null ? _userManager.GetUsers(Guid.Parse(userId)) : null;
|
||||
|
||||
_tenantId = tenant.Id;
|
||||
TenantId = tenant.Id;
|
||||
_tenantManager.SetCurrentTenant(tenant);
|
||||
_ldapChanges.Tenant = tenant;
|
||||
|
||||
@ -131,17 +130,17 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
Status = "";
|
||||
Error = "";
|
||||
Warning = "";
|
||||
Source = "";
|
||||
|
||||
Resource = resource ?? new LdapLocalization();
|
||||
_lDAPUserManager.Init(Resource);
|
||||
|
||||
InitDisturbedTask();
|
||||
}
|
||||
|
||||
protected override void DoJob()
|
||||
{
|
||||
try
|
||||
{
|
||||
FillDistributedTask();
|
||||
{
|
||||
_securityContext.AuthenticateMe(Core.Configuration.Constants.CoreSystem);
|
||||
|
||||
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo(_culture);
|
||||
@ -241,7 +240,7 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
try
|
||||
{
|
||||
this[LdapTaskProperty.FINISHED] = true;
|
||||
PublishChanges();
|
||||
PublishTaskInfo();
|
||||
_securityContext.Logout();
|
||||
}
|
||||
catch (Exception ex)
|
||||
@ -1217,9 +1216,21 @@ public class LdapOperationJob : DistributedTaskProgress
|
||||
|
||||
_log.InfoFormat(PROGRESS_STRING, Percentage, Status, Source);
|
||||
|
||||
PublishTaskInfo();
|
||||
}
|
||||
private void PublishTaskInfo()
|
||||
{
|
||||
FillDistributedTask();
|
||||
PublishChanges();
|
||||
}
|
||||
|
||||
private void InitDisturbedTask()
|
||||
{
|
||||
this[LdapTaskProperty.FINISHED] = false;
|
||||
this[LdapTaskProperty.CERT_REQUEST] = null;
|
||||
FillDistributedTask();
|
||||
}
|
||||
|
||||
private void FillDistributedTask()
|
||||
{
|
||||
this[LdapTaskProperty.SOURCE] = Source;
|
||||
|
@ -26,33 +26,23 @@
|
||||
|
||||
namespace ASC.ActiveDirectory.ComplexOperations;
|
||||
|
||||
[DataContract]
|
||||
public class LdapOperationStatus
|
||||
{
|
||||
[DataMember]
|
||||
public bool Completed { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public string Id { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public string Status { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public string Error { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public string Warning { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public int Percents { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public LdapCertificateConfirmRequest CertificateConfirmRequest { get; set; }
|
||||
public string CertificateConfirmRequest { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public string Source { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public string OperationType { get; set; }
|
||||
}
|
||||
|
@ -63,7 +63,7 @@ public class LdapSaveSyncOperation
|
||||
|
||||
public LdapOperationStatus TestLdapSave(LdapSettings ldapSettings, Tenant tenant, string userId)
|
||||
{
|
||||
var operations = _progressQueue.GetAllTasks()
|
||||
var operations = _progressQueue.GetAllTasks<LdapOperationJob>()
|
||||
.Where(t => t[LdapTaskProperty.OWNER] == tenant.Id)
|
||||
.ToList();
|
||||
|
||||
@ -183,7 +183,7 @@ public class LdapSaveSyncOperation
|
||||
|
||||
public LdapOperationStatus ToLdapOperationStatus(int tenantId)
|
||||
{
|
||||
var operations = _progressQueue.GetAllTasks().ToList();
|
||||
var operations = _progressQueue.GetAllTasks<LdapOperationJob>().ToList();
|
||||
|
||||
foreach (var o in operations)
|
||||
{
|
||||
@ -209,8 +209,6 @@ public class LdapSaveSyncOperation
|
||||
_progressQueue.DequeueTask(operation.Id);
|
||||
}
|
||||
|
||||
var certificateConfirmRequest = operation[LdapTaskProperty.CERT_REQUEST];
|
||||
|
||||
var result = new LdapOperationStatus
|
||||
{
|
||||
Id = operation.Id,
|
||||
@ -218,10 +216,9 @@ public class LdapSaveSyncOperation
|
||||
Percents = operation[LdapTaskProperty.PROGRESS],
|
||||
Status = operation[LdapTaskProperty.RESULT],
|
||||
Error = operation[LdapTaskProperty.ERROR],
|
||||
CertificateConfirmRequest = certificateConfirmRequest,
|
||||
CertificateConfirmRequest = operation[LdapTaskProperty.CERT_REQUEST] != "" ? operation[LdapTaskProperty.CERT_REQUEST] : null,
|
||||
Source = operation[LdapTaskProperty.SOURCE],
|
||||
OperationType = Enum.GetName(typeof(LdapOperationType),
|
||||
(LdapOperationType)operation[LdapTaskProperty.OPERATION_TYPE]),
|
||||
OperationType = operation[LdapTaskProperty.OPERATION_TYPE],
|
||||
Warning = operation[LdapTaskProperty.WARNING]
|
||||
};
|
||||
|
||||
|
@ -347,7 +347,7 @@ public class LdapUserManager
|
||||
|
||||
private static void UpdateLdapUserContacts(UserInfo ldapUser, List<string> portalUserContacts)
|
||||
{
|
||||
if (!portalUserContacts.Any())
|
||||
if (portalUserContacts == null || !portalUserContacts.Any())
|
||||
return;
|
||||
|
||||
var ldapUserContacts = ldapUser.Contacts;
|
||||
@ -458,8 +458,8 @@ public class LdapUserManager
|
||||
needUpdate = true;
|
||||
}
|
||||
|
||||
if (ldapUser.ContactsList.Count != portalUser.ContactsList.Count ||
|
||||
!ldapUser.Contacts.All(portalUser.Contacts.Contains))
|
||||
if (portalUser.ContactsList == null && ldapUser.ContactsList.Count != 0 || portalUser.ContactsList != null && (ldapUser.ContactsList.Count != portalUser.ContactsList.Count ||
|
||||
!ldapUser.Contacts.All(portalUser.Contacts.Contains)))
|
||||
{
|
||||
_log.DebugFormat("NeedUpdateUser by Contacts -> portal: '{0}', ldap: '{1}'",
|
||||
string.Join("|", portalUser.Contacts),
|
||||
|
@ -149,7 +149,7 @@ public static class LdapUtils
|
||||
|
||||
public static string GetContactsString(this UserInfo userInfo)
|
||||
{
|
||||
if (userInfo.ContactsList.Count == 0) return null;
|
||||
if (userInfo.ContactsList == null || userInfo.ContactsList.Count == 0) return null;
|
||||
var sBuilder = new StringBuilder();
|
||||
foreach (var contact in userInfo.Contacts)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user