Beispiel #1
0
        public async Task <ActionResult <ListOf <PersistedGrantViewModel> > > List([Range(1, 50)] int?limit = 10, [Range(1, int.MaxValue)] int?offset = 1)
        {
            var searchPersisted = new PersistedGrantSearch()
            {
                Limit  = limit,
                Offset = offset
            };
            var irs = await _persistedGrantAppService.GetPersistedGrants(searchPersisted);

            return(ResponseGet(irs));
        }
Beispiel #2
0
        public async Task <ActionResult <ListOf <PersistedGrantViewModel> > > List([Range(1, 50)] int?limit = 10, [Range(1, int.MaxValue)] int?offset = 0)
        {
            // Search for grants
            var searchPersisted = new PersistedGrantSearch()
            {
                Limit  = limit,
                Offset = offset
            };
            var persistedGrants = await _persistedGrantAppService.GetPersistedGrants(searchPersisted);

            // Get additional data from users
            var usersIds = persistedGrants.Collection.Select(s => s.SubjectId).ToArray();
            var search   = new UserSearch <string>()
            {
                Id     = usersIds,
                Limit  = limit,
                Offset = offset
            };
            var users = await _manager.Users.Apply(search).ToListAsync();

            // Update addional data
            var collection = persistedGrants.Collection.ToList();

            foreach (var persistedGrantViewModel in collection)
            {
                var user = users.FirstOrDefault(u => u.Id == persistedGrantViewModel.SubjectId);
                if (user == null)
                {
                    continue;
                }

                persistedGrantViewModel.UpdateUserInfo(user.UserName);
            }

            persistedGrants.Collection = collection;
            // truncate data for non administration users
            if (!User.IsInRole("Administrator") && !User.HasClaim(c => c.Type == "is4-manager"))
            {
                foreach (var persistedGrantViewModel in persistedGrants.Collection)
                {
                    if (persistedGrantViewModel.Email == _systemUser.Username)
                    {
                        continue;
                    }

                    persistedGrantViewModel.Email = persistedGrantViewModel.Email?.TruncateSensitiveInformation();
                    persistedGrantViewModel.Data  = persistedGrantViewModel.Data?.TruncateSensitiveInformation();
                }
            }

            return(ResponseGet(new ListOf <PersistedGrantViewModel>(persistedGrants.Collection, persistedGrants.Total)));
        }