Пример #1
0
        public object Any(RegenerateApiKeys request)
        {
            var apiKeyAuth = this.Request.AssertValidApiKeyRequest();
            if (string.IsNullOrEmpty(request.Environment) && apiKeyAuth.Environments.Length != 1)
                throw new ArgumentNullException("Environment");

            var env = request.Environment ?? apiKeyAuth.Environments[0];

            var apiRepo = (IManageApiKeys)HostContext.AppHost.GetAuthRepository(base.Request);
            using (apiRepo as IDisposable)
            {
                var userId = GetSession().UserAuthId;
                var updateKeys = apiRepo.GetUserApiKeys(userId)
                    .Where(x => x.Environment == env)
                    .ToList();

                updateKeys.Each(x => x.CancelledDate = DateTime.UtcNow);

                var newKeys = apiKeyAuth.GenerateNewApiKeys(userId, env);
                updateKeys.AddRange(newKeys);

                apiRepo.StoreAll(updateKeys);

                return new RegenerateApiKeysResponse
                {
                    Results = newKeys.Map(k => new UserApiKey
                    {
                        Key = k.Id,
                        KeyType = k.KeyType,
                        ExpiryDate = k.ExpiryDate,
                    })
                };
            }
        }
Пример #2
0
        public async Task <object> Any(RegenerateApiKeys request)
        {
            var apiKeyAuth = this.Request.AssertValidApiKeyRequest();

            if (string.IsNullOrEmpty(request.Environment) && apiKeyAuth.Environments.Length != 1)
            {
                throw new ArgumentNullException("Environment");
            }

            var env = request.Environment ?? apiKeyAuth.Environments[0];

            var manageApiKeys = HostContext.AppHost.AssertManageApiKeysAsync(Request);

            using (manageApiKeys as IDisposable)
            {
                var userId     = (await GetSessionAsync().ConfigAwait()).UserAuthId;
                var updateKeys = (await manageApiKeys.GetUserApiKeysAsync(userId).ConfigAwait())
                                 .Where(x => x.Environment == env)
                                 .ToList();

                updateKeys.Each(x => x.CancelledDate = DateTime.UtcNow);

                var newKeys = apiKeyAuth.GenerateNewApiKeys(userId, env);
                updateKeys.AddRange(newKeys);

                await manageApiKeys.StoreAllAsync(updateKeys).ConfigAwait();

                return(new RegenerateApiKeysResponse
                {
                    Results = newKeys.Map(k => new UserApiKey
                    {
                        Key = k.Id,
                        KeyType = k.KeyType,
                        ExpiryDate = k.ExpiryDate,
                    })
                });
            }
        }
Пример #3
0
        public object Any(RegenerateApiKeys request)
        {
            var apiKeyAuth = this.Request.AssertValidApiKeyRequest();
            if (string.IsNullOrEmpty(request.Environment) && apiKeyAuth.Environments.Length != 1)
                throw new ArgumentNullException("Environment");

            var env = request.Environment ?? apiKeyAuth.Environments[0];

            var apiRepo = (IManageApiKeys)HostContext.AppHost.GetAuthRepository(base.Request);
            using (apiRepo as IDisposable)
            {
                var userId = GetSession().UserAuthId;
                var updateKeys = apiRepo.GetUserApiKeys(userId)
                    .Where(x => x.Environment == env)
                    .ToList();

                updateKeys.Each(x => x.CancelledDate = DateTime.UtcNow);

                var newKeys = apiKeyAuth.GenerateNewApiKeys(userId, env);
                updateKeys.AddRange(newKeys);

                apiRepo.StoreAll(updateKeys);

                return new RegenerateApiKeysResponse
                {
                    Results = newKeys.Map(k => new UserApiKey
                    {
                        Key = k.Id,
                        KeyType = k.KeyType,
                        ExpiryDate = k.ExpiryDate,
                    })
                };
            }
        }