protected override void SaveObjectToStore(AuditLogSearchBase searchBase) { AdminAuditLogSearch adminAuditLogSearch = (AdminAuditLogSearch)searchBase; using (AdminAuditLogSearchItem adminAuditLogSearchItem = new AdminAuditLogSearchItem(base.MailboxSession, base.Folder)) { Guid guid = ((AuditLogSearchId)adminAuditLogSearch.Identity).Guid; adminAuditLogSearchItem.Identity = guid; adminAuditLogSearchItem.Name = adminAuditLogSearch.Name; adminAuditLogSearchItem.StartDate = new ExDateTime(ExTimeZone.UtcTimeZone, adminAuditLogSearch.StartDateUtc.Value); adminAuditLogSearchItem.EndDate = new ExDateTime(ExTimeZone.UtcTimeZone, adminAuditLogSearch.EndDateUtc.Value); adminAuditLogSearchItem.StatusMailRecipients = adminAuditLogSearch.StatusMailRecipients; adminAuditLogSearchItem.CreatedBy = adminAuditLogSearch.CreatedBy; adminAuditLogSearchItem.CreatedByEx = adminAuditLogSearch.CreatedByEx; adminAuditLogSearchItem.Cmdlets = adminAuditLogSearch.Cmdlets; adminAuditLogSearchItem.Parameters = adminAuditLogSearch.Parameters; adminAuditLogSearchItem.ObjectIds = adminAuditLogSearch.ObjectIds; adminAuditLogSearchItem.ExternalAccess = adminAuditLogSearch.ExternalAccess; adminAuditLogSearchItem.RawUserIds = adminAuditLogSearch.UserIds; adminAuditLogSearchItem.ResolvedUsers = adminAuditLogSearch.ResolvedUsers; adminAuditLogSearchItem.RedactDatacenterAdmins = adminAuditLogSearch.RedactDatacenterAdmins; adminAuditLogSearchItem.Save(SaveMode.ResolveConflicts); AuditQueuesOpticsLogData auditQueuesOpticsLogData = new AuditQueuesOpticsLogData { QueueType = AuditQueueType.AsyncAdminSearch, EventType = QueueEventType.Queue, CorrelationId = guid.ToString(), OrganizationId = base.MailboxSession.OrganizationId, QueueLength = base.Folder.ItemCount + 1 }; auditQueuesOpticsLogData.Log(); } }
public static void SetResolveUsers(AdminAuditLogSearch searchObject, DataAccessHelper.GetDataObjectDelegate getDataObject, Task.TaskVerboseLoggingDelegate writeVerbose, Task.TaskWarningLoggingDelegate writeWarning) { if (searchObject.UserIdsUserInput != null && searchObject.UserIdsUserInput.Count > 0) { writeVerbose(Strings.VerboseStartResolvingUsers); ADObjectId rootOrgContainerIdForLocalForest = ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest(); ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(rootOrgContainerIdForLocalForest, searchObject.OrganizationId, null, false); IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(true, ConsistencyMode.PartiallyConsistent, sessionSettings, 515, "SetResolveUsers", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\AdminAuditLog\\AdminAuditLogHelper.cs"); tenantOrRootOrgRecipientSession.UseConfigNC = false; searchObject.UserIds = new MultiValuedProperty <string>(); searchObject.ResolvedUsers = new MultiValuedProperty <string>(); foreach (SecurityPrincipalIdParameter securityPrincipalIdParameter in searchObject.UserIdsUserInput) { searchObject.UserIds.Add(securityPrincipalIdParameter.RawIdentity); bool flag = false; try { ADRecipient adrecipient = (ADRecipient)getDataObject(securityPrincipalIdParameter, tenantOrRootOrgRecipientSession, null, null, new LocalizedString?(Strings.WarningSearchUserNotFound(securityPrincipalIdParameter.ToString())), new LocalizedString?(Strings.ErrorSearchUserNotUnique(securityPrincipalIdParameter.ToString()))); if (adrecipient.Id != null && adrecipient.Id.DomainId != null && !string.IsNullOrEmpty(adrecipient.Id.DomainId.Name)) { string text = (string)adrecipient.propertyBag[IADSecurityPrincipalSchema.SamAccountName]; if (!string.IsNullOrEmpty(text)) { searchObject.ResolvedUsers.Add(adrecipient.Id.DomainId.Name + "\\" + text); flag = true; writeVerbose(Strings.DebugResolvingDomainAccount(securityPrincipalIdParameter.ToString(), adrecipient.Id.DomainId.Name, text)); } } if (adrecipient.propertyBag[IADSecurityPrincipalSchema.Sid] != null) { string value = ((SecurityIdentifier)adrecipient.propertyBag[IADSecurityPrincipalSchema.Sid]).Value; if (!string.IsNullOrEmpty(value)) { searchObject.ResolvedUsers.Add(value); flag = true; writeVerbose(Strings.DebugResolvingUserSid(securityPrincipalIdParameter.ToString(), value)); } } if (adrecipient.Id != null && !string.IsNullOrEmpty(adrecipient.Id.ToString())) { searchObject.ResolvedUsers.Add(adrecipient.Id.ToString()); flag = true; writeVerbose(Strings.DebugResolvingUserCN(securityPrincipalIdParameter.ToString(), adrecipient.Id.ToString())); } if (!flag) { writeWarning(Strings.WarningCannotResolveUser(securityPrincipalIdParameter.ToString())); searchObject.ResolvedUsers.Add(securityPrincipalIdParameter.ToString()); } } catch (ManagementObjectNotFoundException) { writeWarning(Strings.WarningSearchUserNotFound(securityPrincipalIdParameter.ToString())); searchObject.ResolvedUsers.Add(securityPrincipalIdParameter.ToString()); } } } }
public AdminAuditLogSearchWorker(int searchTimeoutSeconds, AdminAuditLogSearch searchObject, AuditLogOpticsLogData searchStatistics) { if (searchTimeoutSeconds <= 0) { throw new ArgumentOutOfRangeException("searchTimeoutSeconds"); } this.searchTimeoutSeconds = searchTimeoutSeconds; this.searchCriteria = searchObject; this.searchStatistics = searchStatistics; }
internal override void Initialize(AuditLogSearchBase item) { AdminAuditLogSearch adminAuditLogSearch = (AdminAuditLogSearch)item; base.Initialize(item); this.Cmdlets = adminAuditLogSearch.Cmdlets; this.Parameters = adminAuditLogSearch.Parameters; this.ObjectIds = adminAuditLogSearch.ObjectIds; this.UserIds = adminAuditLogSearch.UserIds; this.ResolvedUsers = adminAuditLogSearch.ResolvedUsers; this.RedactDatacenterAdmins = adminAuditLogSearch.RedactDatacenterAdmins; this.Succeeded = null; this.StartIndex = 0; this.ResultSize = 50000; }
public override IConfigurable Read <T>(ObjectId identity) { AuditLogSearchId auditLogSearchId = identity as AuditLogSearchId; if (auditLogSearchId != null) { SearchFilter filter = new SearchFilter.IsEqualTo(AuditLogSearchBaseEwsSchema.Identity.StorePropertyDefinition, auditLogSearchId.Guid.ToString()); using (IEnumerator <AdminAuditLogSearch> enumerator = this.FindInFolder <AdminAuditLogSearch>(filter, this.GetDefaultFolder()).GetEnumerator()) { if (enumerator.MoveNext()) { AdminAuditLogSearch adminAuditLogSearch = enumerator.Current; AdminAuditLogSearch adminAuditLogSearch2 = new AdminAuditLogSearch(); adminAuditLogSearch2.SetId(adminAuditLogSearch.Identity); adminAuditLogSearch2.Name = adminAuditLogSearch.Name; adminAuditLogSearch2.StartDateUtc = new DateTime?(adminAuditLogSearch.StartDateUtc.Value); adminAuditLogSearch2.EndDateUtc = new DateTime?(adminAuditLogSearch.EndDateUtc.Value); adminAuditLogSearch2.StatusMailRecipients = NewAuditLogSearchBase <AdminAuditLogSearch> .GetMultiValuedStringsAsSmptAddresses(adminAuditLogSearch.StatusMailRecipients); adminAuditLogSearch2.CreatedBy = adminAuditLogSearch.CreatedBy; adminAuditLogSearch2.CreatedByEx = adminAuditLogSearch.CreatedByEx; adminAuditLogSearch2.Cmdlets = adminAuditLogSearch.Cmdlets; adminAuditLogSearch2.Parameters = adminAuditLogSearch.Parameters; adminAuditLogSearch2.ObjectIds = adminAuditLogSearch.ObjectIds; bool value; if (!string.IsNullOrEmpty(adminAuditLogSearch.ExternalAccess) && bool.TryParse(adminAuditLogSearch.ExternalAccess, out value)) { adminAuditLogSearch2.ExternalAccess = new bool?(value); } adminAuditLogSearch2.UserIds = adminAuditLogSearch.UserIds; adminAuditLogSearch2.ResolvedUsers = adminAuditLogSearch.ResolvedUsers; return(adminAuditLogSearch2); } } } return(null); }
public override void Save(IConfigurable instance) { AdminAuditLogSearch adminAuditLogSearch = (AdminAuditLogSearch)instance; AdminAuditLogSearch adminAuditLogSearch2 = new AdminAuditLogSearch(); adminAuditLogSearch2.Identity = (AuditLogSearchId)adminAuditLogSearch.Identity; adminAuditLogSearch2.Name = adminAuditLogSearch.Name; adminAuditLogSearch2.StartDateUtc = new DateTime?(adminAuditLogSearch.StartDateUtc.Value); adminAuditLogSearch2.EndDateUtc = new DateTime?(adminAuditLogSearch.EndDateUtc.Value); adminAuditLogSearch2.StatusMailRecipients = NewAuditLogSearchBase <AdminAuditLogSearch> .GetMultiValuedSmptAddressAsStrings(adminAuditLogSearch.StatusMailRecipients); adminAuditLogSearch2.CreatedBy = adminAuditLogSearch.CreatedBy; adminAuditLogSearch2.CreatedByEx = adminAuditLogSearch.CreatedByEx; adminAuditLogSearch2.Cmdlets = adminAuditLogSearch.Cmdlets; adminAuditLogSearch2.Parameters = adminAuditLogSearch.Parameters; adminAuditLogSearch2.ObjectIds = adminAuditLogSearch.ObjectIds; if (adminAuditLogSearch.ExternalAccess != null) { adminAuditLogSearch2.ExternalAccess = (adminAuditLogSearch.ExternalAccess.Value ? bool.TrueString : bool.FalseString); } adminAuditLogSearch2.UserIds = adminAuditLogSearch.UserIds; adminAuditLogSearch2.ResolvedUsers = adminAuditLogSearch.ResolvedUsers; adminAuditLogSearch2.RedactDatacenterAdmins = adminAuditLogSearch.RedactDatacenterAdmins; base.Save(adminAuditLogSearch2); AuditQueuesOpticsLogData auditQueuesOpticsLogData = new AuditQueuesOpticsLogData { QueueType = AuditQueueType.AsyncAdminSearch, EventType = QueueEventType.Queue, CorrelationId = adminAuditLogSearch2.Identity.Guid.ToString(), OrganizationId = this.organizationId, QueueLength = ((this.defaultFolder != null) ? (this.defaultFolder.TotalCount + 1) : 1) }; auditQueuesOpticsLogData.Log(); instance.ResetChangeTracking(); }
public QueryStrategy(AdminAuditLogSearch searchCriteria) { this.searchCriteria = searchCriteria; this.currentIndex = 0; }
public AdminAuditLogSearchException(LocalizedString message, Exception innerException, AdminAuditLogSearch searchCriteria) : base(message, innerException) { this.searchCriteria = searchCriteria; }