kreta/KretaWeb/Areas/Adminisztracio/Controllers/JelszoValtoztatoController.cs
2024-03-13 00:33:46 +01:00

54 lines
1.7 KiB
C#

using System.Web.Mvc;
using Kreta.BusinessLogic.Exceptions;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.Web.Areas.Adminisztracio.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Helpers.ReCaptcha;
namespace Kreta.Web.Areas.Adminisztracio.Controllers
{
[AllowAnonymous]
public class JelszoValtoztatoController : Controller
{
public ActionResult Index(string guid)
{
var model = new JelszoValtoztatoModel { Guid = guid };
try
{
model.IsSzulDatumValidacio = new JelszoLinkHelper(ConnectionTypeExtensions.GetOrganizationConnectionType(), guid).IsSzulDatumValidacio();
}
catch (KretaJelszoModositasException e)
{
model.ErrorMessage = e.Message;
}
return View(model);
}
public JsonResult SaveJelszo(JelszoValtoztatoModel model)
{
if (!ModelState.IsValid)
{
Response.StatusCode = 400;
Response.TrySkipIisCustomErrors = true;
var modelErrors = ModelState.AllErrors();
return Json(modelErrors);
}
var captcha = ReCaptchaValidator.Validate(model.ReCaptcha);
if (!captcha.Success)
{
return Json(new IsSuccessResponseCo(false, string.Join(",", captcha.ErrorCodes)));
}
IsSuccessResponseCo response = new JelszoLinkHelper(ConnectionTypeExtensions.GetOrganizationConnectionType(), model.Guid).SaveJelszo(model.ConvertToCo());
return Json(response);
}
}
}