Consolidate User Context

This commit is contained in:
2021-08-04 21:32:35 +01:00
parent b8cfd87860
commit afd38cea03
126 changed files with 2240 additions and 634 deletions
+14 -13
View File
@@ -2,6 +2,7 @@
using Sarand.BusinessMgr.Net.Core.Web.Consoles;
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Consoles;
using Sarand.BusinessMgr.Net.Standard.Base.Core;
using Sarand.Net.Standard.Base.App;
using Sarand.Net.Standard.Base.CodeTypes;
using Sarand.Net.Standard.Base.Core;
@@ -97,45 +98,45 @@ namespace Sarand.BusinessMgr.Net.Core.Web.App
// Create consoles.
public override SbmConfigConsole CreateConfigConsole(SbmSessionContext sessionContext)
{
return null;
return SbmConfigConsole.CreateConsole(sessionContext);
}
public override SaDiaryConsole CreateDiaryConsole(SbmUserContext userContext)
public override SaDiaryConsole CreateDiaryConsole(ISbmUserContext userContext)
{
return null;
}
public override SaSecurityConsole CreateSecurityConsole(SbmUserContext userContext)
public override SaSecurityConsole CreateSecurityConsole(ISbmUserContext userContext)
{
return new SbmSecurityConsole_Web(userContext, GetBusMgrDatabase(userContext.SessionContext));
return new SbmSecurityConsole_Web(userContext);
}
public override SaCodeTypeConsole CreateCodeTypeConsole(SbmUserContext userContext)
public override SaCodeTypeConsole CreateCodeTypeConsole(ISbmUserContext userContext)
{
return null;
}
public override SaReferenceDataConsole CreateReferenceDataConsole(SbmUserContext userContext)
public override SaReferenceDataConsole CreateReferenceDataConsole(ISbmUserContext userContext)
{
return null;
}
public override SaItemDataConsole CreateItemDataConsole(SbmUserContext userContext)
public override SaItemDataConsole CreateItemDataConsole(ISbmUserContext userContext)
{
return null;
}
public override SaItemDocConsole CreateItemDocConsole(SbmUserContext userContext)
public override SaItemDocConsole CreateItemDocConsole(ISbmUserContext userContext)
{
return null;
}
public override SaItemOptionConsole CreateItemOptionConsole(SbmUserContext userContext)
public override SaItemOptionConsole CreateItemOptionConsole(ISbmUserContext userContext)
{
return null;
}
public override SaInterfaceConsole CreateInterfaceConsole(SbmUserContext userContext)
public override SaInterfaceConsole CreateInterfaceConsole(ISbmUserContext userContext)
{
return null;
}
public override SaUpdateLogConsole CreateUpdateLogConsole(SbmUserContext userContext)
public override SaUpdateLogConsole CreateUpdateLogConsole(ISbmUserContext userContext)
{
return new SbmUpdateLogConsole_Web(userContext, GetBusMgrDatabase(userContext.SessionContext));
return new SbmUpdateLogConsole_Web(userContext);
}
public override SbmEmailConsole CreateEmailConsole(SbmUserContext userContext)
public override SbmEmailConsole CreateEmailConsole(ISbmUserContext userContext)
{
return new SbmEmailConsole_Web(EmailConfig);
}
+45 -4
View File
@@ -1,5 +1,7 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.BusinessMgr.Net.Standard.Base.Core;
using Sarand.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Security;
using System;
using System.Collections.Generic;
@@ -8,18 +10,20 @@ using System.Text;
namespace Sarand.BusinessMgr.Net.Core.Web.App
{
//=======================================================================
public abstract class SbmSessionData_Web : SbmSessionData
public abstract class SbmSessionData_Web : SbmSessionData, ISbmUserContext
{
//-------------------------------------------------------------------
// Private construction - for JSON deserialisation.
// Protected construction - for JSON deserialisation.
protected SbmSessionData_Web(long sessionIdx, int itemIdx, SbmSessionContext sessionContext) :
base(sessionIdx, itemIdx, sessionContext)
{
securityProfile = new SbmSecurityProfile(this, false);
}
// Protected construction.
protected SbmSessionData_Web(SbmSessionContext sessionContext, SaSecurityItem securityItemUser, SbmAffiliate affiliateUser) :
base(sessionContext, securityItemUser, affiliateUser)
protected SbmSessionData_Web(SbmSessionContext sessionContext, SaSecurityItem securityItemUser, SbmAffiliate affiliateUser, List<SysIdString> supervisedOrganisations, SbmAssociation associationOrganisation, SbmAffiliate affiliateOrganisation) :
base(sessionContext, securityItemUser, affiliateUser, supervisedOrganisations, associationOrganisation, affiliateOrganisation)
{
securityProfile = new SbmSecurityProfile(this, false);
}
//-------------------------------------------------------------------
@@ -33,6 +37,30 @@ namespace Sarand.BusinessMgr.Net.Core.Web.App
}
}
//-------------------------------------------------------------------
// Security Profile.
private readonly SbmSecurityProfile securityProfile;
public ISbmSecurityProfile SecurityProfile { get { return securityProfile; } }
//-------------------------------------------------------------------
// ToDo: Organisation configuration.
public String GetOrganisationOption(Sbm.OrganisationOption option, String context) { return null; }
public String GetOrganisationOption(String optionName, String context) { return null; }
public String GetOwnerOption_Value(Sbm.OrgOption_Value eCol) { return null; }
public String GetOwnerOption_Folder(Sbm.OrgOption_Folder eCol) { return null; }
public bool GetOwnerOption_AllowOption(Sbm.OrgOption_AllowOption eCol) { return false; }
public String GetOwnerOption_Caption(Sbm.OrgOption_Caption eCol, String defautValue) { return defautValue; }
public bool GetOwnerOption_ShowField(SbmDbDfn.ColumnIdx eCol) { return false; }
public bool GetOwnerOption_ShowColumn(Sbm.OrgOption_ShowColumn eCol) { return false; }
public String GetOwnerOption_FieldLabel(SbmDbDfn.ColumnIdx eCol, String defautValue) { return defautValue; }
public int GetOwnerOption_Minutes(Sbm.OrgOption_Minutes eLimit, int defautValue) { return defautValue; }
public int GetOwnerOption_UpdateLimit(Sbm.OrgOption_PeriodDays eLimit, int defautValue) { return defautValue; }
public int GetOwnerOption_UpdateLimit(Sbm.OrgOption_PeriodWeeks eLimit, int defautValue) { return defautValue; }
public int GetOwnerOption_NumericDecimals(Sbm.OrgOption_NumericDecimals eNumDecimals, int defautValue = 2) { return defautValue; }
public Sbm.CommodityType GetOwnerOption_CommodityType(Sbm.OrgOption_CommodityType commodityTypeContext) { return Sbm.CommodityType.Unknown; }
public SysId GetOwnerOption_StockLocation(Sbm.OrgOption_StockLocation eLoc) { return null; }
//-------------------------------------------------------------------
// Contacts.
public class ContactsData
@@ -46,6 +74,19 @@ namespace Sarand.BusinessMgr.Net.Core.Web.App
}
public ContactsData Contacts { get; } = new ContactsData();
//-------------------------------------------------------------------
// Commodities.
public class CommoditiesData
{
public class FilterData
{
public uint PageNo { get; set; } = 1;
public ushort PageLength { get; set; } = 16;
}
public FilterData Filter { get; } = new FilterData();
}
public CommoditiesData Commodities { get; } = new CommoditiesData();
//-------------------------------------------------------------------
}
//=======================================================================
@@ -1,4 +1,5 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Core;
using Sarand.BusinessMgr.Net.Standard.Dbas.Consoles;
using Sarand.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Dbas;
@@ -16,7 +17,7 @@ namespace Sarand.BusinessMgr.Net.Core.Web.Consoles
//-------------------------------------------------------------------
// Construction.
public SbmSecurityConsole_Web(SbmUserContext userContext, ISacsDatabase database) : base(userContext, database)
public SbmSecurityConsole_Web(ISbmUserContext userContext) : base(userContext)
{
}
protected override void Dispose(bool disposing)
@@ -1,4 +1,5 @@
using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Core;
using Sarand.BusinessMgr.Net.Standard.Dbas.Consoles;
using Sarand.Net.Standard.Base.Dbas;
using System;
@@ -15,7 +16,7 @@ namespace Sarand.BusinessMgr.Net.Core.Web.Consoles
//-------------------------------------------------------------------
// Construction.
public SbmUpdateLogConsole_Web(SbmUserContext userContext, ISacsDatabase database) : base(userContext, database)
public SbmUpdateLogConsole_Web(ISbmUserContext userContext) : base(userContext)
{
}
protected override void Dispose(bool disposing)
@@ -334,7 +334,7 @@ namespace Sarand.BusinessMgr.Net.Core.Web.Controllers
};
}
private readonly SessionStorage sessionStorage = new SessionStorage();
protected JsonSerializerSettings SbmSessionDataJsonSerializerSettings { get { return SessionStorage.JsonDeserialisationSettings; } }
public static JsonSerializerSettings SbmSessionDataJsonSerializerSettings { get { return SessionStorage.JsonDeserialisationSettings; } }
//-------------------------------------------------------------------
public SbmSessionData_Web SessionData
@@ -441,6 +441,10 @@ namespace Sarand.BusinessMgr.Net.Core.Web.Controllers
public Boolean Awaiting { get { return StatusCode.EqualsCI(SacsSystem.GetStatusCode(SaStatus.Awaiting)); } }
public Boolean Active { get { return StatusCode.EqualsCI(SacsSystem.GetStatusCode(SaStatus.Active)); } }
public Boolean Deleted { get { return StatusCode.EqualsCI(SacsSystem.GetStatusCode(SaStatus.Deleted)); } }
public String CreatedOn { get; set; }
public String CreatedOnFmt { get; set; }
public String UpdatedOn { get; set; }
public String UpdatedOnFmt { get; set; }
}
//---------------------------------------------------------------
+1 -1
View File
@@ -94,7 +94,7 @@ namespace Sarand.BusinessMgr.Net.Core.Web.Models
// Security.
public bool ValidUserSession { get { return SessionData?.ValidUserSession ?? false; } }
public bool AwaitingLogin { get { return !ValidUserSession; } }
public bool KeepLoggedIn { get { return !AwaitingLogin && SessionData.User.KeepLoggedIn; } }
public bool KeepLoggedIn { get { return !AwaitingLogin && SessionData.KeepLoggedIn; } }
/// <summary>Maximum length allowed for password entry: sign-up, change password etc.</summary>
public int PasswordMaxLength { get; } = 32;