Example #1
0
        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)));
        }
Example #2
0
        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,
            });
        }