init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
295
KretaWeb/Classes/LoginManager.cs
Normal file
295
KretaWeb/Classes/LoginManager.cs
Normal file
|
@ -0,0 +1,295 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.Data;
|
||||
using System.Security.Claims;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.BusinessLogic.Utils;
|
||||
using Kreta.Client.Eugyintezes;
|
||||
using Kreta.Client.Eugyintezes.Configuration;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Framework;
|
||||
using Kreta.Framework.Security;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Classes
|
||||
{
|
||||
public class LoginManager : IDisposable
|
||||
{
|
||||
public static string OrganizationIdentifier => CommonUtils.GetOrganizationIdentifier();
|
||||
|
||||
|
||||
private LoginInfo GetLoginInfo(string loginName, string password, string clientIp)
|
||||
{
|
||||
var loginInfo = new FelhasznaloBelepesHelper(new OrganizationConnectionType(0, 0, OrganizationIdentifier, 0)).AuthenticateUser(loginName, password);
|
||||
|
||||
loginInfo.ClientIP = clientIp;
|
||||
return loginInfo;
|
||||
}
|
||||
|
||||
public LoginInfo Login(LoginInfo loginInfo)
|
||||
{
|
||||
loginInfo.SessionID = Guid.NewGuid().ToString();
|
||||
|
||||
KretaServer.KretaServer.Instance.SessionManager.CreateSession(loginInfo);
|
||||
|
||||
if (ClaimManager.GetStatusClaimSigninEvent() == false)
|
||||
{
|
||||
ClaimManager.ClaimSignin += ClaimManager_ClaimSignin;
|
||||
}
|
||||
ClaimsIdentity claimIdentity = ClaimManager.SignIn(loginInfo);
|
||||
if (claimIdentity.IsAuthenticated)
|
||||
{
|
||||
var connectionType = new SessionConnectionType(loginInfo.SessionID, loginInfo.FelhasznaloId, loginInfo.IntezmenyId, loginInfo.IntezmenyAzonosito, loginInfo.AktivTanevId);
|
||||
|
||||
new FelhasznaloHelper(connectionType).UpdateLastLogin(loginInfo.BelepesiNev);
|
||||
|
||||
SDAServer.Instance.Logger.LoginSuccess(loginInfo);
|
||||
}
|
||||
|
||||
return loginInfo;
|
||||
}
|
||||
|
||||
public ClaimsIdentity LoginByIdp(string userName, string clientIP)
|
||||
{
|
||||
var loginInfo = new FelhasznaloBelepesHelper(new OrganizationConnectionType(0, 0, OrganizationIdentifier, 0)).GetLoginInfo(userName);
|
||||
|
||||
loginInfo.SessionID = Guid.NewGuid().ToString();
|
||||
loginInfo.ClientIP = clientIP;
|
||||
|
||||
KretaServer.KretaServer.Instance.SessionManager.CreateSession(loginInfo);
|
||||
|
||||
if (ClaimManager.GetStatusClaimSigninEvent() == false)
|
||||
{
|
||||
ClaimManager.ClaimSignin += ClaimManager_ClaimSignin;
|
||||
}
|
||||
ClaimsIdentity claimIdentity = ClaimManager.SignIn(loginInfo, true);
|
||||
if (claimIdentity.IsAuthenticated)
|
||||
{
|
||||
var connectionType = new SessionConnectionType(loginInfo.SessionID, loginInfo.FelhasznaloId, loginInfo.IntezmenyId, loginInfo.IntezmenyAzonosito, loginInfo.AktivTanevId);
|
||||
|
||||
new FelhasznaloHelper(connectionType).UpdateLastLogin(loginInfo.BelepesiNev);
|
||||
|
||||
SDAServer.Instance.Logger.LoginSuccess(loginInfo);
|
||||
}
|
||||
|
||||
return claimIdentity;
|
||||
}
|
||||
|
||||
private void ClaimManager_ClaimSignin(object sender, ClaimSigninEventArgs e)
|
||||
{
|
||||
SetUserData(e.Claims, e.LoginInfo);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ellenorzi, hogy jók e a bejelentkezési adatok
|
||||
/// és a logininfo-t eltárolja későbbi felhasználásra
|
||||
/// </summary>
|
||||
/// <param name="userName"></param>
|
||||
/// <param name="password"></param>
|
||||
/// <param name="userHostAddress"></param>
|
||||
/// <returns></returns>
|
||||
public LoginInfo CheckLogin(string userName, string password, string userHostAddress)
|
||||
{
|
||||
LoginInfo loginInfo = null;
|
||||
try
|
||||
{
|
||||
loginInfo = GetLoginInfo(userName.ToUpper(), password, userHostAddress);
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
||||
if (ApplicationData.KretaDebug)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
return loginInfo;
|
||||
}
|
||||
|
||||
public void LogOut()
|
||||
{
|
||||
ClaimManager.SignOut();
|
||||
}
|
||||
|
||||
public IsSuccessResponseCo GondviseloJelszoIgenyles(GondviseloJelszoIgenyloCo co)
|
||||
{
|
||||
var connectionType = new OrganizationConnectionType(ClaimData.FelhasznaloId, CommonUtils.GetIntezmenyId(ClaimData.FelhasznaloId), OrganizationIdentifier, CommonUtils.GetAktualisTanevId(ClaimData.FelhasznaloId));
|
||||
|
||||
var intezmenyHelper = new IntezmenyHelper(connectionType);
|
||||
|
||||
var intezmenyCo = intezmenyHelper.GetAktivIntezmenyNevCim();
|
||||
var ds = new TanuloHelper(connectionType).GetGondviselokAdataiByOktatasiAzonosito(co.OktatasiAzonosito);
|
||||
|
||||
if (ds.Tables[0].Rows.Count > 0)
|
||||
{
|
||||
var tanuloId = ds.Tables[0].Rows[0].Field<int>("TanuloId");
|
||||
var tanevId = ds.Tables[0].Rows[0].Field<int>("TanevId");
|
||||
var intezmenyId = ds.Tables[0].Rows[0].Field<int>("IntezmenyId");
|
||||
|
||||
connectionType = new OrganizationConnectionType(ClaimData.FelhasznaloId, intezmenyId, OrganizationIdentifier, tanevId);
|
||||
|
||||
var jelszoModositasLinkHelper = new JelszoModositasLinkHelper(connectionType);
|
||||
|
||||
foreach (DataRow row in ds.Tables[0].Rows)
|
||||
{
|
||||
var gondviseloNevDBben = row.Field<string>("C_NEV");
|
||||
var gondviseloEmailDBben = row.Field<string>("C_EMAILCIM");
|
||||
var gondviseloEmailGuidDBben = SDAConvert.ToNullableGuid(row["C_GUID"]);
|
||||
var gondviseloId = row.Field<int?>("GondviseloId");
|
||||
|
||||
if (gondviseloId.IsEntityId() && gondviseloEmailDBben?.Trim().ToLower() == co.GondviseloEmail?.Trim().ToLower() && gondviseloNevDBben?.Trim().ToLower() == co.GondviseloNev?.Trim().ToLower())
|
||||
{
|
||||
//ha minden jó, sikerült beazonosítani a gondviselőt - link kiküldése
|
||||
var message = string.Format(EmailResource.SikeresGondviseloAzonositasEmail, gondviseloNevDBben, intezmenyCo.Nev, intezmenyCo.IntezmenyCim, CommonUtils.GetIntezmenyUrl(intezmenyCo.IntezmenyAzonosito), "{0}");
|
||||
jelszoModositasLinkHelper.BeazonositottGondvilseoLinkGeneralasEsKuldes(tanuloId, gondviseloId, gondviseloEmailDBben, message, gondviseloEmailGuidDBben);
|
||||
return new IsSuccessResponseCo(true, string.Format(ErrorResource.SikeresGondviseloAzonositas, co.GondviseloNev));
|
||||
}
|
||||
}
|
||||
|
||||
//ha csak okt.azon jó - csökkentett gondviselő létrhezozása, felhasznalobelepes nélkül, link kiküldése
|
||||
jelszoModositasLinkHelper.UjCsokkentettGondviseloLinkGeneralasEsKuldes(co, tanuloId, tanevId, intezmenyId, intezmenyCo);
|
||||
|
||||
intezmenyHelper.ErtesitesekCsokkentettLetrehozasarol(tanuloId, intezmenyCo);
|
||||
|
||||
return new IsSuccessResponseCo(true, string.Format(AdminisztracioResource.CsokkentettGondviseloLetrehozasFeedback, co.GondviseloNev, intezmenyCo.Nev, intezmenyCo.IntezmenyCim));
|
||||
}
|
||||
|
||||
//ha semmi nem jó - "keresse fel az intézményt"
|
||||
return new IsSuccessResponseCo(false, string.Format(ErrorResource.GondviseloAzonositasNemSikerultKeresseFelAzIntezmenyt, co.GondviseloNev, intezmenyCo.Nev, intezmenyCo.IntezmenyCim));
|
||||
}
|
||||
|
||||
private void ErtesitesekCsokkentettLetrehozasarol(int tanuloId, IntezmenyNevCimCo intezmenyCo)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void CsokkentettGondviseloLetrehozasaEsLinkKuldes(JelszoModositasLinkHelper helper, GondviseloJelszoIgenyloCo co, int tanuloId, int tanevId, int intezmenyId, IntezmenyNevCimCo intezmenyCo)
|
||||
{
|
||||
helper.UjCsokkentettGondviseloLinkGeneralasEsKuldes(co, tanuloId, tanevId, intezmenyId, intezmenyCo);
|
||||
}
|
||||
|
||||
private static void SetUserData(List<Claim> claims, LoginInfo loginInfo)
|
||||
{
|
||||
var connectionType = new SessionConnectionType(loginInfo.SessionID, loginInfo.FelhasznaloId, 0, loginInfo.IntezmenyAzonosito, 0);
|
||||
|
||||
claims.Add(new Claim(KretaClaimTypes.SessionId, loginInfo.SessionID));
|
||||
claims.Add(new Claim(KretaClaimTypes.BelepesiNev, loginInfo.BelepesiNev));
|
||||
claims.Add(new Claim(KretaClaimTypes.FelhasznaloId, loginInfo.FelhasznaloId.ToString()));
|
||||
claims.Add(new Claim(KretaClaimTypes.FelhasznaloGuid, loginInfo.FelhasznaloEgyediAzonosito.ToString()));
|
||||
claims.Add(new Claim(KretaClaimTypes.FelhasznaloIdpEgyediAzonosito, loginInfo.FelhasznaloIdpEgyediAzonosito.ToString()));
|
||||
claims.Add(new Claim(KretaClaimTypes.JelszotKotelezoValtoztatni, loginInfo.JelszotKotelezoValtoztatni.ToString()));
|
||||
claims.Add(new Claim(KretaClaimTypes.Utonev, loginInfo.Utonev));
|
||||
claims.Add(new Claim(KretaClaimTypes.VezetekNev, loginInfo.Vezeteknev));
|
||||
claims.Add(new Claim(KretaClaimTypes.FelhasznaloNev, loginInfo.NyomtatasiNev));
|
||||
claims.Add(new Claim(KretaClaimTypes.IntezmenyAzonosito, loginInfo.IntezmenyAzonosito));
|
||||
|
||||
if (loginInfo.GondviseloId.HasValue)
|
||||
{
|
||||
claims.Add(new Claim(KretaClaimTypes.GondviseloId, loginInfo.GondviseloId.ToString()));
|
||||
claims.Add(new Claim(KretaClaimTypes.GondviseloNeve, loginInfo.GondviseloNeve));
|
||||
claims.Add(new Claim(KretaClaimTypes.GondviseloIdpEgyediAzonosito, loginInfo.GondviseloIdpEgyediAzonosito.ToString()));
|
||||
}
|
||||
|
||||
//Egyéb adatok (általános nyomtatáshoz kell)
|
||||
claims.Add(new Claim(KretaClaimTypes.SzuletesiDatum, loginInfo.SzuletesiDatum.ToShortDateString()));
|
||||
claims.Add(new Claim(KretaClaimTypes.SzuletesiHely, loginInfo.SzuletesiHely));
|
||||
claims.Add(new Claim(KretaClaimTypes.AnyjaNeve, loginInfo.AnyjaNeve));
|
||||
|
||||
IntezmenyHelper intezmenyHelper = new IntezmenyHelper(connectionType);
|
||||
int intezmenyId = intezmenyHelper.GetIntezmenyId();
|
||||
claims.Add(new Claim(KretaClaimTypes.IntezmenyId, intezmenyId.ToString()));
|
||||
|
||||
TanevHelper tanevHelper = new TanevHelper(connectionType);
|
||||
var aktivTanev = tanevHelper.GetTanevInfo();
|
||||
|
||||
claims.Add(new Claim(KretaClaimTypes.AktivTanevID, aktivTanev.Id.ToString()));
|
||||
claims.Add(new Claim(KretaClaimTypes.SelectedTanevID, aktivTanev.Id.ToString()));
|
||||
claims.Add(new Claim(KretaClaimTypes.AktivTanevNev, aktivTanev.Nev));
|
||||
|
||||
KeyValuePair<int, string> kovTanevek = tanevHelper.GetKovetkezoTanev();
|
||||
if (kovTanevek.Value != null)
|
||||
{
|
||||
claims.Add(new Claim(KretaClaimTypes.KovTanevID, kovTanevek.Key.ToString()));
|
||||
}
|
||||
|
||||
var prevTanevId = tanevHelper.GetPrevTanevId();
|
||||
if (prevTanevId.IsEntityId())
|
||||
{
|
||||
claims.Add(new Claim(KretaClaimTypes.PrevTanevID, prevTanevId.ToString()));
|
||||
}
|
||||
|
||||
connectionType = new SessionConnectionType(loginInfo.SessionID, loginInfo.FelhasznaloId, intezmenyId, loginInfo.IntezmenyAzonosito, aktivTanev.Id);
|
||||
|
||||
intezmenyHelper = new IntezmenyHelper(connectionType);
|
||||
IntezmenyCO adatok = intezmenyHelper.GetIntezmenyiAdatok();
|
||||
claims.Add(new Claim(KretaClaimTypes.OrganizationName, adatok.Nev));
|
||||
claims.Add(new Claim(KretaClaimTypes.OrganizationShortName, adatok.RovidNev ?? string.Empty));
|
||||
claims.Add(new Claim(KretaClaimTypes.OrganizationCode, adatok.OMKod));
|
||||
claims.Add(new Claim(KretaClaimTypes.OrganizationFullAddress, adatok.Varos + " " + adatok.Kozterulet + " " + adatok.KozteruletJellegNev + " " + adatok.Hazszam));
|
||||
claims.Add(new Claim(KretaClaimTypes.IsBeiratkozasVeglegesitve, adatok.IsBeiratkozasVeglegesitve.ToString()));
|
||||
claims.Add(new Claim(KretaClaimTypes.LicenceDatum, adatok.LicenceDatum));
|
||||
claims.Add(new Claim(KretaClaimTypes.JustLEPOrganization, adatok.IsCsakLepKezelo.ToString()));
|
||||
claims.Add(new Claim(KretaClaimTypes.IsSzirIntezmeny, adatok.IsSzirIntezmeny.ToString()));
|
||||
claims.Add(new Claim(KretaClaimTypes.IsArchivIntezmeny, adatok.IsArchivIntezmeny.ToString()));
|
||||
claims.Add(new Claim(KretaClaimTypes.IsSzakkepzoIntezmeny, adatok.IsSzakkepzo.ToString()));
|
||||
claims.Add(new Claim(KretaClaimTypes.IsNszfhIntezmeny, intezmenyHelper.IsNszfhIntezmeny().ToString()));
|
||||
claims.Add(new Claim(KretaClaimTypes.IntezmenyiDictionaryEnvironmentName, intezmenyHelper.GetIntezmenyiDictionaryEnvironmentName()));
|
||||
claims.Add(new Claim(KretaClaimTypes.IntezmenyGuid, adatok.IntezmenyGuid.ToString()));
|
||||
|
||||
var intezmenyConfigHelper = new IntezmenyConfigHelper(connectionType);
|
||||
bool isKlebelsberg = intezmenyConfigHelper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.IsKlebelsberg, IntezmenyConfigTipusEnum.IsEnabled);
|
||||
claims.Add(new Claim(KretaClaimTypes.IsKlebelsberg, isKlebelsberg.ToString()));
|
||||
|
||||
bool eszkozKezelesEnabled = intezmenyConfigHelper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.EszkozKezeles, IntezmenyConfigTipusEnum.IsEnabled);
|
||||
claims.Add(new Claim(KretaClaimTypes.EszkozKezelesEnabled, eszkozKezelesEnabled.ToString()));
|
||||
|
||||
bool feltarGondviseloEnabled = intezmenyConfigHelper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.FeltarGondviselo, IntezmenyConfigTipusEnum.IsEnabled);
|
||||
claims.Add(new Claim(KretaClaimTypes.FeltarGondviseloEnabled, feltarGondviseloEnabled.ToString()));
|
||||
|
||||
bool feltarAlkalmazottEnabled = intezmenyConfigHelper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.FeltarAlkalmazott, IntezmenyConfigTipusEnum.IsEnabled);
|
||||
claims.Add(new Claim(KretaClaimTypes.FeltarAlkalmazottEnabled, feltarAlkalmazottEnabled.ToString()));
|
||||
|
||||
|
||||
KretaTipusEnum verzio = new AdminHelper(connectionType).GetKretaTipus();
|
||||
claims.Add(verzio == KretaTipusEnum.Teljes_KRETA ? new Claim(KretaClaimTypes.IsFullKretaVerzio, "true") : new Claim(KretaClaimTypes.IsFullKretaVerzio, "false"));
|
||||
|
||||
var selectedTanevId = ClaimData.SelectedTanevID ?? aktivTanev.Id;
|
||||
if (UserContext.Instance != null)
|
||||
{
|
||||
UserContext.Instance.SetIntezmenyEsTanev(intezmenyId, aktivTanev.Id, selectedTanevId);
|
||||
}
|
||||
|
||||
var alkalmazottHelper = new AlkalmazottHelper(connectionType);
|
||||
|
||||
claims.Add(new Claim(KretaClaimTypes.IsAlkalmazottPedagogus, alkalmazottHelper.IsAlkalmazottPedagogus().ToString()));
|
||||
claims.Add(new Claim(KretaClaimTypes.IsPortas, alkalmazottHelper.IsPortasMunkakor().ToString()));
|
||||
|
||||
//EÜgy kell-e üzenetküldés bekapcsolni
|
||||
var eugyintezesClientConfiguration = (EugyintezesClientConfiguration)ConfigurationManager.GetSection("EugyintezesClientConfiguration");
|
||||
if (eugyintezesClientConfiguration.IsUzenetekEnable)
|
||||
{
|
||||
EugyintezesClient eUgyClient = new EugyintezesClient(eugyintezesClientConfiguration);
|
||||
var uzenetekMenuElerheto = eUgyClient.GetUzenetkezelesElerheto(adatok.IntezmenyAzonosito);
|
||||
claims.Add(new Claim(KretaClaimTypes.IsAktivUzenetekMenu, uzenetekMenuElerheto.ToString()));
|
||||
}
|
||||
|
||||
var isSelectedTanev20_21OrLater = CommonUtils.IsSelectedTanev20_21OrLater(aktivTanev);
|
||||
claims.Add(new Claim(KretaClaimTypes.IsSelectedTanev20_21OrLater, isSelectedTanev20_21OrLater.ToString()));
|
||||
var isSelectedTanev21_22OrLater = CommonUtils.IsSelectedTanev21_22OrLater(aktivTanev);
|
||||
claims.Add(new Claim(KretaClaimTypes.IsSelectedTanev21_22OrLater, isSelectedTanev21_22OrLater.ToString()));
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue