private bool IsUserInDatasetOwnersList(ICollection <DatasetOwner> datasetOwners, IPrincipal user) { if (datasetOwners == null || datasetOwners.Count == 0) { return(false); } var ownerEmails = datasetOwners .Where(d => !string.IsNullOrWhiteSpace(d.Email)) .Select(d => d.Email) .ToList(); if (ownerEmails.Count == 0) { return(false); } var userEmail = user.GetUserEmail(); if (string.IsNullOrWhiteSpace(userEmail)) { return(false); } return(ownerEmails.Any(ownerEmail => string.Equals(userEmail, ownerEmail, StringComparison.InvariantCultureIgnoreCase))); }
private async Task <DatasetEditStorageItem> UpdateDatasetEditItemDocument(IPrincipal user, DatasetEditStorageItem updated, CancellationToken token) { updated.Modified = DateTime.UtcNow; updated.ModifiedByUserName = user.GetUserName(); updated.ModifiedByUserEmail = user.GetUserEmail(); var result = await Client.UpsertDocumentAsync( UserDataDocumentCollectionUri, updated, new RequestOptions { PartitionKey = new PartitionKey(WellKnownIds.DatasetEditDatasetId.ToString()) }, false, token); updated = (dynamic)result.Resource; return(updated); }
public async Task <CurrentUserDetails> GetCurrentUserDetails(IPrincipal user, CancellationToken cancellationToken) { var isAuthenticated = (user?.Identity?.IsAuthenticated).GetValueOrDefault(); var canNominateDataset = false; var email = user.GetUserEmail(); if (!string.IsNullOrWhiteSpace(email)) { var eligibleDatasetOwners = await DatasetOwners.GetEligibleDatasetOwners(cancellationToken); canNominateDataset = eligibleDatasetOwners.Any(r => r.IsMatch(email)); } return(new CurrentUserDetails { IsAuthenticated = isAuthenticated, CanNominateDataset = canNominateDataset, }); }