From da62b70acc4c3a28918e63eacdf4e1d24047ffd8 Mon Sep 17 00:00:00 2001 From: "zaccaria.majid" Date: Mon, 11 Dec 2023 15:35:21 +0100 Subject: [PATCH] forse fix logout per ogni interazione --- MP-TAB-SERV/Components/CmpFooter.razor.cs | 12 +++--- MP-TAB-SERV/Components/CmpTop.razor.cs | 45 ++++++++------------- MP-TAB-SERV/MP-TAB-SERV.csproj | 2 +- MP-TAB-SERV/Pages/RegNewDevice.razor | 2 +- MP-TAB-SERV/Pages/RegNewDevice.razor.cs | 6 +-- MP-TAB-SERV/Resources/ChangeLog.html | 2 +- MP-TAB-SERV/Resources/VersNum.txt | 2 +- MP-TAB-SERV/Resources/manifest.xml | 2 +- MP-TAB-SERV/Shared/MainLayout.razor.cs | 40 ++++++++++++++++++- MP.Data/Services/MessageService.cs | 48 ++++++++++++++++++++++- MP.Data/Services/TabDataService.cs | 6 +-- 11 files changed, 121 insertions(+), 46 deletions(-) diff --git a/MP-TAB-SERV/Components/CmpFooter.razor.cs b/MP-TAB-SERV/Components/CmpFooter.razor.cs index 9d669395..da0756bb 100644 --- a/MP-TAB-SERV/Components/CmpFooter.razor.cs +++ b/MP-TAB-SERV/Components/CmpFooter.razor.cs @@ -62,11 +62,13 @@ namespace MP_TAB_SERV.Components await Task.Delay(1); var rawVers = typeof(Program).Assembly.GetName().Version; version = rawVers != null ? rawVers : new Version("0.0.0.0"); - dtTimerScadenzaLogin = SMServ.GetConfInt("TAB_dtTimerScadLogin"); - if (dtTimerScadenzaLogin > 0) - { - StartTimer(); - } + //dtTimerScadenzaLogin = SMServ.GetConfInt("TAB_dtTimerScadLogin"); + //dtTimerScadenzaLogin = SMServ.GetConfInt("TAB_dtTimerScadLogin"); + + //if (dtTimerScadenzaLogin > 0) + //{ + // //StartTimer(); + //} } //protected override void OnInitialized() diff --git a/MP-TAB-SERV/Components/CmpTop.razor.cs b/MP-TAB-SERV/Components/CmpTop.razor.cs index 105ddec7..8f465e08 100644 --- a/MP-TAB-SERV/Components/CmpTop.razor.cs +++ b/MP-TAB-SERV/Components/CmpTop.razor.cs @@ -61,36 +61,18 @@ namespace MP_TAB_SERV.Components #region Protected Methods - protected async Task DoLogIn(string decodValue) + protected async Task RefreshLogIn(string decodValue) { - // decifro i valori.. - var decrVal = MsgServ.DecryptData(decodValue); - var opData = JsonConvert.DeserializeObject(decrVal); - if (opData != null) + bool done = await MsgServ.DoLogIn(decodValue); + if (done) { - var rigaOpr = await TDService.OperatoreSearch(opData.currOpr.MatrOpr, opData.currOpr.authKey); - if (rigaOpr != null) + if (!string.IsNullOrEmpty(LastOpenedPage) && !string.IsNullOrEmpty(CurrMacc)) { - userTknDTO newUserTkn = new userTknDTO() - { - currOpr = rigaOpr, - expTime = expDT - }; - - var jsonTkn = JsonConvert.SerializeObject(newUserTkn); - string hash = TDService.EncryptData(jsonTkn); - MsgServ.RigaOper = rigaOpr; - await MsgServ.SetLastMatrOprAsync(rigaOpr.MatrOpr); - await MsgServ.SetCurrOperDtoAsync(hash); - await TDService.OperatoreSetRedis(rigaOpr.MatrOpr, hash); - if (LastOpenedPage != "" && CurrMacc != "") - { - NavMan.NavigateTo(LastOpenedPage); - } - else - { - NavMan.NavigateTo("status-map"); - } + NavMan.NavigateTo(LastOpenedPage); + } + else + { + NavMan.NavigateTo("status-map"); } } } @@ -148,9 +130,16 @@ namespace MP_TAB_SERV.Components var decodedUrl = Uri.UnescapeDataString(CurrOprTknLS); // verifico se non avessi dati operatore + //var diffOfTime = DateTime.Now - MsgServ.dtLastAction; + + //if (diffOfTime.Minutes >= 1) + //{ + // NavMan.NavigateTo("logout"); + //} + //else if (MsgServ.RigaOper == null) { - await DoLogIn(decodedUrl); + await RefreshLogIn(decodedUrl); } CurrOprTknRedis = await TDService.OperatoreGetRedis(MatrOpr); diff --git a/MP-TAB-SERV/MP-TAB-SERV.csproj b/MP-TAB-SERV/MP-TAB-SERV.csproj index b22d083e..9fd21e92 100644 --- a/MP-TAB-SERV/MP-TAB-SERV.csproj +++ b/MP-TAB-SERV/MP-TAB-SERV.csproj @@ -3,7 +3,7 @@ net6.0 enable - 6.16.2312.717 + 6.16.2312.1115 enable MP_TAB_SERV diff --git a/MP-TAB-SERV/Pages/RegNewDevice.razor b/MP-TAB-SERV/Pages/RegNewDevice.razor index df3a8cc9..2e07310a 100644 --- a/MP-TAB-SERV/Pages/RegNewDevice.razor +++ b/MP-TAB-SERV/Pages/RegNewDevice.razor @@ -58,7 +58,7 @@
- +
diff --git a/MP-TAB-SERV/Pages/RegNewDevice.razor.cs b/MP-TAB-SERV/Pages/RegNewDevice.razor.cs index 6113f59b..993a095c 100644 --- a/MP-TAB-SERV/Pages/RegNewDevice.razor.cs +++ b/MP-TAB-SERV/Pages/RegNewDevice.razor.cs @@ -36,7 +36,7 @@ namespace MP_TAB_SERV.Pages if (_authKey != value) { _authKey = value; - DoLogIn().ConfigureAwait(false); + FirstLogIn().ConfigureAwait(false); } } } @@ -87,7 +87,7 @@ namespace MP_TAB_SERV.Pages { return SMServ.Traduci($"EN_{lemma}".ToUpper()); } - protected async Task DoLogIn() + protected async Task FirstLogIn() { rigaOpr = await TDService.OperatoreSearch(matrOpr, authKey); if (rigaOpr == null) @@ -154,7 +154,7 @@ namespace MP_TAB_SERV.Pages authKey = Uri_authKey; } } - await DoLogIn(); + await FirstLogIn(); } } } diff --git a/MP-TAB-SERV/Resources/ChangeLog.html b/MP-TAB-SERV/Resources/ChangeLog.html index 8274f438..aa25c504 100644 --- a/MP-TAB-SERV/Resources/ChangeLog.html +++ b/MP-TAB-SERV/Resources/ChangeLog.html @@ -1,6 +1,6 @@ Modulo MAPOSPEC -

