874 lines
37 KiB
C#
874 lines
37 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Web.Mvc;
|
|
using Kreta.BusinessLogic.Classes;
|
|
using Kreta.BusinessLogic.Helpers;
|
|
using Kreta.BusinessLogic.Helpers.SystemSettings;
|
|
using Kreta.BusinessLogic.Security;
|
|
using Kreta.Client.KGR;
|
|
using Kreta.Client.SzirApi;
|
|
using Kreta.Client.SzirApi.Request;
|
|
using Kreta.Core;
|
|
using Kreta.Core.FeatureToggle;
|
|
using Kreta.Enums;
|
|
using Kreta.Enums.ManualEnums;
|
|
using Kreta.Framework;
|
|
using Kreta.Web.Helpers;
|
|
using Kreta.Web.Security;
|
|
using MvcSiteMapProvider.Web.Html.Models;
|
|
|
|
namespace Kreta.Web.Menu
|
|
{
|
|
public static class MenuHelper
|
|
{
|
|
public static bool HasClickabeChild(this SiteMapNodeModel node)
|
|
{
|
|
return node.Children.Any(child => HasClickabeChild(child) || child.IsClickable);
|
|
}
|
|
|
|
public static bool IsVisible(this SiteMapNodeModel node)
|
|
{
|
|
var isNaplo = ClaimData.FelhasznaloSzerepkor == SzerepkorTipusEnum.Naplo;
|
|
var isAdminisztrator = ClaimData.FelhasznaloSzerepkor == SzerepkorTipusEnum.Adminisztrator;
|
|
|
|
// NOTE: Ha létrejönnek az új szervezet típusok, akkor a Duális képzés szerepkörök region alapján kell majd kezelni azokat. Pl.: Dobbantó
|
|
#region Duális képzés szerepkörök
|
|
|
|
var hasDualisOktatoClaimPackage = ClaimData.FelhasznaloSzerepCsomagok.Contains(KretaClaimPackages.IsDualisKepzohelyiOktato.ClaimValue);
|
|
var isDualisOktato = isNaplo && hasDualisOktatoClaimPackage;
|
|
var isDualisAdmin = ClaimData.FelhasznaloSzerepkor == SzerepkorTipusEnum.Dualis_Admin;
|
|
var isDualisFelhasznalo = isDualisOktato || isDualisAdmin;
|
|
|
|
if (isDualisOktato)
|
|
{
|
|
if (node.Area == Constants.Areas.DualisKepzes
|
|
|| node.Controller == Constants.Controllers.Ertekeles
|
|
|| node.Controller == Constants.Controllers.ErettsegiEredmenyek
|
|
|| node.Controller == Constants.Controllers.Dolgozatok
|
|
|| node.Controller == Constants.Controllers.HazifeladatokListaja
|
|
|| node.Controller == Constants.Controllers.TanariOrarendKereso
|
|
|| node.Controller == Constants.Controllers.OsztalyOrarendKereso
|
|
|| node.Controller == Constants.Controllers.TeremOrarendKereso
|
|
|| node.Controller == Constants.Controllers.HaziFeladatCsatolmanyok
|
|
|| node.Controller == Constants.Controllers.FeladatokListajaTanar
|
|
|| node.Controller == Constants.Controllers.CsoportMulasztasok
|
|
|| node.Controller == Constants.Controllers.Tanorak
|
|
|| node.Controller == Constants.Controllers.NemNaplozottTanorak
|
|
|| node.Controller == Constants.Controllers.OsszefuggoSzakGyak
|
|
|| node.Controller == Constants.Controllers.FaliujsagBejegyzesek
|
|
|| node.Controller == Constants.Controllers.TanarBejelentettSzamonkeresek
|
|
|| node.Controller == Constants.Controllers.TanarTanitottTanulok
|
|
|| node.Controller == Constants.Controllers.CsoportTanuloi
|
|
|| node.Controller == Constants.Controllers.CsoportTanuloiAdatok
|
|
|| node.Controller == Constants.Controllers.CsoportOrarend)//2.110-ben ha megoldodik a teljes Dualis akkor vissze kell keruljon - KRETA2-12511
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (node.Controller == Constants.Controllers.DualisMulasztasok
|
|
|| node.Controller == Constants.Controllers.DualisErtekeles
|
|
|| node.Controller == Constants.Controllers.DualisIgazolas)
|
|
{
|
|
return isDualisOktato;
|
|
}
|
|
|
|
if (node.Controller == Constants.Controllers.DualisIgazolasokListaja)
|
|
{
|
|
return isDualisAdmin;
|
|
}
|
|
|
|
if(node.Controller == Constants.Controllers.DualisIgazolasokListaja)// majd felengedjuk amikor kesz lesz az adminoknak a listaaja
|
|
{ return false; }
|
|
|
|
#endregion Duális képzés szerepkörök
|
|
|
|
// NOTE: Ha létrejönnek az új szervezet típusok, akkor ide ||-val elválasztva kell majd hozzátenni az újakat,
|
|
// hogy egyik szervezet típusnál se jelenjenek meg a nem kívánt menüpontok
|
|
// Pl.: var isSzervezetiFelhasznalo = isDualisFelhasznalo || isDobbantoFelhasznalo
|
|
var isSzervezetiFelhasznalo = isDualisFelhasznalo;
|
|
|
|
var featureContext = DependencyResolver.Current.GetService<IFeatureContext>();
|
|
|
|
if (ClaimData.JustLEPOrganization &&
|
|
!EngedelyezettLepMenupont(node))
|
|
{
|
|
return false;
|
|
}
|
|
|
|
if (ClaimData.IsArchivIntezmeny &&
|
|
!EngedelyezettArchivMenupont(node))
|
|
{
|
|
return false;
|
|
}
|
|
|
|
if (ClaimData.IsOnlyAlkalmazott &&
|
|
!node.Attributes.ContainsKey("onlyAlkalmazott"))
|
|
{
|
|
return false;
|
|
}
|
|
|
|
if (node.Action == "Tananyagtar")
|
|
{
|
|
if (isSzervezetiFelhasznalo)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
if (!featureContext.IsEnabled(Core.Constants.FeatureName.Tananyagtar, instituteId: ClaimData.IntezmenyAzonosito))
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (node.Attributes.ContainsKey("invisible"))
|
|
{
|
|
return false;
|
|
}
|
|
|
|
if (node.Controller == "IktSzandeknyilatkozatok" &&
|
|
ApplicationData.SystemType != SystemType.KK)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
if (node.Controller == "NebuloImportExport" &&
|
|
ClaimData.IsBeiratkozasVeglegesitve)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
if (node.Action == "Uzenetek")
|
|
{
|
|
if (isSzervezetiFelhasznalo)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
var intezmenyConfigHelper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType());
|
|
if (!intezmenyConfigHelper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.UzenetModul, IntezmenyConfigTipusEnum.IsEnabled) ||
|
|
ClaimData.IsDefaultAdminUser ||
|
|
ClaimData.BelepesiNev.ToUpper() == Constants.General.KretaTechnicalUserNev.ToUpper())
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (node.Area == "KirImportExport" &&
|
|
!featureContext.IsEnabled(Core.Constants.FeatureName.AlkalmazottTanuloKirSzinkron, instituteId: ClaimData.IntezmenyAzonosito))
|
|
{
|
|
return false;
|
|
}
|
|
|
|
if (node.Area == "HRModul")
|
|
{
|
|
if (isSzervezetiFelhasznalo)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
var intezmenyConfigHelper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType());
|
|
if (!intezmenyConfigHelper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.HRModul, IntezmenyConfigTipusEnum.IsEnabled))
|
|
{
|
|
return false;
|
|
}
|
|
|
|
if (node.Controller == "Tavolletjelento" &&
|
|
node.Action == "Index" &&
|
|
ClaimData.IsDefaultAdminUser)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
if (node.Controller == "Tavolletjelento" &&
|
|
(node.Action == "Kezeles" || node.Action == "FoglalkoztatottakAdatai"))
|
|
{
|
|
var hrModulHelper = new HRModulHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
if (!ClaimData.IsDefaultAdminUser &&
|
|
!isAdminisztrator &&
|
|
!hrModulHelper.IsLeader() &&
|
|
!hrModulHelper.IsHrKezelo())
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (node.Action == "Eugyintezes")
|
|
{
|
|
if (isSzervezetiFelhasznalo)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
var intezmenyConfigHelper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType());
|
|
|
|
if (!intezmenyConfigHelper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.Eugyintezes, IntezmenyConfigTipusEnum.IsEnabled) ||
|
|
ClaimData.IsDefaultAdminUser ||
|
|
ClaimData.BelepesiNev.ToUpper() == Constants.General.KretaTechnicalUserNev.ToUpper())
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (node.Action == "DKT")
|
|
{
|
|
if (isSzervezetiFelhasznalo)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
if (ClaimData.IsTanuloOrGondviselo &&
|
|
ClaimData.GondviseloId.IsEntityId())
|
|
{
|
|
return false;
|
|
}
|
|
|
|
var intezmenyHelper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
if (!intezmenyHelper.GetIntezmenyiAdatok().IsDKTAktiv)
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (node.Action == "Esl" ||
|
|
node.Action == "Fokusz" ||
|
|
node.Action == "Leltar" ||
|
|
node.Action == "eJelentkezes" ||
|
|
node.Controller == "Nebulo" ||
|
|
node.Controller == "NebuloImportExport" ||
|
|
node.Controller == "OkosmeroEnergetikaiAdat")
|
|
{
|
|
if (isSzervezetiFelhasznalo)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
var intezmenyConfigHelper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType());
|
|
|
|
if (node.Action == "Esl")
|
|
{
|
|
if (!intezmenyConfigHelper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.ESL, IntezmenyConfigTipusEnum.IsEnabled))
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (node.Action == "Fokusz")
|
|
{
|
|
if (!intezmenyConfigHelper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.Fokusz, IntezmenyConfigTipusEnum.IsEnabled))
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (node.Action == "Leltar")
|
|
{
|
|
if (!intezmenyConfigHelper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.Leltar, IntezmenyConfigTipusEnum.IsEnabled))
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (node.Action == "eJelentkezes")
|
|
{
|
|
if (!intezmenyConfigHelper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.eJelentkezes, IntezmenyConfigTipusEnum.IsEnabled))
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (node.Controller == "Nebulo")
|
|
{
|
|
if (!intezmenyConfigHelper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.Beiratkozas, IntezmenyConfigTipusEnum.IsEnabled))
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (node.Controller == "NebuloImportExport")
|
|
{
|
|
if (!intezmenyConfigHelper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.Beiratkozas, IntezmenyConfigTipusEnum.IsEnabled))
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (node.Controller == "OkosmeroEnergetikaiAdat")
|
|
{
|
|
if (!intezmenyConfigHelper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.Okosmeres, IntezmenyConfigTipusEnum.IsEnabled))
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (node.Controller == "IktatottDokumentumok" &&
|
|
node.Area == "Nyomtatvanyok" &&
|
|
!featureContext.IsEnabled(Core.Constants.FeatureName.PoszeidonIktatas, instituteId: ClaimData.IntezmenyAzonosito))
|
|
{
|
|
return false;
|
|
}
|
|
|
|
if (node.Title == "Dokumentumok")
|
|
{
|
|
if (isSzervezetiFelhasznalo)
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (node.Attributes.ContainsKey("systemSettingCheck"))
|
|
{
|
|
var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSystemConnectionType());
|
|
|
|
var sysParamList = systemSettingsHelper.GetSystemSettingValue<List<string>>(RendszerBeallitasTipusEnum.Tanar_Feluleten_Orarend_Lathatosag);
|
|
|
|
if (node.Controller == "TanariOrarendKereso" &&
|
|
sysParamList.Contains("TanariOrarendKereso"))
|
|
{
|
|
return false;
|
|
}
|
|
|
|
if (node.Controller == "OsztalyOrarendKereso" &&
|
|
sysParamList.Contains("OsztalyOrarendKereso"))
|
|
{
|
|
return false;
|
|
}
|
|
|
|
if (node.Controller == "TeremOrarendKereso" &&
|
|
sysParamList.Contains("TeremOrarendKereso"))
|
|
{
|
|
return false;
|
|
}
|
|
|
|
var fogadoorakMegjelenitese = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Fogadoorak_megjelenitese);
|
|
if (!fogadoorakMegjelenitese &&
|
|
(node.Controller == "Fogadoora" || node.Controller == "InformaciokFogadoorak"))
|
|
{
|
|
return false;
|
|
}
|
|
|
|
var lep = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Lazar_Ervin_Program_kezelese);
|
|
if (!lep && (node.Controller == "EloadasokKezelese" ||
|
|
node.Controller == "GondviseloLEP" ||
|
|
(node.Attributes.ContainsKey("enaplo") && !ClaimData.IsAdministrator && node.Controller != string.Empty)))
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (node.Attributes.ContainsKey("checkisalkalmazottpedagogus") &&
|
|
!ClaimData.IsAlkalmazottPedagogus)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
if (node.Attributes.ContainsKey("checkpackage") &&
|
|
!ClaimManager.HasPackage(node.Attributes["checkpackage"].ToString()))
|
|
{
|
|
return false;
|
|
}
|
|
|
|
if (node.Controller == "AktivTanevValtasa")
|
|
{
|
|
if (isSzervezetiFelhasznalo)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
if (ClaimData.IsActivTanev)
|
|
{
|
|
var tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
|
|
return tanevHelper.GetAktivTanevValtasMenupontMegjelenik();
|
|
}
|
|
}
|
|
|
|
if (node.IsDisabledForHittanOktato() &&
|
|
IsAlkalmazottNemLathatjaDiakokAdatait())
|
|
{
|
|
return false;
|
|
}
|
|
|
|
if (node.Controller == "SzakkepzesiJuttatasok")
|
|
{
|
|
var intezmenyConfigHelper = new IntezmenyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
if (!ClaimData.IsAdministrator ||
|
|
!intezmenyConfigHelper.GetIntezmenyiAdatok().IsSzakkepzoJuttatas)
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (node.Controller == "OktatottSzakmak")
|
|
{
|
|
var intezmenyConfigHelper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
if (!isAdminisztrator ||
|
|
!intezmenyConfigHelper.GetIntezmenyiAdatok().IsSzakkepzo)
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (node.Area == "DualisKepzes")
|
|
{
|
|
if (!new KretaAuthorization().IsValidDualisKepzes())
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (node.Controller == "Projekt")
|
|
{
|
|
var intezmenyConfigHelper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
if (!intezmenyConfigHelper.GetIntezmenyiAdatok().IsProjektAktiv)
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (node.Title == "Összefüggő szakmai gyakorlat" &&
|
|
ClaimData.IsSelectedTanev20_21OrLater)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
if (node.Title == "Egybefüggő szakmai gyakorlat" &&
|
|
!ClaimData.IsSelectedTanev20_21OrLater)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
if (node.Title == "Iskolaőr")
|
|
{
|
|
if (isSzervezetiFelhasznalo)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
if (ClaimData.IsTanuloOrGondviselo)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
var alkalmazottHelper = new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
if (!alkalmazottHelper.GetIskolaor().Any())
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (node.Title == "Eszköz ügyintézés")
|
|
{
|
|
if (isSzervezetiFelhasznalo)
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (node.Controller == "FeltarAlkalmazott")
|
|
{
|
|
if (node.Action == "Atjelentkezes")
|
|
{
|
|
return ClaimData.FeltarAlkalmazottEnabled &&
|
|
ClaimData.FelhasznaloSzerepkorok.Any(x => x.Key == SzerepkorTipusEnum.FELTAR_EsetKezelo || x.Key == SzerepkorTipusEnum.FELTAR_EszkozMenedzser);
|
|
}
|
|
}
|
|
|
|
if (node.Controller == "FeltarGondviselo")
|
|
{
|
|
if (node.Action == "Index")
|
|
{
|
|
return ClaimData.FeltarGondviseloEnabled;
|
|
}
|
|
|
|
if (node.Action == "Atjelentkezes")
|
|
{
|
|
var eszkozIgenylesHelper = new EszkozIgenylesHelper(ConnectionTypeExtensions.GetSystemConnectionType());
|
|
return ClaimData.FeltarGondviseloEnabled &&
|
|
eszkozIgenylesHelper.IsEszkozKiosztva(ClaimData.FelhasznaloId);
|
|
}
|
|
}
|
|
|
|
if (node.Controller == "FeltarTanulo")
|
|
{
|
|
return ClaimData.FeltarGondviseloEnabled;
|
|
}
|
|
|
|
if (node.Controller == "TanuloApaczai")
|
|
{
|
|
if (DateTime.Now < new DateTime(2022, 09, 12, 00, 01, 00))
|
|
{
|
|
return false;
|
|
}
|
|
|
|
if (isSzervezetiFelhasznalo)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
if (!ClaimData.IsSelectedTanev21_22OrLater)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
var tanuloHelper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
var apaczaiMenuVisibility = tanuloHelper.CheckApaczaiMenuVisibility(ClaimData.IsSelectedTanev20_21OrLater, ClaimData.IsSelectedTanev21_22OrLater);
|
|
try
|
|
{
|
|
var connection = ConnectionTypeExtensions.GetSessionConnectionType();
|
|
var kgrClient = (IKGRClient)DependencyResolver.Current.GetService(typeof(IKGRClient));
|
|
var tanuloApaczaiHelper = new TanuloApaczaiHelper(connection);
|
|
var tanuloVanPalyazata = tanuloApaczaiHelper.GetPalyazat(kgrClient, ClaimData.FelhasznaloIdpEgyediAzonosito).Id > 0;
|
|
|
|
if (tanuloVanPalyazata)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
if (DateTime.Now > Core.Constants.ApaczaiVegeDatum)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
var tanuloApaczaiSzerzodeses = tanuloHelper.GetTanuloiAdatok(ClaimData.FelhasznaloId, ClaimData.KovTanevID, ClaimData.IsSelectedTanev20_21OrLater, ClaimData.IsSelectedTanev21_22OrLater).IsApaczaiSzerzodeses;
|
|
var tanulonakVanElfogadottPalyazataMasikIntezmenyben = tanuloApaczaiHelper.HasElfogadottPalyazatMasikIntezmenyByOktatasiAzonosito(kgrClient, ClaimData.IntezmenyGuid.Value, ClaimData.FelhasznaloId);
|
|
return (tanuloApaczaiSzerzodeses && tanulonakVanElfogadottPalyazataMasikIntezmenyben) || apaczaiMenuVisibility;
|
|
}
|
|
catch (Exception)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
// NOTE: Ez futott meg akkor, amikor először aktiválták a db-ben az apáczai elérhetőségét.
|
|
// NOTE: A modul újbóli letiltása után, viszont a a fenti tanuló beállítások alapján kell eldönteni a menüpont megjelenítését.
|
|
// NOTE: Ez várhatóan vissza lesz kapcsolva és akkor szükség lesz erre a kódra.
|
|
//var intezmenyConfigHelper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType());
|
|
//if (!intezmenyConfigHelper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.Apaczai, IntezmenyConfigTipusEnum.IsEnabled))
|
|
//{
|
|
// return false;
|
|
//}
|
|
|
|
//if (!apaczaiMenuVisibility)
|
|
//{
|
|
// return false;
|
|
//}
|
|
}
|
|
|
|
if (node.Action == "PalyavalasztasiElorejelzesiModul")
|
|
{
|
|
if (isSzervezetiFelhasznalo)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
if (ClaimData.IsTanuloOrGondviselo &&
|
|
!ClaimData.GondviseloId.IsEntityId())
|
|
{
|
|
|
|
var intezmenyConfigHelper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType());
|
|
if (intezmenyConfigHelper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.Palyavalasztas, IntezmenyConfigTipusEnum.IsEnabled))
|
|
{
|
|
var tanuloEvfolyamok = new List<int>();
|
|
var tanuloHelper = new TanuloHelper(ConnectionTypeExtensions.GetSystemConnectionType());
|
|
var data = tanuloHelper.GetTanuloAktivOsztalyai(ClaimData.FelhasznaloId);
|
|
var ocsHelper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSystemConnectionType());
|
|
|
|
foreach (var item in data)
|
|
{
|
|
int.TryParse(item.Key, out var osztalyCsoportId);
|
|
tanuloEvfolyamok.Add(ocsHelper.GetOsztalyByOsztalyId(osztalyCsoportId).EvfolyamTipusa);
|
|
}
|
|
|
|
if (!Core.Constants.PalyavalasztasiEvfolyamok.Any(x => tanuloEvfolyamok.Any(y => y == x)))
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (node.Controller == "SZIRAdatszolg")
|
|
{
|
|
var szirHelper = new SZIRAdatszolgHelper(ConnectionTypeExtensions.GetSystemConnectionType());
|
|
return ClaimData.IsAdministrator &&
|
|
ClaimData.IsSelectedTanev21_22OrLater &&
|
|
DateTime.Now.Date >= Core.Constants.SZIRAdatszolgaltatasDatum &&
|
|
ClaimData.IsSzakkepzoIntezmeny &&
|
|
szirHelper.IsVezetoAlkalmazott(ClaimData.FelhasznaloId);
|
|
}
|
|
|
|
if (node.Title == "Statisztikai adatlap feltöltése" &&
|
|
ClaimData.IsSelectedTanev21_22OrLater)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
if (node.Title == "Adatszolg. a nem állami szakképző int. okt. költségvetéséről")
|
|
{
|
|
var connectionType = ConnectionTypeExtensions.GetSystemConnectionType();
|
|
var szirHelper = new SZIRAdatszolgHelper(connectionType);
|
|
if (ClaimData.IsSelectedTanev21_22OrLater &&
|
|
szirHelper.IsVezetoAlkalmazott(ClaimData.FelhasznaloId))
|
|
{
|
|
try
|
|
{
|
|
var tanevSorszam = new TanevHelper(connectionType).GetTanevInfo().Sorszam;
|
|
var szirApiClient = (ISzirApiClient)DependencyResolver.Current.GetService(typeof(ISzirApiClient));
|
|
var statuszRequest = new StatuszRequest { TanevId = tanevSorszam, IntezmenyAzonosito = ClaimData.IntezmenyAzonosito };
|
|
var statusz = szirApiClient.GetStatusz(statuszRequest).Adat;
|
|
|
|
if (statusz.Count > 0)
|
|
{
|
|
var isVisible = false;
|
|
foreach (var adat in statusz)
|
|
{
|
|
isVisible = adat.StatuszKod != (int)NemAllamiStatuszEnum.NemKotelezettAdatszolgaltatasra;
|
|
}
|
|
|
|
return isVisible;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
catch (Exception)
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
if (node.Action == "KonyvtarModul")
|
|
{
|
|
if (isSzervezetiFelhasznalo)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
var intezmenyConfigHelper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType());
|
|
if (ClaimData.GondviseloId.IsEntityId() ||
|
|
!intezmenyConfigHelper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.Konyvtar, IntezmenyConfigTipusEnum.IsEnabled))
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (node.Controller == "EszkozImportExport")
|
|
{
|
|
return new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType()).GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.EszkozKezeles, IntezmenyConfigTipusEnum.IsEnabled);
|
|
}
|
|
|
|
|
|
if (node.Controller == "Beirasok")
|
|
{
|
|
if (new KretaAuthorization().IsValidDualisBeirasok())
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (node.Controller == "ElektronikusUzenetek")
|
|
{
|
|
if (new KretaAuthorization().IsValidDualisElektronikusUzenetek())
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (node.Controller == "DualisBeirasok")
|
|
{
|
|
if (!new KretaAuthorization().IsValidDualisBeirasok())
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (node.Controller == "DualisElektronikusUzenetek")
|
|
{
|
|
if (!new KretaAuthorization().IsValidDualisElektronikusUzenetek())
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (node.Controller == "TanmenetImportExport")
|
|
{
|
|
if (new KretaAuthorization().IsValidTanulasiElemImportExport())
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (node.Controller == "Tanmenet")
|
|
{
|
|
if (new KretaAuthorization().IsValidTanulasiElemek())
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (node.Controller == "TanulasiElemImportExport")
|
|
{
|
|
if (!new KretaAuthorization().IsValidTanulasiElemImportExport())
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (node.Controller == "TanulasiElemek")
|
|
{
|
|
if (!new KretaAuthorization().IsValidTanulasiElemek())
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
return ClaimData.IsActivTanev ?
|
|
node.IsActiveyear() :
|
|
ClaimData.KovTanevID == ClaimData.SelectedTanevID ?
|
|
node.IsNextyear() :
|
|
node.IsPrevyear();
|
|
}
|
|
|
|
public static bool IsDisabled(this SiteMapNodeModel node)
|
|
{
|
|
if (node.Controller == "Merohely" ||
|
|
node.Controller == "KozmuSzamla")
|
|
{
|
|
var helper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType());
|
|
if (!helper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.KozmuAdatszolgaltatas, IntezmenyConfigTipusEnum.IsEnabled))
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
else if (node.Controller.Contains("Feltar") &&
|
|
node.Action == "Atjelentkezes" &&
|
|
string.IsNullOrWhiteSpace(new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType()).GetIntezmenyConfig<string>(IntezmenyConfigModulEnum.EszkozUgyintezes, IntezmenyConfigTipusEnum.Url)))
|
|
{
|
|
return true;
|
|
}
|
|
|
|
return node.Attributes.ContainsKey("disabled");
|
|
}
|
|
|
|
public static bool IsActiveyear(this SiteMapNodeModel node)
|
|
{
|
|
return node.Attributes.ContainsKey("activeyear");
|
|
}
|
|
|
|
public static bool IsNextyear(this SiteMapNodeModel node)
|
|
{
|
|
return node.Attributes.ContainsKey("nextyear");
|
|
}
|
|
|
|
public static bool IsPrevyear(this SiteMapNodeModel node)
|
|
{
|
|
return node.Attributes.ContainsKey("prevyear");
|
|
}
|
|
|
|
public static bool IsDisabledForHittanOktato(this SiteMapNodeModel node)
|
|
{
|
|
return node.Attributes.ContainsKey("isdisabledforhittanoktato");
|
|
}
|
|
|
|
public static bool TooltipHasValue(this SiteMapNodeModel node)
|
|
{
|
|
node.Attributes.TryGetValue("tooltip", out var value);
|
|
return node.Attributes.ContainsKey("tooltip") &&
|
|
!string.IsNullOrWhiteSpace(value?.ToString());
|
|
}
|
|
|
|
private static bool EngedelyezettLepMenupont(SiteMapNodeModel node)
|
|
{
|
|
if ((node.Area == "Intezmeny" && node.Controller == "Intezmeny" && node.Action == "Index") ||
|
|
(node.Area == "Tanulo" && node.Controller == "Tanulo" && node.Action == "Index") ||
|
|
(node.Area == "OsztalyCsoport" && node.Controller == "Osztaly" && node.Action == "Index") ||
|
|
(node.Area == "OsztalyCsoport" && node.Controller == "Csoport" && node.Action == "Index") ||
|
|
(node.Area == "Alkalmazott" && node.Controller == "Alkalmazott" && node.Action == "Index") ||
|
|
(node.Area == "OsztalyCsoport" && node.Controller == "AktTanevSorolas" && node.Action == "OsztalyBesorolasElsoAlkalom") ||
|
|
(node.Area == "OsztalyCsoport" && node.Controller == "AktTanevSorolas" && node.Action == "OsztalyAtsorolas") ||
|
|
(node.Area == "OsztalyCsoport" && node.Controller == "AktTanevSorolas" && node.Action == "OsztalyTevesBesorolasJavitas") ||
|
|
(node.Area == "OsztalyCsoport" && node.Controller == "AktTanevSorolas" && node.Action == "OsztalyKisorolas") ||
|
|
(node.Area == "OsztalyCsoport" && node.Controller == "AktTanevSorolas" && node.Action == "OsztalyVisszairatkoztatas") ||
|
|
(node.Area == "OsztalyCsoport" && node.Controller == "AktTanevSorolas" && node.Action == "CsoportBesorolas") ||
|
|
(node.Area == "OsztalyCsoport" && node.Controller == "AktTanevSorolas" && node.Action == "CsoportAtsorolas") ||
|
|
(node.Area == "OsztalyCsoport" && node.Controller == "AktTanevSorolas" && node.Action == "CsoportTevesBesorolasJavitas") ||
|
|
(node.Area == "OsztalyCsoport" && node.Controller == "AktTanevSorolas" && node.Action == "CsoportKisorolas") ||
|
|
(node.Area == "LEPModul" && node.Controller == "EloadasokKezelese" && node.Action == "Index") ||
|
|
(node.Area == "OsztalyCsoport" && node.Controller == "BesorolasModOsztalyLista" && node.Action == "Index") ||
|
|
(node.Area == "OsztalyCsoport" && node.Controller == "BesorolasModCsoportLista" && node.Action == "Index") ||
|
|
(node.Area == "OsztalyCsoport" && node.Controller == "BesorolasModOsztalybolKiirtTanulok" && node.Action == "Index") ||
|
|
(node.Area == "OsztalyCsoport" && node.Controller == "BesorolasModCsoportbolbolKiirtTanulok" && node.Action == "Index") ||
|
|
(node.Area == "OsztalyCsoport" && node.Controller == "BesorolasModFelNemVettTanuloTorlese" && node.Action == "Index") ||
|
|
(node.Area == "Adminisztracio" && node.Controller == "AktivTanevValtasa" && node.Action == "Index") ||
|
|
(node.Area == "OsztalyCsoport" && node.Controller == "KovTanevSorolas" && node.Action == "OsztalyBesorolasElsoAlkalom") ||
|
|
(node.Area == "OsztalyCsoport" && node.Controller == "KovTanevSorolas" && node.Action == "OsztalyAtleptetes") ||
|
|
(node.Area == "OsztalyCsoport" && node.Controller == "KovTanevSorolas" && node.Action == "OsztalyTevesBesorolasJavitas") ||
|
|
(node.Area == "OsztalyCsoport" && node.Controller == "KovTanevSorolas" && node.Action == "Visszairatkoztatas") ||
|
|
(node.Area == "OsztalyCsoport" && node.Controller == "KovTanevSorolas" && node.Action == "CsoportBesorolasElsoAlkalom") ||
|
|
(node.Area == "OsztalyCsoport" && node.Controller == "KovTanevSorolas" && node.Action == "CsoportAtleptetes") ||
|
|
(node.Area == "OsztalyCsoport" && node.Controller == "KovTanevSorolas" && node.Action == "CsoportTevesBesorolasJavitas") ||
|
|
(node.Area == "OsztalyCsoport" && node.Controller == "KovTanevSorolas" && node.Action == "OsztalyBesorolasTorles") ||
|
|
(node.Area == "OsztalyCsoport" && node.Controller == "KovTanevSorolas" && node.Action == "CsoportBesorolasTorles") ||
|
|
(node.Area == "Leptetes" && node.Controller == "OsztalyLeptetes" && node.Action == "Index") ||
|
|
(node.Area == "Leptetes" && node.Controller == "CsoportLeptetes" && node.Action == "Index") ||
|
|
|
|
node.Title == "BESOROLÁSOK MÓDOSÍTÁSA, JAVÍTÁSA" ||
|
|
node.Title == "Nyilvántartás" ||
|
|
node.Title == "Intézményi adatok" ||
|
|
node.Title == "Tanulói adatok" ||
|
|
node.Title == "Oktatói adatok" ||
|
|
node.Title == "Tanulók besorolása" ||
|
|
node.Title == "AKTUÁLIS TANÉV - OSZTÁLYOK" ||
|
|
node.Title == "AKTUÁLIS TANÉV - CSOPORTOK" ||
|
|
node.Title == "e-Napló" ||
|
|
node.Title == "Beállítások" ||
|
|
node.Title == "KÖVETKEZŐ TANÉV - OSZTÁLYOK" ||
|
|
node.Title == "KÖVETKEZŐ TANÉV - CSOPORTOK" ||
|
|
node.Title == "BESOROLÁSOK TÖRLÉSE" ||
|
|
node.Title == "Léptetések" ||
|
|
node.Title == "Tanulók" ||
|
|
node.Title == "Osztályok/Csoportok" ||
|
|
|
|
(!ClaimData.IsCsokkentettTanuloLEP &&
|
|
((node.Area == "Adminisztracio" && node.Controller == "TanarImport" && node.Action == "Index") ||
|
|
(node.Area == "Adminisztracio" && node.Controller == "KIRTanuloImport" && node.Action == "Index") ||
|
|
(node.Area == "ImportExport" && node.Controller == "TanuloBesorolasImportExport" && node.Action == "Index") ||
|
|
(node.Area == "Adminisztracio" && node.Controller == "GondviseloImportExport" && node.Action == "Index") ||
|
|
node.Title == "Importálások" ||
|
|
node.Title == "Alkalmazott importálások" ||
|
|
node.Title == "Tanuló importálások")))
|
|
{
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
private static bool EngedelyezettArchivMenupont(SiteMapNodeModel node)
|
|
{
|
|
if (node.Title == "Dokumentumok" || (node.Area == "Nyomtatvanyok" &&
|
|
node.Controller == "Nyomtatvanyok" &&
|
|
node.Action == "Index"))
|
|
{
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
public static bool IsAlkalmazottNemLathatjaDiakokAdatait()
|
|
{
|
|
var isTanarSzerepkor = ClaimData.FelhasznaloSzerepCsomagok.Contains(KretaClaimPackages.Tanar.ClaimValue);
|
|
var isFelhasznaloNemTiltottMunkakoru = ClaimData.FelhasznaloSzerepCsomagok.Contains(KretaClaimPackages.FelhasznaloMunkakoreNemTiltoListas.ClaimValue);
|
|
return isTanarSzerepkor && !isFelhasznaloNemTiltottMunkakoru;
|
|
}
|
|
}
|
|
}
|