Example #1
0
        public async Task <IWriterResult> UpdateApiSettings(string userId, UpdateApiModel model)
        {
            try
            {
                using (var context = DataContextFactory.CreateContext())
                {
                    var user = await context.Users.FirstOrDefaultAsync(u => u.Id == userId).ConfigureAwait(false);

                    if (user == null)
                    {
                        return(new WriterResult(false, "User not found."));
                    }

                    model.OldApiKey                 = user.ApiKey;
                    user.IsApiEnabled               = model.IsApiEnabled;
                    user.IsApiWithdrawEnabled       = model.IsApiWithdrawEnabled;
                    user.IsApiUnsafeWithdrawEnabled = model.IsApiUnsafeWithdrawEnabled;
                    user.ApiKey    = model.ApiKey;
                    user.ApiSecret = model.ApiSecret;

                    await context.SaveChangesWithAuditAsync().ConfigureAwait(false);

                    await UserSyncService.SyncUser(user.Id).ConfigureAwait(false);

                    return(new WriterResult(true, "Successfully updated API settings."));
                }
            }
            catch (Exception)
            {
                return(new WriterResult(false));
            }
        }
        public async Task <ActionResult> UpdateApiSettings(UpdateApiModel model)
        {
            if (!ModelState.IsValid)
            {
                return(PartialView("_UpdateApi", model));
            }

            if (!await IsSettingsUnlocked())
            {
                ModelState.AddModelError("Error", Resources.User.securityUnlockTokenExpiredError);
                return(PartialView("_UpdateApi", model));
            }

            var result = await UserSecurityWriter.UpdateApiSettings(User.Identity.GetUserId(), model);

            if (!ModelState.IsWriterResultValid(result))
            {
                return(PartialView("_UpdateApi", model));
            }

            await UserSyncService.SyncUser(User.Identity.GetUserId());

            await ApiKeyStore.UpdateApiAuthKey(model);

            return(PartialView("_UpdateApi", model));
        }
Example #3
0
        public static async Task <bool> UpdateApiAuthKey(UpdateApiModel apiData)
        {
            await _rediscache.RemoveAsync(apiData.OldApiKey);

            var result = await GetApiAuthKey(apiData.ApiKey);

            return(result != null);
        }