using System; using System.Web.Mvc; using Kreta.BusinessLogic.Classes; using Kreta.BusinessLogic.Helpers; using Kreta.BusinessLogic.Security; using Kreta.Client.Eugyintezes; using Kreta.Client.Eugyintezes.Configuration; using Kreta.Core.Configuratiaton.Interface; using Kreta.Enums.ManualEnums; using Kreta.Web.Configuration; using Kreta.Web.Controllers.Logic; using Kreta.Web.Helpers; using Kreta.Web.Security; namespace Kreta.Web.Controllers { [MvcRoleClaimsAuthorize(true)] public class HomeController : Controller { private IEugyintezesClientConfiguration EugyintezesClientConfiguration { get; } private IIdpConfiguration IdpConfiguration { get; } private ITananyagtarConfiguration TananyagtarConfiguration { get; } public HomeController(IEugyintezesClientConfiguration eugyintezesClientConfiguration, IIdpConfiguration idpConfiguration, ITananyagtarConfiguration tananyagtarConfiguration) { EugyintezesClientConfiguration = eugyintezesClientConfiguration ?? throw new ArgumentNullException(nameof(eugyintezesClientConfiguration)); IdpConfiguration = idpConfiguration ?? throw new ArgumentNullException(nameof(idpConfiguration)); TananyagtarConfiguration = tananyagtarConfiguration ?? throw new ArgumentNullException(nameof(tananyagtarConfiguration)); } [Authorize] // GET: Home public ActionResult Index() { if (IdpConfiguration.LoginEnabled) { if (ClaimData.FelhasznaloSzerepkor == Enums.SzerepkorTipusEnum.Nincs_beallitva) { return RedirectToAction("Index", "BelepesKezelo", new { area = "Adminisztracio" }); } } return Redirect(Url.Content(CommonExtensions.GetDefaultPage())); } [MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)] public ActionResult NeptunNaplo() { string neptunNaploLink = new IntezmenyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetNeptunNaploLink(); if (!string.IsNullOrWhiteSpace(neptunNaploLink)) { return Redirect(neptunNaploLink); } return Redirect("http://www.ekreta.hu/jelentkezes"); } [MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)] public ActionResult Poszeidon() { if (!string.IsNullOrWhiteSpace(ApplicationData.PoszeidonUrl)) { return Redirect(ApplicationData.PoszeidonUrl); } return Redirect("~/HibaOldal"); } [MvcRolePackageAuthorize(TanevEnum.AktEsKovTanev, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Gondviselo.ClaimValue, KretaClaimPackages.SZMKKepviselo.ClaimValue, KretaClaimPackages.eUgyintezo.ClaimValue, KretaClaimPackages.PenzugyiAdmin.ClaimValue, KretaClaimPackages.BelepokartyaAdmin.ClaimValue, KretaClaimPackages.Penztaros.ClaimValue, KretaClaimPackages.Alairo.ClaimValue, KretaClaimPackages.EtkezesiAdmin.ClaimValue, KretaClaimPackages.EtkezesiEllenorzo.ClaimValue, KretaClaimPackages.TeremberletJelenletEllenorzo.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue)] public ActionResult Eugyintezes() { var helper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType()); return Redirect(Kreta.Web.Classes.Utils.GetAuthenticationTokenRedirectUrl(helper.GetIntezmenyConfig(IntezmenyConfigModulEnum.Eugyintezes, IntezmenyConfigTipusEnum.Url), IdpConfiguration.AuthenticationTokenKey)); } [MvcRolePackageAuthorize(TanevEnum.AktEsKovTanev, KretaClaimPackages.Ellenorzo.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)] [MvcRolePackageDenyAuthorize(KretaClaimPackages.Gondviselo.ClaimValue)] public ActionResult DKT() { var helper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var intezmenyData = helper.GetIntezmenyiAdatok(); return Redirect(Kreta.Web.Classes.Utils.GetAuthenticationTokenRedirectUrl(ClaimData.IsTanuloOrGondviselo ? intezmenyData.DKTDiakUrl : intezmenyData.DKTTanarUrl, IdpConfiguration.AuthenticationTokenKey)); } [MvcRolePackageAuthorize(TanevEnum.AktEsKovTanev, KretaClaimPackages.Adminisztrator.ClaimValue)] public ActionResult eJelentkezes() { var helper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSessionConnectionType()); return Redirect(Kreta.Web.Classes.Utils.GetAuthenticationTokenRedirectUrl(helper.GetIntezmenyConfig(IntezmenyConfigModulEnum.eJelentkezes, IntezmenyConfigTipusEnum.Url), IdpConfiguration.AuthenticationTokenKey)); } [MvcRolePackageAuthorize(TanevEnum.AktEsKovTanev, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.DiakolimpiaKezelo.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SZMKKepviselo.ClaimValue, KretaClaimPackages.Gondviselo.ClaimValue, KretaClaimPackages.Tanar.ClaimValue, KretaClaimPackages.Tanulo.ClaimValue, KretaClaimPackages.Naplo.ClaimValue, KretaClaimPackages.eUgyintezo.ClaimValue, KretaClaimPackages.PenzugyiAdmin.ClaimValue, KretaClaimPackages.BelepokartyaAdmin.ClaimValue, KretaClaimPackages.LeltarConcerned.ClaimValue, KretaClaimPackages.Penztaros.ClaimValue, KretaClaimPackages.EtkezesiAdmin.ClaimValue, KretaClaimPackages.EtkezesiEllenorzo.ClaimValue, KretaClaimPackages.TeremberletJelenletEllenorzo.ClaimValue, KretaClaimPackages.Alairo.ClaimValue, KretaClaimPackages.Alkalmazott.ClaimValue)] public ActionResult Uzenetek() { var helper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType()); return Redirect(Kreta.Web.Classes.Utils.GetAuthenticationTokenRedirectUrl(helper.GetIntezmenyConfig(IntezmenyConfigModulEnum.UzenetModul, IntezmenyConfigTipusEnum.Url), IdpConfiguration.AuthenticationTokenKey)); } [MvcRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.FokuszMonitoring.ClaimValue)] public ActionResult Esl() { var helper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSessionConnectionType()); return Redirect(Kreta.Web.Classes.Utils.GetAuthenticationTokenRedirectUrl(helper.GetIntezmenyConfig(IntezmenyConfigModulEnum.ESL, IntezmenyConfigTipusEnum.Url), IdpConfiguration.AuthenticationTokenKey)); } [MvcRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.FokuszMonitoring.ClaimValue)] [MvcRolePackageDenyAuthorize(KretaClaimPackages.IsPortas.ClaimValue, KretaClaimPackages.IsDualisKepzohelyiOktato.ClaimValue)] public ActionResult Fokusz() { var helper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSessionConnectionType()); return Redirect(Kreta.Web.Classes.Utils.GetAuthenticationTokenRedirectUrl(helper.GetIntezmenyConfig(IntezmenyConfigModulEnum.Fokusz, IntezmenyConfigTipusEnum.Url), IdpConfiguration.AuthenticationTokenKey)); } [MvcRolePackageAuthorize(KretaClaimPackages.LeltarConcerned.ClaimValue)] [MvcRolePackageDenyAuthorize(KretaClaimPackages.IsPortas.ClaimValue)] public ActionResult Leltar() { var helper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSessionConnectionType()); return Redirect(Kreta.Web.Classes.Utils.GetAuthenticationTokenRedirectUrl(helper.GetIntezmenyConfig(IntezmenyConfigModulEnum.Leltar, IntezmenyConfigTipusEnum.Url), IdpConfiguration.AuthenticationTokenKey)); } [MvcRolePackageAuthorize(TanevEnum.AktEsKovTanev, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.DiakolimpiaKezelo.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SZMKKepviselo.ClaimValue, KretaClaimPackages.Tanar.ClaimValue, KretaClaimPackages.Tanulo.ClaimValue, KretaClaimPackages.Naplo.ClaimValue, KretaClaimPackages.eUgyintezo.ClaimValue, KretaClaimPackages.PenzugyiAdmin.ClaimValue, KretaClaimPackages.BelepokartyaAdmin.ClaimValue, KretaClaimPackages.LeltarConcerned.ClaimValue, KretaClaimPackages.Penztaros.ClaimValue, KretaClaimPackages.EtkezesiAdmin.ClaimValue, KretaClaimPackages.EtkezesiEllenorzo.ClaimValue, KretaClaimPackages.TeremberletJelenletEllenorzo.ClaimValue, KretaClaimPackages.Alairo.ClaimValue, KretaClaimPackages.Alkalmazott.ClaimValue, KretaClaimPackages.Konyvtaros.ClaimValue)] [MvcRolePackageDenyAuthorize(KretaClaimPackages.IsPortas.ClaimValue, KretaClaimPackages.Gondviselo.ClaimValue)] public ActionResult KonyvtarModul() { var helper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSessionConnectionType()); return Redirect(Kreta.Web.Classes.Utils.GetAuthenticationTokenRedirectUrl(helper.GetIntezmenyConfig(IntezmenyConfigModulEnum.Konyvtar, IntezmenyConfigTipusEnum.Url), IdpConfiguration.AuthenticationTokenKey)); } [MvcRolePackageAuthorize(TanevEnum.AktEsKovTanev, KretaClaimPackages.Naplo.ClaimValue)] [MvcRolePackageDenyAuthorize(KretaClaimPackages.IsDualisKepzohelyiOktato.ClaimValue)] public ActionResult Tananyagtar() { return Redirect(Kreta.Web.Classes.Utils.GetAuthenticationTokenRedirectUrl(TananyagtarConfiguration.Url, IdpConfiguration.AuthenticationTokenKey)); } [AllowAnonymous] [HttpPost] public JsonResult EUgyUzenetekRecheck() { var darabszam = -1; if (ClaimData.IntezmenyAzonosito != null && ClaimData.IsAktivUzenetekMenu) { EugyintezesClient eUgyClient = new EugyintezesClient(EugyintezesClientConfiguration); darabszam = eUgyClient.GetOlvasatlanPostaladaElemekSzama(ClaimData.IntezmenyAzonosito, ClaimData.GondviseloId.HasValue ? ClaimData.GondviseloIdpEgyediAzonosito : ClaimData.FelhasznaloIdpEgyediAzonosito); } return Json(new { cnt = darabszam, frequencyRate = EugyintezesClientConfiguration.UzenetekFrequencyRate }); } [AllowAnonymous] [HttpPost] public JsonResult GetIsFrissitesWarrning() { var aktDatum = DateTime.Now; var data = new IntezmenyHelper(ConnectionTypeExtensions.GetOrganizationConnectionType()).GetFrissitesDatum(); if (data.HasValue && aktDatum.Date == data.Value.Date) { TimeSpan duration = data.Value - aktDatum; var result = duration.Seconds + duration.Minutes * 60 + duration.Hours * 60 * 60; return result <= 1000 && result > 0 ? Json(new { isFrissites = true, duration = result, frequencyRate = EugyintezesClientConfiguration.UzenetekFrequencyRate }) : Json(new { isFrissites = false, duration = 0, frequencyRate = EugyintezesClientConfiguration.UzenetekFrequencyRate }); } return Json(new { isFrissites = false, duration = 0, frequencyRate = EugyintezesClientConfiguration.UzenetekFrequencyRate }); } [AllowAnonymous] public ActionResult ArchivIndex() { return View("ArchivIndex"); } [MvcRolePackageAuthorize(TanevEnum.AktTanev, KretaClaimPackages.Ellenorzo.ClaimValue)] [MvcRolePackageDenyAuthorize(KretaClaimPackages.Gondviselo.ClaimValue)] public ActionResult PalyavalasztasiElorejelzesiModul() { var helper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType()); var baseUrl = helper.GetIntezmenyConfig(IntezmenyConfigModulEnum.Palyavalasztas, IntezmenyConfigTipusEnum.Url); var builder = new UriBuilder(baseUrl); builder.Query = $"fromkreta=true"; return Redirect(builder.ToString()); } [AllowAnonymous] public void LogOut() { MasterLayoutLogic.LogOut(); } } }