Browse Source

CMS: Should provide recaptcha token if it's enabled for newsletter

pull/17455/head
Engincan VESKE 3 years ago
parent
commit
a84e80cb46
  1. 19
      modules/cms-kit/src/Volo.CmsKit.Public.Web/Controllers/CmsKitPublicCommentsController.cs
  2. 12
      modules/cms-kit/src/Volo.CmsKit.Public.Web/Controllers/CmsKitPublicControllerBase.cs
  3. 2
      modules/cms-kit/src/Volo.CmsKit.Public.Web/Controllers/CmsKitPublicGlobalResourcesController.cs
  4. 2
      modules/cms-kit/src/Volo.CmsKit.Public.Web/Controllers/CmsKitPublicWidgetsController.cs

19
modules/cms-kit/src/Volo.CmsKit.Public.Web/Controllers/CmsKitPublicCommentsController.cs

@ -3,6 +3,7 @@ using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;
using Volo.Abp;
using Volo.Abp.AspNetCore.Mvc;
using Volo.Abp.ObjectMapping;
using Volo.CmsKit.Comments;
@ -13,7 +14,7 @@ using Volo.CmsKit.Public.Web.Security.Captcha;
namespace Volo.CmsKit.Public.Web.Controllers;
//[Route("cms-kit/public-comments")]
public class CmsKitPublicCommentsController : AbpController
public class CmsKitPublicCommentsController : CmsKitPublicControllerBase
{
public ICommentPublicAppService CommentPublicAppService { get; }
protected CmsKitCommentOptions CmsKitCommentOptions { get; }
@ -32,8 +33,10 @@ public class CmsKitPublicCommentsController : AbpController
[HttpPost]
public virtual async Task ValidateAsync([FromBody] CreateCommentWithParametersInput input)
{
if (CmsKitCommentOptions.IsRecaptchaEnabled && input.CaptchaToken.HasValue)
if (CmsKitCommentOptions.IsRecaptchaEnabled)
{
CheckCaptchaTokenNullity(input.CaptchaToken);
SimpleMathsCaptchaGenerator.Validate(input.CaptchaToken.Value, input.CaptchaAnswer);
}
@ -44,11 +47,21 @@ public class CmsKitPublicCommentsController : AbpController
[HttpPost]
public virtual async Task UpdateAsync(Guid id, [FromBody] UpdateCommentInput input)
{
if (CmsKitCommentOptions.IsRecaptchaEnabled && input.CaptchaToken.HasValue)
if (CmsKitCommentOptions.IsRecaptchaEnabled)
{
CheckCaptchaTokenNullity(input.CaptchaToken);
SimpleMathsCaptchaGenerator.Validate(input.CaptchaToken.Value, input.CaptchaAnswer);
}
await CommentPublicAppService.UpdateAsync(id, input);
}
private void CheckCaptchaTokenNullity(Guid? captchaToken)
{
if (!captchaToken.HasValue)
{
throw new UserFriendlyException(L["CaptchaCodeMissingMessage"]);
}
}
}

12
modules/cms-kit/src/Volo.CmsKit.Public.Web/Controllers/CmsKitPublicControllerBase.cs

@ -0,0 +1,12 @@
using Volo.Abp.AspNetCore.Mvc;
using Volo.CmsKit.Localization;
namespace Volo.CmsKit.Public.Web.Controllers;
public abstract class CmsKitPublicControllerBase : AbpController
{
public CmsKitPublicControllerBase()
{
LocalizationResource = typeof(CmsKitResource);
}
}

2
modules/cms-kit/src/Volo.CmsKit.Public.Web/Controllers/CmsKitPublicGlobalResourcesController.cs

@ -11,7 +11,7 @@ using Volo.CmsKit.Public.GlobalResources;
namespace Volo.CmsKit.Public.Web.Controllers;
[Route("cms-kit/global-resources")]
public class CmsKitPublicGlobalResourcesController: AbpController
public class CmsKitPublicGlobalResourcesController : CmsKitPublicControllerBase
{
private readonly IGlobalResourcePublicAppService _globalResourcePublicAppService;
private readonly IDistributedCache<GlobalResourceDto> _resourceCache;

2
modules/cms-kit/src/Volo.CmsKit.Public.Web/Controllers/CmsKitPublicWidgetsController.cs

@ -7,7 +7,7 @@ using Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.ReactionSelection;
namespace Volo.CmsKit.Public.Web.Controllers;
public class CmsKitPublicWidgetsController : AbpController
public class CmsKitPublicWidgetsController : CmsKitPublicControllerBase
{
public Task<IActionResult> ReactionSelection(string entityType, string entityId)
{

Loading…
Cancel
Save