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

228 lines
11 KiB
C#

using System;
using System.Linq;
using System.Net;
using System.Web.Mvc;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.BusinessLogic.Security;
using Kreta.Core.FeatureToggle;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Web.Areas.Adminisztracio.Helpers;
using Kreta.Web.Areas.Adminisztracio.Models;
using Kreta.Web.Controllers;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Modal;
using Kreta.Web.Models;
using Kreta.Web.Models.EditorTemplates;
using Kreta.Web.Security;
using Kreta.Web.Utils;
namespace Kreta.Web.Areas.Adminisztracio.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageAuthorize(TanevEnum.Mind, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Naplo.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue)]
public class ProfilController : Controller
{
/// <summary>
/// Default view visszaadás
/// </summary>
/// <returns></returns>
public ActionResult Index()
{
var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var model = new ProfilModel
{
IsElerhetosegAdatokSzerkeszthetoek = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.tanulok_es_gondviselok_szerkesztheti_sajat_elerhetosegi_adataikat)
};
return View("Index", model);
}
[HttpPost]
public ActionResult GenerateNewEgyhaztartasbanElokRow(EgyhaztartasbanElokRowModel model)
{
return View("EgyHaztartasbanLevokRow", model);
}
private readonly IFeatureContext FeatureContext;
public ProfilController(IFeatureContext featureContext)
{
FeatureContext = featureContext;
}
public SajatAdatlapInfoModel GetDataForInfo(int id)
{
if (ClaimManager.HasPackage(KretaClaimPackages.Naplo.ClaimValue) || ClaimManager.HasPackage(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Naplo.ClaimValue))
{
return new ProfilHelper().GetTanarSajatAdatlapDataForInfo(id);
}
if (ClaimManager.HasPackage(KretaClaimPackages.Ellenorzo.ClaimValue))
{
if (ClaimData.GondviseloId.HasValue)
{
return new ProfilHelper().GetGondviseloSajatAdatlapDataForInfo(ClaimData.GondviseloId.Value, Request.Url.Host);
}
return new ProfilHelper().GetTanuloSajatAdatlapDataForInfo(id, Request.Url.Host);
}
throw new Exception();
}
[MvcRolePackageAuthorize(TanevEnum.Mind, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Naplo.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue)]
public ActionResult SajatAdatlapPopUp()
{
SajatAdatlapInfoModel alkalmazottModel = GetDataForInfo(ClaimData.FelhasznaloId);
alkalmazottModel.HideControlsForAlkalmazott = true;
var model = new PopUpModel(alkalmazottModel, "Info_SajatAdatlap");
model.Buttons.Add(new ModalButtonModel() { Name = "BtnSajatAdatlapBezaras", Text = Resources.CommonResource.Bezaras, EventName = "SajatAdatlapHelper.closeSajatAdatlapPopUp" });
return PartialView(Constants.General.PopupView, model);
}
public ActionResult LoadJelszoModositas()
{
var model = new ProfilModel
{
JelszoValtoztatasNemLehetseges = ClaimManager.GetClaimIdentity().HasClaim(KretaClaimTypes.Resource, KretaClaimPackages.Ellenorzo.Resources.A_felhasznalok_nem_valtoztathatjak_meg_a_jelszavukat_az_elektronikus_ellenorzoben)
};
return PartialView("JelszoModositas_Bevitel", model);
}
public ActionResult LoadProfilkepFeltoltes()
{
var model = new ProfilModel();
return PartialView("ProfilkepFeltoltes_Bevitel", model);
}
public ActionResult LoadTippekBeallitasa()
{
var model = new TippModel();
model.TippekElrejtese = ProfileUtils.HideTips;
model.EmailHelyettesites = ProfileUtils.EmailHelyettesites;
model.HianyzokAutoKitoltes = ProfileUtils.IsHianyzokAutoKitoltesEnabled;
model.FogadooraEmail = ProfileUtils.FogadooraEmail;
model.FogadooraEmailUj = ProfileUtils.FogadooraEmailUj;
model.FogadooraEmailJelentkezes = ProfileUtils.FogadooraEmailJelentkezes;
model.FogadooraEmailJelentkezesLemondas = ProfileUtils.FogadooraEmailJelentkezesLemondas;
model.FogadooraEmlekeztetoEmailJelentkezes = ProfileUtils.FogadooraEmlekeztetoEmailJelentkezes;
model.FogadooraEmailTorles = ProfileUtils.FogadooraEmailTorles;
model.FogadooraEmail3Nappal = ProfileUtils.FogadooraEmail3Nappal;
model.FogadooraEmail1Nappal = ProfileUtils.FogadooraEmail1Nappal;
model.NemNaplozottTanorakEmail = ProfileUtils.NemNaplozottTanorakEmail;
model.AtlagMegjelenitesTipusa = (int)ProfileUtils.AtlagMegjelenitesTipusa;
model.AtlagbaBeleszamitoOsztalyTipusa = (int)ProfileUtils.AtlagbaBeleszamitoOsztalyTipusa;
model.AtlagMegjelenitesTipusaList = new ComboBoxHelperEnumApiController(FeatureContext).GetAtlagMegjelenitesTipusList();
model.AtlagbaBeleszamitoOsztalyTipusaList = new ComboBoxHelperEnumApiController(FeatureContext).GetAtlagbaBeleszamitoOsztalyTipusList();
model.HaladasiNaploFulTipusa = (int)ProfileUtils.HaladasiNaploFulTipusa;
model.HaladasiNaploFulTipusaList = new ComboBoxHelperEnumApiController(FeatureContext).GetHaladasiNaploFulTipusList();
model.HaladasiNaploNezetTipusa = (int)ProfileUtils.HaladasiNaploNezetTipusa;
model.HaladasiNaploNezetTipusaList = new ComboBoxHelperEnumApiController(FeatureContext).GetHaladasiNaploNezetTipusList();
model.HetirendMegjeleniteseBelepeskor = ProfileUtils.HetirendMegjeleniteseBelepeskor;
return PartialView("Tippek_Beallitas", model);
}
public ActionResult LoadElerhetosegekSzerk()
{
var elerhetosegek = new FelhasznaloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetElerhetosegek(ClaimData.FelhasznaloId);
var model = ConvertElerhetosegekModCoToModel(elerhetosegek);
return PartialView("ElerhetosegekModositas_Bevitel", model);
}
public ActionResult LoadElerhetosegek()
{
var elerhetosegek = new FelhasznaloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetElerhetosegek(ClaimData.FelhasznaloId);
var model = ConvertElerhetosegekModCoToModel(elerhetosegek);
return PartialView("ElerhetosegekMegjelenitese", model);
}
public ActionResult LoadGondviseloAdatokSzerk()
{
var model = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetGondviseloElerhetosegAdatok(ClaimData.GondviseloId.Value);
return PartialView("GondviseloAdatokSzerkesztese", ConvertGondviseloAdatokModCOToModel(model));
}
public ActionResult LoadGondviseloAdatok()
{
var model = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetGondviseloElerhetosegAdatok(ClaimData.GondviseloId.Value);
return PartialView("GondviseloAdatokMegjelenitese", ConvertGondviseloAdatokModCOToModel(model));
}
public ActionResult LoadGondviselo4TSzerkesztese()
{
if (!ClaimData.FeltarGondviseloEnabled)
{
return PartialView("Empty");
}
var co = new GondviseloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetGondviselo4TAdatok(ClaimData.GondviseloId.Value);
return PartialView("Gondviselo4TAdatokSzerkesztese", new Gondviselo4TAdatokModel(co));
}
[HttpPost]
[MvcValidateAjaxAntiForgeryToken]
public ActionResult TippBeallitasokMentese(TippModel model)
{
ProfileUtils.HideTips = model.TippekElrejtese;
ProfileUtils.EmailHelyettesites = model.EmailHelyettesites;
ProfileUtils.IsHianyzokAutoKitoltesEnabled = model.HianyzokAutoKitoltes;
ProfileUtils.FogadooraEmail = model.FogadooraEmail;
ProfileUtils.FogadooraEmailUj = model.FogadooraEmailUj;
ProfileUtils.FogadooraEmailJelentkezes = model.FogadooraEmailJelentkezes;
ProfileUtils.FogadooraEmailJelentkezesLemondas = model.FogadooraEmailJelentkezesLemondas;
ProfileUtils.FogadooraEmlekeztetoEmailJelentkezes = model.FogadooraEmlekeztetoEmailJelentkezes;
ProfileUtils.FogadooraEmailTorles = model.FogadooraEmailTorles;
ProfileUtils.FogadooraEmail3Nappal = model.FogadooraEmail3Nappal;
ProfileUtils.FogadooraEmail1Nappal = model.FogadooraEmail1Nappal;
ProfileUtils.NemNaplozottTanorakEmail = model.NemNaplozottTanorakEmail;
ProfileUtils.AtlagMegjelenitesTipusa = (AtlagMegjelenitesTipus)model.AtlagMegjelenitesTipusa;
ProfileUtils.AtlagbaBeleszamitoOsztalyTipusa = (AtlagbaBeleszamitoOsztalyTipus)model.AtlagbaBeleszamitoOsztalyTipusa;
ProfileUtils.HaladasiNaploFulTipusa = (HaladasiNaploFulTipus)model.HaladasiNaploFulTipusa;
ProfileUtils.HaladasiNaploNezetTipusa = (HaladasiNaploNezetTipus)model.HaladasiNaploNezetTipusa;
ProfileUtils.HetirendMegjeleniteseBelepeskor = model.HetirendMegjeleniteseBelepeskor;
ProfileUtils.SaveUserProfileDocument();
return new HttpStatusCodeResult(HttpStatusCode.OK);
}
private GondviseloAdatokModModel ConvertGondviseloAdatokModCOToModel(GondviseloAdatokModCO co)
{
return new GondviseloAdatokModModel
{
AktEmail = co.AktEmail,
AktTelefon = co.AktTelefon
};
}
private ElerhetosegekModel ConvertElerhetosegekModCoToModel(ElerhetosegekModCO co)
{
return new ElerhetosegekModel
{
Email = co.Email.Select(e => new EmailElerhetosegModel
{
Alapertelmezett = e.Alapertelmezett,
EmailCim_Input = e.EmailCim,
Tipus = e.Tipus,
Id = e.Id,
Status = e.Status
}).ToList(),
Telefon = co.Telefon.Select(t => new TelefonElerhetosegModel
{
Alapertelmezett = t.Alapertelmezett,
Telefonszam = t.Telefonszam,
Tipus = t.Tipus,
Id = t.Id,
Status = t.Status
}).ToList()
};
}
}
}