Versione: 6.16.2312.717

+

Versione: 6.16.2312.1115


Note di rilascio:
  • diff --git a/MP-TAB-SERV/Resources/VersNum.txt b/MP-TAB-SERV/Resources/VersNum.txt index 27db6864..ea217199 100644 --- a/MP-TAB-SERV/Resources/VersNum.txt +++ b/MP-TAB-SERV/Resources/VersNum.txt @@ -1 +1 @@ -6.16.2312.717 +6.16.2312.1115 diff --git a/MP-TAB-SERV/Resources/manifest.xml b/MP-TAB-SERV/Resources/manifest.xml index 05f5eef3..5c669432 100644 --- a/MP-TAB-SERV/Resources/manifest.xml +++ b/MP-TAB-SERV/Resources/manifest.xml @@ -1,6 +1,6 @@ - 6.16.2312.717 + 6.16.2312.1115 https://nexus.steamware.net/repository/SWS/MP-TAB-SERV/stable/LAST/MP-TAB-SERV.zip https://nexus.steamware.net/repository/SWS/MP-TAB-SERV/stable/LAST/ChangeLog.html false diff --git a/MP-TAB-SERV/Shared/MainLayout.razor.cs b/MP-TAB-SERV/Shared/MainLayout.razor.cs index 1e5a8db3..8e4c9e6d 100644 --- a/MP-TAB-SERV/Shared/MainLayout.razor.cs +++ b/MP-TAB-SERV/Shared/MainLayout.razor.cs @@ -72,7 +72,43 @@ namespace MP_TAB_SERV.Shared protected async Task handleBodyClick() { await Task.Delay(1); - MsgServ.dtLastAction = DateTime.Now; + await checkDtDiff2Logout(); + + } + private int MatrOpr + { + get => MsgServ.MatrOpr; + } + protected int typeScadLogin { get; set; } = 0; + protected int dtScadLogin { get; set; } = 0; + + protected async Task checkDtDiff2Logout() + { + var diffOfTime = DateTime.Now - MsgServ.dtLastAction; + switch (typeScadLogin) + { + case 0: + if (diffOfTime.Minutes >= dtScadLogin) + { + NavMan.NavigateTo("logout"); + } + break; + case 1: + if (diffOfTime.Minutes >= dtScadLogin) + { + var userTkn = await TDataService.OperatoreGetRedis(MatrOpr); + if (!string.IsNullOrEmpty(userTkn)) + { + await MsgServ.DoLogIn(userTkn); + MsgServ.dtLastAction = DateTime.Now; + } + else + { + NavMan.NavigateTo("logout"); + } + } + break; + } } /// @@ -81,6 +117,8 @@ namespace MP_TAB_SERV.Shared /// protected override async Task OnInitializedAsync() { + typeScadLogin = MStor.GetConfInt("TAB_TypeScadLogin"); + dtScadLogin = MStor.GetConfInt("TAB_dtTimerScadLogin"); NavMan.LocationChanged += HandleLocationChanged; // verifica preliminare setup mdati if (!MStor.MenuOk) diff --git a/MP.Data/Services/MessageService.cs b/MP.Data/Services/MessageService.cs index e5caf153..cd063eb6 100644 --- a/MP.Data/Services/MessageService.cs +++ b/MP.Data/Services/MessageService.cs @@ -26,13 +26,15 @@ namespace MP.Data.Services #region Public Constructors - public MessageService(IConfiguration configuration, ILocalStorageService genLocalStorage, ISessionStorageService sessStore) + public MessageService(IConfiguration configuration, ILocalStorageService genLocalStorage, ISessionStorageService sessStore, TabDataService tdService, SharedMemService smServ) { _configuration = configuration; // gestione sessioni in browser localStorage = genLocalStorage; sessionStore = sessStore; + TDService = tdService; + SMService = smServ; // setup compoenti REDIS redisConn = ConnectionMultiplexer.Connect(_configuration.GetConnectionString("Redis")); @@ -436,6 +438,48 @@ namespace MP.Data.Services return answ; } + protected int expDays { get; set; } = 0; + + public async Task DoLogIn(string decodValue) + { + bool answ = false; + expDays = SMService.GetConfInt("cookieDayExpire"); + var expDT = DateTime.Now.AddDays(expDays); + // decifro i valori.. + var decrVal = DecryptData(decodValue); + var opData = JsonConvert.DeserializeObject(decrVal); + if (opData != null) + { + var rigaOpr = await TDService.OperatoreSearch(opData.currOpr.MatrOpr, opData.currOpr.authKey); + if (rigaOpr != null) + { + userTknDTO newUserTkn = new userTknDTO() + { + currOpr = rigaOpr, + expTime = expDT + }; + + var jsonTkn = JsonConvert.SerializeObject(newUserTkn); + string hash = TDService.EncryptData(jsonTkn); + RigaOper = rigaOpr; + await SetLastMatrOprAsync(rigaOpr.MatrOpr); + await SetCurrOperDtoAsync(hash); + await TDService.OperatoreSetRedis(rigaOpr.MatrOpr, hash); + answ = true; + //if (LastOpenedPage != "" && CurrMacc != "") + //{ + // NavMan.NavigateTo(LastOpenedPage); + //} + //else + //{ + // NavMan.NavigateTo("status-map"); + //} + } + } + return answ; + } + + /// /// Salva matrOpr nel localstorage /// @@ -534,6 +578,8 @@ namespace MP.Data.Services #region Protected Properties protected ILocalStorageService localStorage { get; set; } = null!; + protected TabDataService TDService { get; set; } = null!; + protected SharedMemService SMService { get; set; } = null!; protected ISessionStorageService sessionStore { get; set; } = null!; diff --git a/MP.Data/Services/TabDataService.cs b/MP.Data/Services/TabDataService.cs index f1aecc1d..d0b20c2f 100644 --- a/MP.Data/Services/TabDataService.cs +++ b/MP.Data/Services/TabDataService.cs @@ -3001,7 +3001,7 @@ namespace MP.Data.Services #region Protected Fields - protected double expDays = 0.0035; + protected int expMinutes = 1; /// /// Oggetto per connessione a REDIS @@ -3022,7 +3022,7 @@ namespace MP.Data.Services /// protected TimeSpan ConfigCache { - get => TimeSpan.FromDays(expDays); + get => TimeSpan.FromMinutes(expMinutes); } #endregion Protected Properties @@ -3031,7 +3031,7 @@ namespace MP.Data.Services protected void setExpDays() { - ConfigGetVal("cookieDayExpire", ref expDays); + ConfigGetVal("cookieDayExpire", ref expMinutes); } #endregion Protected Methods