Example #1
0
        public override async Task <IViewProviderResult> BuildUpdateAsync(ReCaptchaSettings recaptchaSettings,
                                                                          IViewProviderContext context)
        {
            var model = new ReCaptchaSettingsViewModel();

            // Validate model
            if (!await context.Updater.TryUpdateModelAsync(model))
            {
                return(await BuildEditAsync(recaptchaSettings, context));
            }

            // Update settings
            if (context.Updater.ModelState.IsValid)
            {
                recaptchaSettings = new ReCaptchaSettings()
                {
                    SiteKey = recaptchaSettings.SiteKey,
                    Secret  = recaptchaSettings.Secret
                };

                // Update reCAPTCHA settings
                await _recaptchaSettingsStore.SaveAsync(recaptchaSettings);
            }

            // Redirect back to edit
            return(await BuildEditAsync(recaptchaSettings, context));
        }
Example #2
0
        public override async Task <IDisplayResult> UpdateAsync(ReCaptchaSettings section, BuildEditorContext context)
        {
            var user = _httpContextAccessor.HttpContext?.User;

            if (!await _authorizationService.AuthorizeAsync(user, Permissions.ManageReCaptchaSettings))
            {
                return(null);
            }

            if (context.GroupId == GroupId)
            {
                var model = new ReCaptchaSettingsViewModel();

                if (await context.Updater.TryUpdateModelAsync(model, Prefix))
                {
                    section.SiteKey   = model.SiteKey?.Trim();
                    section.SecretKey = model.SecretKey?.Trim();

                    // Release the tenant to apply settings.
                    await _shellHost.ReleaseShellContextAsync(_shellSettings);
                }
            }

            return(await EditAsync(section, context));
        }
Example #3
0
        public override Task <IViewProviderResult> BuildEditAsync(ReCaptchaSettings viewModel, IViewProviderContext context)
        {
            var recaptchaSettingsViewModel = new ReCaptchaSettingsViewModel()
            {
                SiteKey = viewModel.SiteKey,
                Secret  = viewModel.Secret
            };

            return(Task.FromResult(Views(
                                       View <ReCaptchaSettingsViewModel>("Admin.Edit.Header", model => recaptchaSettingsViewModel).Zone("header").Order(1),
                                       View <ReCaptchaSettingsViewModel>("Admin.Edit.Tools", model => recaptchaSettingsViewModel).Zone("tools").Order(1),
                                       View <ReCaptchaSettingsViewModel>("Admin.Edit.Content", model => recaptchaSettingsViewModel).Zone("content").Order(1)
                                       )));
        }
Example #4
0
        public async Task <IActionResult> IndexPost(ReCaptchaSettingsViewModel viewModel)
        {
            // Execute view providers ProvideUpdateAsync method
            await _viewProvider.ProvideUpdateAsync(new ReCaptchaSettings()
            {
                SiteKey = viewModel.SiteKey,
                Secret  = viewModel.Secret
            }, this);

            // Add alert
            _alerter.Success(T["Settings Updated Successfully!"]);

            return(RedirectToAction(nameof(Index)));
        }
Example #5
0
        public override async Task <IDisplayResult> UpdateAsync(ReCaptchaSettings section, BuildEditorContext context)
        {
            if (context.GroupId == GroupId)
            {
                var model = new ReCaptchaSettingsViewModel();

                if (await context.Updater.TryUpdateModelAsync(model, Prefix))
                {
                    section.SiteKey   = model.SiteKey?.Trim();
                    section.SecretKey = model.SecretKey?.Trim();

                    // Release the tenant to apply settings.
                    await _shellHost.ReleaseShellContextAsync(_shellSettings);
                }
            }

            return(await EditAsync(section, context));
        }