v1.2.4.2
This commit is contained in:
@@ -28,7 +28,8 @@ namespace Saxonite.Net.Core.Web.Admin.Consoles
|
||||
public override SaxDataCacheConsole GetDataCacheConsole(SaxSessionContext sessionContext)
|
||||
{
|
||||
String fn = GetType().Name + ".GetDataCacheConsole";
|
||||
throw new NotSupportedException(fn + " Data Cache Console not supported in Admin app.");
|
||||
//throw new NotSupportedException(fn + " Data Cache Console not supported in Admin app.");
|
||||
return null;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
@@ -70,14 +70,21 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
||||
// 'Keep logged in' can be switched off by the application configuration.
|
||||
keepLoggedIn = App.AppConfig.Security.SignIn.KeepLoggedIn.Allowed && keepLoggedIn;
|
||||
|
||||
// Log user in.
|
||||
userAccount.KeepLoggedIn_Admin = keepLoggedIn;
|
||||
userAccount.LastLoginAt = DateTime.Now;
|
||||
userAccount.InvalidLoginCount = 0;
|
||||
userAccount.LastInvalidLoginAt = DateTime.MinValue;
|
||||
if (!AccountMgr.UpdateUserAccount(userAccount, DbUpdateInfo))
|
||||
// Log user in - Admin details stored against System Admin role.
|
||||
SaxUserRole userRole = userRoles.Find(item => item.UserRole == Sax.UserRole.SystemAdmin);
|
||||
if (userRole == null)
|
||||
{
|
||||
SaLogger.Warn(fn + " Failed to update account for " + userAccount.EmailAddress + ": " + AccountMgr.ErrorStateMessage);
|
||||
SaLogger.Warn(fn + " System Admin role not found for " + userAccount.EmailAddress);
|
||||
errorMessage = Localiser["security.msg.signin.invalid"];
|
||||
return false;
|
||||
}
|
||||
userRole.KeepLoggedIn = keepLoggedIn;
|
||||
userRole.LastLoginAt = DateTime.Now;
|
||||
userRole.InvalidLoginCount = 0;
|
||||
userRole.LastInvalidLoginAt = DateTime.MinValue;
|
||||
if (!AccountMgr.UpdateUserRole(userRole, DbUpdateInfo))
|
||||
{
|
||||
SaLogger.Warn(fn + " Failed to update Admin user role for " + userAccount.EmailAddress + ": " + AccountMgr.ErrorStateMessage);
|
||||
errorMessage = Localiser["security.msg.signin.invalid"];
|
||||
return false;
|
||||
}
|
||||
@@ -87,7 +94,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
||||
OpenUserSession(SessionContext, userAccount, userRoles);
|
||||
|
||||
// Send the 'Keep Logged In' cookie if requested.
|
||||
if (userAccount.KeepLoggedIn_Admin)
|
||||
if (userRole.KeepLoggedIn)
|
||||
SetKeepLoggedInCookie();
|
||||
|
||||
return true;
|
||||
|
||||
@@ -30,7 +30,8 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
||||
public String RegionNameProvince { get; set; }
|
||||
public int UserRoleCount { get; set; }
|
||||
public bool? SystemAdmin { get; set; } = null;
|
||||
public String LastLoginAt { get; set; }
|
||||
public String LastOnlineLoginAt { get; set; }
|
||||
public String LastAdminLoginAt { get; set; }
|
||||
}
|
||||
private class UserData_Full : UserData_List
|
||||
{
|
||||
@@ -50,9 +51,13 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
||||
data.RegionNameProvince = model.GetRegionName(user.RegionIdProvince);
|
||||
data.UserRoleCount = userRoles?.GetUserRolesByStatus(SaStatus.Active).Count ?? 0;
|
||||
data.SystemAdmin = (userRoles != null && userRoles.Exists(item => item.UserRole == Sax.UserRole.SystemAdmin) ? true : (bool?)null);
|
||||
data.LastLoginAt = model.FormatDateTimeForDisplay(user.LastLoginAt);
|
||||
data.LastOnlineLoginAt = model.FormatDateTimeForDisplay(user.LastLoginAt);
|
||||
data.StatusCode = user.StatusCode;
|
||||
data.StatusDesc = user.StatusDesc;
|
||||
// System Admin role.
|
||||
SaxUserRole userRole_SystemAdmin = userRoles.Find(item => item.UserRole == Sax.UserRole.SystemAdmin);
|
||||
if (userRole_SystemAdmin != null)
|
||||
data.LastAdminLoginAt = model.FormatDateTimeForDisplay(userRole_SystemAdmin.LastLoginAt);
|
||||
}
|
||||
private void PopulateUserResponseData(SaxModel_Admin model, UserData_Full data, SaxUserAccount user, List<SaxUserRole> userRoles)
|
||||
{
|
||||
@@ -138,13 +143,14 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
||||
ColumnDfn colUserRoleCount = AccountMgr.GetUserAccountColumnDfn(SaxUserAccount.Column.UserRoleCount);
|
||||
ColumnDfn colSystemAdminUser = AccountMgr.GetUserAccountColumnDfn(SaxUserAccount.Column.SystemAdminUser);
|
||||
ColumnDfn colLastLogin = AccountMgr.GetUserAccountColumnDfn(SaxUserAccount.Column.LastLoginAt);
|
||||
ColumnDfn colAdminLastLogin = AccountMgr.GetUserAccountColumnDfn(SaxUserAccount.Column.LastAdminLoginAt);
|
||||
ColumnDfn colStatus = AccountMgr.GetUserAccountColumnDfn(SaxUserAccount.Column.Status);
|
||||
List<ColumnDfn> columns = new List<ColumnDfn>()
|
||||
{
|
||||
colId, colEmail, colTitle, colFirstName, colLastName,
|
||||
colCountryName, colProvinceName,
|
||||
colUserRoleCount, colSystemAdminUser,
|
||||
colLastLogin, colStatus
|
||||
colLastLogin, colAdminLastLogin, colStatus
|
||||
};
|
||||
|
||||
// Query items.
|
||||
@@ -164,7 +170,8 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
||||
RegionNameProvince = values.GetString(colProvinceName.DataName),
|
||||
UserRoleCount = StringUtil.ToInt(values.GetString(colUserRoleCount.DataName)),
|
||||
SystemAdmin = StringUtil.ToBool(values.GetString(colSystemAdminUser.DataName)),
|
||||
LastLoginAt = model.FormatDateTimeForDisplay(values.GetDateTime(colLastLogin.DataName)),
|
||||
LastOnlineLoginAt = model.FormatDateTimeForDisplay(values.GetDateTime(colLastLogin.DataName)),
|
||||
LastAdminLoginAt = model.FormatDateTimeForDisplay(values.GetDateTime(colAdminLastLogin.DataName)),
|
||||
StatusCode = values.GetString(colStatus.DataName),
|
||||
StatusDesc = SacsSystem.GetStatusDescForCode(values.GetString(colStatus.DataName))
|
||||
};
|
||||
|
||||
@@ -134,12 +134,13 @@
|
||||
<div class="sax-content">
|
||||
<div class="row">
|
||||
<div class="col-sm-4"><span class="UserDisplayName"></span></div>
|
||||
<div class="col-sm-4"><div class="UserLastLogin">Last login: <span class="UserLastLoginAt"></span></div></div>
|
||||
<div class="col-sm-4 center"><div class="sax-note UserLastOnlineLogin">Online: <span class="UserLastOnlineLoginAt"></span></div></div>
|
||||
<div class="col-sm-4 right"><span class="UserRegionNameCountry"></span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-4"><div class="UserRoles">Roles: <span class="UserRoleCount"></span></div></div>
|
||||
<div class="col-sm-4"><div class=""></div></div>
|
||||
<div class="col-sm-4 right"><div class="StatusDesc"></div></div>
|
||||
<div class="col-sm-4"><div class="sax-note UserRoles">Roles: <span class="UserRoleCount"></span></div></div>
|
||||
<div class="col-sm-4 center"><div class="sax-note UserLastAdminLogin">Admin: <span class="UserLastAdminLoginAt"></span></div></div>
|
||||
<div class="col-sm-4 right"><div class="sax-note StatusDesc"></div></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -280,8 +280,8 @@
|
||||
|
||||
.sax-panel-item > .sax-content
|
||||
{
|
||||
margin: 4px 8px;
|
||||
padding: 4px 4px;
|
||||
margin: 4px 8px 2px 8px;
|
||||
padding: 2px 2px;
|
||||
}
|
||||
|
||||
.sax-panel-item .sax-note
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
}
|
||||
op.showSelectFilterSport = function ()
|
||||
{
|
||||
sax.data.selectItem.fn.selectItem({ caption: sax.dlg.title.selectSport, items: op.data.sports, fnCallback: op.onFilterSportSelected });
|
||||
sax.data.selectItem.fn.selectItem({ caption: sax.dlg.title.selectSport, itemId: $('.FilterOrganisationSportId', $frm.filter).val(), items: op.data.sports, fnCallback: op.onFilterSportSelected });
|
||||
}
|
||||
op.onFilterSportSelected = function (spt)
|
||||
{
|
||||
@@ -144,7 +144,7 @@
|
||||
}
|
||||
op.showSelectOrgSport = function ()
|
||||
{
|
||||
sax.data.selectItem.fn.selectItem({ caption: sax.dlg.title.selectSport, items: op.data.sports, fnCallback: op.onOrgSportSelected });
|
||||
sax.data.selectItem.fn.selectItem({ caption: sax.dlg.title.selectSport, itemId: $('.OrganisationSportId', $frm.org).val(), items: op.data.sports, fnCallback: op.onOrgSportSelected });
|
||||
}
|
||||
op.onOrgSportSelected = function (spt)
|
||||
{
|
||||
@@ -167,7 +167,7 @@
|
||||
}
|
||||
op.showSelectFilterRegion = function ()
|
||||
{
|
||||
sax.data.selectItem.fn.selectItem({ caption: sax.dlg.title.selectFilterRegion, items: op.data.regions, fnCallback: op.onFilterRegionSelected });
|
||||
sax.data.selectItem.fn.selectItem({ caption: sax.dlg.title.selectFilterRegion, itemId: $('.FilterOrganisationRegionId', $frm.filter).val(), items: op.data.regions, fnCallback: op.onFilterRegionSelected });
|
||||
}
|
||||
op.onFilterRegionSelected = function (rgn)
|
||||
{
|
||||
@@ -203,7 +203,7 @@
|
||||
}
|
||||
op.showSelectOrgRegion = function ()
|
||||
{
|
||||
sax.data.selectItem.fn.selectItem({ caption: sax.dlg.title.selectRegion, items: op.data.regions, fnCallback: op.onOrgRegionSelected });
|
||||
sax.data.selectItem.fn.selectItem({ caption: sax.dlg.title.selectRegion, itemId: $('.OrganisationRegionIdCountry', $frm.org).val(), items: op.data.regions, fnCallback: op.onOrgRegionSelected });
|
||||
}
|
||||
op.onOrgRegionSelected = function (rgn)
|
||||
{
|
||||
|
||||
@@ -65,8 +65,10 @@
|
||||
$('.UserRegionNameProvince', $item).text(item.regionNameProvince);
|
||||
$('.UserRoleCount', $item).text(item.userRoleCount);
|
||||
$('.UserRoles', $item).toggle(!!item.userRoleCount);
|
||||
$('.UserLastLoginAt', $item).text(item.lastLoginAt);
|
||||
$('.UserLastLogin', $item).toggle(!!item.lastLoginAt);
|
||||
$('.UserLastOnlineLoginAt', $item).text(item.lastOnlineLoginAt);
|
||||
$('.UserLastOnlineLogin', $item).toggle(!!item.lastOnlineLoginAt);
|
||||
$('.UserLastAdminLoginAt', $item).text(item.lastAdminLoginAt);
|
||||
$('.UserLastAdminLogin', $item).toggle(!!item.lastAdminLoginAt);
|
||||
$('.StatusDesc', $item).text(item.statusDesc).addClass('sax-status-' + item.statusCode.toLowerCase());
|
||||
$('.sax-caption .sax-action').toggleClass('sax-action', !item.deleted);
|
||||
let $mnu = $('ul.sax-dropdown-menu', $item);
|
||||
@@ -129,7 +131,7 @@
|
||||
}
|
||||
sax.showSelectFilterSport = function ()
|
||||
{
|
||||
sax.data.selectItem.fn.selectItem({ caption: sax.dlg.title.selectSport, items: sax.data.sports, fnCallback: sax.onFilterSportSelected });
|
||||
sax.data.selectItem.fn.selectItem({ caption: sax.dlg.title.selectSport, itemId: $('.FilterUserSportId', $frm.filter).val(), items: sax.data.sports, fnCallback: sax.onFilterSportSelected });
|
||||
}
|
||||
sax.onFilterSportSelected = function (spt)
|
||||
{
|
||||
@@ -171,7 +173,7 @@
|
||||
}
|
||||
sax.showSelectFilterRegion = function ()
|
||||
{
|
||||
sax.data.selectItem.fn.selectItem({ caption: sax.dlg.title.selectFilterRegion, items: sax.data.regions, fnCallback: sax.onFilterRegionSelected });
|
||||
sax.data.selectItem.fn.selectItem({ caption: sax.dlg.title.selectFilterRegion, itemId: $('.FilterUserRegionId', $frm.filter).val(), items: sax.data.regions, fnCallback: sax.onFilterRegionSelected });
|
||||
}
|
||||
sax.onFilterRegionSelected = function (rgn)
|
||||
{
|
||||
@@ -193,7 +195,7 @@
|
||||
}
|
||||
sax.showSelectRegionCountry = function ()
|
||||
{
|
||||
sax.data.selectItem.fn.selectItem({ caption: sax.dlg.title.selectRegionCountry, items: sax.data.regions, fnCallback: sax.onRegionCountrySelected });
|
||||
sax.data.selectItem.fn.selectItem({ caption: sax.dlg.title.selectRegionCountry, itemId: $('.UserRegionIdCountry', $frm.user).val(), items: sax.data.regions, fnCallback: sax.onRegionCountrySelected });
|
||||
}
|
||||
sax.onRegionCountrySelected = function (rgn)
|
||||
{
|
||||
@@ -215,7 +217,7 @@
|
||||
}
|
||||
sax.showSelectRegionProvince = function ()
|
||||
{
|
||||
sax.data.selectItem.fn.selectItem({ caption: sax.dlg.title.selectRegionProvince, items: sax.data.regions, fnCallback: sax.onRegionProvinceSelected });
|
||||
sax.data.selectItem.fn.selectItem({ caption: sax.dlg.title.selectRegionProvince, itemId: $('.UserRegionIdProvince', $frm.user).val(), items: sax.data.regions, fnCallback: sax.onRegionProvinceSelected });
|
||||
}
|
||||
sax.onRegionProvinceSelected = function (rgn)
|
||||
{
|
||||
|
||||
@@ -74,7 +74,7 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
keepLoggedIn = App.AppConfig.Security.SignIn.KeepLoggedIn.Allowed && keepLoggedIn;
|
||||
|
||||
// Log user in.
|
||||
userAccount.KeepLoggedIn_Online = keepLoggedIn;
|
||||
userAccount.KeepLoggedIn = keepLoggedIn;
|
||||
userAccount.LastLoginAt = DateTime.Now;
|
||||
userAccount.InvalidLoginCount = 0;
|
||||
userAccount.LastInvalidLoginAt = DateTime.MinValue;
|
||||
@@ -91,7 +91,7 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
RefreshSessionProfileSports();
|
||||
|
||||
// Send the 'Keep Logged In' cookie if requested.
|
||||
if (userAccount.KeepLoggedIn_Online)
|
||||
if (userAccount.KeepLoggedIn)
|
||||
SetKeepLoggedInCookie();
|
||||
|
||||
return true;
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
<div class="sax-content">
|
||||
|
||||
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmChangePassword", @class = "sax-form" }))
|
||||
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmChangePassword", @class = "sax-form", @onsubmit = "return false;" }))
|
||||
{
|
||||
|
||||
@if (!Model.RequestPasswordMode)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
<div class="sax-content">
|
||||
|
||||
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmRequestPassword", @class = "sax-form" }))
|
||||
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmRequestPassword", @class = "sax-form", @onsubmit = "return false;" }))
|
||||
{
|
||||
|
||||
<div class="spacer4"></div>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
<div class="sax-content">
|
||||
|
||||
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmSignIn", @class = "sax-form" }))
|
||||
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmSignIn", @class = "sax-form", @onsubmit = "return false;" }))
|
||||
{
|
||||
|
||||
<div class="spacer4"></div>
|
||||
@@ -46,7 +46,6 @@
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
@Html.CheckBoxFor(model => model.KeepMeSignedIn, new { @id = "chkKeepMeSignedIn" })
|
||||
|
||||
<span class="sax-label pointer" onclick="$('#chkKeepMeSignedIn').click()">@Localiser["label.keep.signed.in"]</span>
|
||||
</div>
|
||||
<div class="col-6 right">
|
||||
|
||||
@@ -71,16 +71,19 @@
|
||||
//--------------------------------------------------------------
|
||||
$(function ()
|
||||
{
|
||||
sax.$frm.signIn = $('#frmSignIn');
|
||||
$(':input:enabled:visible:first').focus();
|
||||
$('#ifEmailAddress,#ifPasswordCurrent,#ifPassword,#ifPasswordConfirm').on('input', function () { sax.clearControlError(this); });
|
||||
$('#frmChangePassword #ifPassword').on('keyup', sax.doScorePassword);
|
||||
sax.$prgPasswordStrength = $('#frmChangePassword #prgPasswordStrength').progressbar({ 'max': 5 });
|
||||
$('#ifEmailAddress,#ifPassword', $('#frmSignIn')).on('keypress', function (e) { if (e.which == 13) sax.doSignin(); });
|
||||
$('#frmSignIn #pbSignIn').on('click', function () { sax.doSignin(); });
|
||||
$('#ifPasswordCurrent,#ifPassword,#ifPasswordConfirm', $('#frmChangePassword')).on('keypress', function (e) { if (e.which == 13) sax.doChangePassword(); });
|
||||
$('#frmChangePassword #pbChangePassword').on('click', function () { sax.doChangePassword(); });
|
||||
$('#ifEmailAddress', $('#frmRequestPassword')).on('keypress', function (e) { if (e.which == 13) sax.doRequestPassword(); });
|
||||
$('#frmRequestPassword #pbRequestPassword').on('click', function () { sax.doRequestPassword(); });
|
||||
sax.$frm.signIn.on('keypress', '#ifEmailAddress,#ifPassword,#chkKeepMeSignedIn', function (e) { if (e.which == 13 && $('#ifEmailAddress', sax.$frm.signIn).val() && $('#ifPassword', sax.$frm.signIn).val()) sax.doSignin(); });
|
||||
sax.$frm.signIn.on('click', '#pbSignIn', function () { sax.doSignin(); }).on('keypress', '#pbSignIn', function (e) { if (e.which == 13) sax.doSignin(); });
|
||||
sax.$frm.changePassword = $('#frmChangePassword');
|
||||
sax.$frm.changePassword.on('keypress', '#ifPasswordCurrent,#ifPassword,#ifPasswordConfirm', function (e) { if (e.which == 13) sax.doChangePassword(); });
|
||||
sax.$frm.changePassword.on('keyup', '#ifPassword', sax.doScorePassword);
|
||||
sax.$prgPasswordStrength = $('#prgPasswordStrength', sax.$frm.changePassword).progressbar({ 'max': 5 });
|
||||
sax.$frm.changePassword.on('click', '#pbChangePassword', function () { sax.doChangePassword(); }).on('keypress', '#pbChangePassword', function (e) { if (e.which == 13) sax.doChangePassword(); });
|
||||
sax.$frm.reqPword = $('#frmRequestPassword');
|
||||
sax.$frm.reqPword.on('keypress', '#ifEmailAddress', function (e) { if (e.which == 13) sax.doRequestPassword(); });
|
||||
sax.$frm.reqPword.on('click', '#pbRequestPassword', function () { sax.doRequestPassword(); });
|
||||
});
|
||||
|
||||
}(window, window.document));
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
//-------------------------------------------------------------------
|
||||
public static class Version
|
||||
{
|
||||
private static String version { get; } = "1.2.4.1";
|
||||
private static String version { get; } = "1.2.4.2";
|
||||
// Retrieve version.
|
||||
public static String GetFullVersion () { return version; }
|
||||
public static String GetAppVersion ()
|
||||
|
||||
@@ -6,7 +6,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 4-Mar-2022 15:28:05
|
||||
// Code generated by Sarand Database Utilities Mon 7-Mar-2022 10:06:56
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Base.App
|
||||
{
|
||||
@@ -306,6 +306,9 @@ namespace Saxonite.Base.App
|
||||
UserRole_Id,
|
||||
UserRole_UserAccountId,
|
||||
UserRole_UserRoleCode,
|
||||
UserRole_LastLoginAt,
|
||||
UserRole_LastInvalidLoginAt,
|
||||
UserRole_InvalidLoginCount,
|
||||
UserRole_Notes,
|
||||
UserRole_Flags,
|
||||
UserRole_Status,
|
||||
@@ -365,7 +368,7 @@ namespace Saxonite.Base.App
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private static readonly int tableCount = 18;
|
||||
private static readonly int columnCount = 318;
|
||||
private static readonly int columnCount = 321;
|
||||
private static ulong maxTextLen = 0;
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
@@ -819,6 +822,9 @@ namespace Saxonite.Base.App
|
||||
new ColumnDfn(15,"Id",5,-5,true,19),
|
||||
new ColumnDfn(15,"UserAccountId",4,4,false,10),
|
||||
new ColumnDfn(15,"UserRoleCode",0,12,false,16),
|
||||
new ColumnDfn(15,"LastLoginAt",9,93,false,16),
|
||||
new ColumnDfn(15,"LastInvalidLoginAt",9,93,false,16),
|
||||
new ColumnDfn(15,"InvalidLoginCount",3,5,false,5),
|
||||
new ColumnDfn(15,"Notes",0,-9,false,2000),
|
||||
new ColumnDfn(15,"Flags",3,5,false,5),
|
||||
new ColumnDfn(15,"Status",0,12,false,3),
|
||||
|
||||
@@ -75,9 +75,15 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
UserAccountId = userAccount.Id;
|
||||
RefreshUserData(userAccount);
|
||||
if (sessionContext.Application == Sax.Application.Admin)
|
||||
KeepLoggedIn = userAccount.KeepLoggedIn_Admin;
|
||||
{
|
||||
// Admin 'Keep logged in' recorded against System Admin user role.
|
||||
SaxUserRole userRole = userRoles.Find(item => item.UserRole == Sax.UserRole.SystemAdmin);
|
||||
if (userRole != null)
|
||||
KeepLoggedIn = userRole.KeepLoggedIn;
|
||||
}
|
||||
else if (sessionContext.Application == Sax.Application.Online)
|
||||
KeepLoggedIn = userAccount.KeepLoggedIn_Online;
|
||||
// Online 'Keep logged in' recorded against System Admin user role.
|
||||
KeepLoggedIn = userAccount.KeepLoggedIn;
|
||||
else Debugger.Break();
|
||||
|
||||
if (userRoles != null)
|
||||
|
||||
@@ -48,6 +48,11 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
// Associated data.
|
||||
UserRoleCount,
|
||||
SystemAdminUser,
|
||||
LastAdminLoginOn,
|
||||
LastAdminLoginAt,
|
||||
LastInvalidAdminLoginOn,
|
||||
LastInvalidAdminLoginAt,
|
||||
InvalidAdminLoginCount,
|
||||
// Common.
|
||||
Notes,
|
||||
Flags,
|
||||
@@ -453,17 +458,11 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Flags - positions 1-16 available.
|
||||
public Byte Flag_KeepLoggedIn_Admin { get; } = 0x1;
|
||||
public Byte Flag_KeepLoggedIn_Online { get; } = 0x2;
|
||||
public bool KeepLoggedIn_Admin
|
||||
public Byte Flag_KeepLoggedIn { get; } = 0x1;
|
||||
public bool KeepLoggedIn
|
||||
{
|
||||
get { return GetFlag(Flag_KeepLoggedIn_Admin); }
|
||||
set { SetFlag(Flag_KeepLoggedIn_Admin, value); }
|
||||
}
|
||||
public bool KeepLoggedIn_Online
|
||||
{
|
||||
get { return GetFlag(Flag_KeepLoggedIn_Online); }
|
||||
set { SetFlag(Flag_KeepLoggedIn_Online, value); }
|
||||
get { return GetFlag(Flag_KeepLoggedIn); }
|
||||
set { SetFlag(Flag_KeepLoggedIn, value); }
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
@@ -21,6 +21,12 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
UserAccountId,
|
||||
UserRole,
|
||||
UserRole_Desc,
|
||||
// Login - Admin for System user.
|
||||
LastLoginOn,
|
||||
LastLoginAt,
|
||||
LastInvalidLoginOn,
|
||||
LastInvalidLoginAt,
|
||||
InvalidLoginCount,
|
||||
// User.
|
||||
User_EmailAddress,
|
||||
User_DisplayName,
|
||||
@@ -44,6 +50,10 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
{
|
||||
public SysId UserAccountId { get; set; }
|
||||
public Sax.UserRole UserRole { get; set; }
|
||||
// Login.
|
||||
public DateTime LastLoginAt { get; set; } = DateTime.MinValue;
|
||||
public DateTime LastInvalidLoginAt { get; set; } = DateTime.MinValue;
|
||||
public short InvalidLoginCount { get; set; }
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
@@ -68,11 +78,31 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
get { return data.UserRole; }
|
||||
set { CheckChanged((int)data.UserRole, (int)value); data.UserRole = value; }
|
||||
}
|
||||
// Login.
|
||||
public DateTime LastLoginAt
|
||||
{
|
||||
get { return data.LastLoginAt; }
|
||||
set { CheckChanged(data.LastLoginAt, value); data.LastLoginAt = value; }
|
||||
}
|
||||
public DateTime LastInvalidLoginAt
|
||||
{
|
||||
get { return data.LastInvalidLoginAt; }
|
||||
set { CheckChanged(data.LastInvalidLoginAt, value); data.LastInvalidLoginAt = value; }
|
||||
}
|
||||
public short InvalidLoginCount
|
||||
{
|
||||
get { return data.InvalidLoginCount; }
|
||||
set { CheckChanged(data.InvalidLoginCount, value); data.InvalidLoginCount = value; }
|
||||
}
|
||||
// Population.
|
||||
internal void PopulateFrom(Data data)
|
||||
{
|
||||
UserAccountId = data.UserAccountId;
|
||||
UserRole = data.UserRole;
|
||||
// Login.
|
||||
LastLoginAt = data.LastLoginAt;
|
||||
LastInvalidLoginAt = data.LastInvalidLoginAt;
|
||||
InvalidLoginCount = data.InvalidLoginCount;
|
||||
base.PopulateFrom(data);
|
||||
}
|
||||
public Data Clone()
|
||||
@@ -90,6 +120,10 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
// Identifies the field that has invalid data.
|
||||
public ValidValue UserAccountId { get; set; } = ValidValue.Valid;
|
||||
public ValidValue UserRole { get; set; } = ValidValue.Valid;
|
||||
// Login.
|
||||
public ValidValue LastLogin { get; set; } = ValidValue.Valid;
|
||||
public ValidValue LastInvalidLogin { get; set; } = ValidValue.Valid;
|
||||
public ValidValue InvalidLoginCount { get; set; } = ValidValue.Valid;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
@@ -164,8 +198,32 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
protected set { data.UserRole = value; }
|
||||
}
|
||||
|
||||
// Login - Admin application for System Admin role.
|
||||
public DateTime LastLoginAt
|
||||
{
|
||||
get { return data.LastLoginAt; }
|
||||
set { data.LastLoginAt = value; }
|
||||
}
|
||||
public DateTime LastInvalidLoginAt
|
||||
{
|
||||
get { return data.LastInvalidLoginAt; }
|
||||
set { data.LastInvalidLoginAt = value; }
|
||||
}
|
||||
public short InvalidLoginCount
|
||||
{
|
||||
get { return data.InvalidLoginCount; }
|
||||
set { data.InvalidLoginCount = value; }
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Flags - positions 1-16 available.
|
||||
// Keep logged in - Admin application for System Admin role.
|
||||
public Byte Flag_KeepLoggedIn { get; } = 0x1;
|
||||
public bool KeepLoggedIn
|
||||
{
|
||||
get { return GetFlag(Flag_KeepLoggedIn); }
|
||||
set { SetFlag(Flag_KeepLoggedIn, value); }
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using Saxonite.Base.App;
|
||||
using Saxonite.Net.Standard.Base.App;
|
||||
using Saxonite.Net.Standard.Base.Bus;
|
||||
@@ -91,6 +92,32 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
return SetErrorState("User Role must be specified");
|
||||
}
|
||||
|
||||
// Login - Admin application for System users.
|
||||
if (errField.LastLogin != SacsHierarchyItem.ValidValue.Ignore && DateUtil.IsValid(data.LastLoginAt))
|
||||
{
|
||||
if (data.UserRole != Sax.UserRole.SystemAdmin)
|
||||
{
|
||||
errField.LastLogin = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Last Login can only be set for System Admin role");
|
||||
}
|
||||
}
|
||||
if (errField.LastInvalidLogin != SacsHierarchyItem.ValidValue.Ignore && DateUtil.IsValid(data.LastInvalidLoginAt))
|
||||
{
|
||||
if (data.UserRole != Sax.UserRole.SystemAdmin)
|
||||
{
|
||||
errField.LastLogin = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Last Invalid Login can only be set for System Admin role");
|
||||
}
|
||||
}
|
||||
if (errField.InvalidLoginCount != SacsHierarchyItem.ValidValue.Ignore && data.InvalidLoginCount > 0)
|
||||
{
|
||||
if (data.UserRole != Sax.UserRole.SystemAdmin)
|
||||
{
|
||||
errField.LastLogin = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Invalid Login Count can only be set for System Admin role");
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Common properties.
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.UserRole_Notes)))
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 4-Mar-2022 15:28:05
|
||||
// Code generated by Sarand Database Utilities Mon 7-Mar-2022 10:06:56
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 4-Mar-2022 15:28:05
|
||||
// Code generated by Sarand Database Utilities Mon 7-Mar-2022 10:06:56
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 4-Mar-2022 15:28:05
|
||||
// Code generated by Sarand Database Utilities Mon 7-Mar-2022 10:06:56
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 4-Mar-2022 15:28:05
|
||||
// Code generated by Sarand Database Utilities Mon 7-Mar-2022 10:06:56
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 4-Mar-2022 15:28:05
|
||||
// Code generated by Sarand Database Utilities Mon 7-Mar-2022 10:06:56
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 4-Mar-2022 15:28:05
|
||||
// Code generated by Sarand Database Utilities Mon 7-Mar-2022 10:06:56
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 4-Mar-2022 15:28:05
|
||||
// Code generated by Sarand Database Utilities Mon 7-Mar-2022 10:06:56
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 4-Mar-2022 15:28:05
|
||||
// Code generated by Sarand Database Utilities Mon 7-Mar-2022 10:06:56
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 4-Mar-2022 15:28:05
|
||||
// Code generated by Sarand Database Utilities Mon 7-Mar-2022 10:06:56
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 4-Mar-2022 15:28:05
|
||||
// Code generated by Sarand Database Utilities Mon 7-Mar-2022 10:06:56
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 4-Mar-2022 15:28:05
|
||||
// Code generated by Sarand Database Utilities Mon 7-Mar-2022 10:06:56
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 4-Mar-2022 15:28:05
|
||||
// Code generated by Sarand Database Utilities Mon 7-Mar-2022 10:06:56
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 4-Mar-2022 15:28:05
|
||||
// Code generated by Sarand Database Utilities Mon 7-Mar-2022 10:06:56
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 4-Mar-2022 15:28:05
|
||||
// Code generated by Sarand Database Utilities Mon 7-Mar-2022 10:06:56
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 4-Mar-2022 15:28:05
|
||||
// Code generated by Sarand Database Utilities Mon 7-Mar-2022 10:06:56
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
@@ -22,6 +22,9 @@ namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
public ColumnDataInt64 _Id { get; } = new ColumnDataInt64("Id", true);
|
||||
public ColumnDataInt32 _UserAccountId { get; } = new ColumnDataInt32("UserAccountId");
|
||||
public ColumnDataString _UserRoleCode { get; } = new ColumnDataString("UserRoleCode");
|
||||
public ColumnDataDateTime _LastLoginAt { get; } = new ColumnDataDateTime("LastLoginAt");
|
||||
public ColumnDataDateTime _LastInvalidLoginAt { get; } = new ColumnDataDateTime("LastInvalidLoginAt");
|
||||
public ColumnDataInt16 _InvalidLoginCount { get; } = new ColumnDataInt16("InvalidLoginCount");
|
||||
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
|
||||
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
|
||||
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
|
||||
@@ -40,6 +43,9 @@ namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
"Id",
|
||||
"UserAccountId",
|
||||
"UserRoleCode",
|
||||
"LastLoginAt",
|
||||
"LastInvalidLoginAt",
|
||||
"InvalidLoginCount",
|
||||
"Notes",
|
||||
"Flags",
|
||||
"Status",
|
||||
@@ -84,6 +90,9 @@ namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
public Int64 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
|
||||
public Int32 _UserAccountId { get { return Cols._UserAccountId.Value; } set { Cols._UserAccountId.Value = value; } }
|
||||
public String _UserRoleCode { get { return Cols._UserRoleCode.Value; } set { Cols._UserRoleCode.Value = value; } }
|
||||
public DateTime _LastLoginAt { get { return Cols._LastLoginAt.Value; } set { Cols._LastLoginAt.Value = value; } }
|
||||
public DateTime _LastInvalidLoginAt { get { return Cols._LastInvalidLoginAt.Value; } set { Cols._LastInvalidLoginAt.Value = value; } }
|
||||
public Int16 _InvalidLoginCount { get { return Cols._InvalidLoginCount.Value; } set { Cols._InvalidLoginCount.Value = value; } }
|
||||
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
|
||||
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
|
||||
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
|
||||
@@ -117,6 +126,9 @@ namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
_Id = GetFieldInt64(dbDataReader, "Id", _Id);
|
||||
_UserAccountId = GetFieldInt32(dbDataReader, "UserAccountId", _UserAccountId);
|
||||
_UserRoleCode = GetFieldString(dbDataReader, "UserRoleCode", _UserRoleCode);
|
||||
_LastLoginAt = GetFieldDateTime(dbDataReader, "LastLoginAt", _LastLoginAt);
|
||||
_LastInvalidLoginAt = GetFieldDateTime(dbDataReader, "LastInvalidLoginAt", _LastInvalidLoginAt);
|
||||
_InvalidLoginCount = GetFieldInt16(dbDataReader, "InvalidLoginCount", _InvalidLoginCount);
|
||||
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
|
||||
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
|
||||
_Status = GetFieldString(dbDataReader, "Status", _Status);
|
||||
@@ -149,6 +161,9 @@ namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
dbCommand.Parameters.Clear();
|
||||
if (columnNames.ContainsCI("UserAccountId")) AddCommandParameter(dbCommand, "@UserAccountId", _UserAccountId);
|
||||
if (columnNames.ContainsCI("UserRoleCode")) AddCommandParameter(dbCommand, "@UserRoleCode", _UserRoleCode);
|
||||
if (columnNames.ContainsCI("LastLoginAt")) AddCommandParameter(dbCommand, "@LastLoginAt", _LastLoginAt);
|
||||
if (columnNames.ContainsCI("LastInvalidLoginAt")) AddCommandParameter(dbCommand, "@LastInvalidLoginAt", _LastInvalidLoginAt);
|
||||
if (columnNames.ContainsCI("InvalidLoginCount")) AddCommandParameter(dbCommand, "@InvalidLoginCount", _InvalidLoginCount);
|
||||
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
|
||||
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
|
||||
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
|
||||
@@ -196,6 +211,9 @@ namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
dbCommand.Parameters.Clear();
|
||||
if (columnNames.ContainsCI("UserAccountId")) AddCommandParameter(dbCommand, "@UserAccountId", _UserAccountId);
|
||||
if (columnNames.ContainsCI("UserRoleCode")) AddCommandParameter(dbCommand, "@UserRoleCode", _UserRoleCode);
|
||||
if (columnNames.ContainsCI("LastLoginAt")) AddCommandParameter(dbCommand, "@LastLoginAt", _LastLoginAt);
|
||||
if (columnNames.ContainsCI("LastInvalidLoginAt")) AddCommandParameter(dbCommand, "@LastInvalidLoginAt", _LastInvalidLoginAt);
|
||||
if (columnNames.ContainsCI("InvalidLoginCount")) AddCommandParameter(dbCommand, "@InvalidLoginCount", _InvalidLoginCount);
|
||||
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
|
||||
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
|
||||
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 4-Mar-2022 15:28:05
|
||||
// Code generated by Sarand Database Utilities Mon 7-Mar-2022 10:06:56
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 4-Mar-2022 15:28:05
|
||||
// Code generated by Sarand Database Utilities Mon 7-Mar-2022 10:06:56
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 4-Mar-2022 15:28:05
|
||||
// Code generated by Sarand Database Utilities Mon 7-Mar-2022 10:06:56
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -286,13 +286,15 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
// Item column definitions.
|
||||
private static readonly String aliasUserAccount = "UsrAct";
|
||||
private static readonly String aliasUserAccount_Region_Country = "UsrAct_Ctr";
|
||||
private static readonly String prefixUserAccount_Region_Country = "UsrAct_Ctr_";
|
||||
private static readonly String prefixUserAccount_Region_Country = aliasUserAccount_Region_Country + "_";
|
||||
private static readonly String aliasUserAccount_Region_Province = "UsrAct_Prv";
|
||||
private static readonly String prefixUserAccount_Region_Province = "UsrAct_Prv_";
|
||||
private static readonly String prefixUserAccount_Region_Province = aliasUserAccount_Region_Province + "_";
|
||||
private static readonly String aliasUserAccount_UserRole_SysAdmin = "UsrAct_UsrRol_SysAdm";
|
||||
private static readonly String prefixUserAccount_UserRole_SysAdmin = aliasUserAccount_UserRole_SysAdmin + "_";
|
||||
private static readonly String aliasUserAccount_UserSport = "UsrAct_UsrSpt";
|
||||
//private static readonly String prefixUserAccount_UserSport = "UsrAct_UsrSpt_";
|
||||
//private static readonly String prefixUserAccount_UserSport = aliasUserAccount_UserSport + "_";
|
||||
private static readonly String aliasUserAccount_UserRole = "UsrAct_UsrRol";
|
||||
//private static readonly String prefixUserAccount_UserRole = "UsrAct_UsrRol_";
|
||||
//private static readonly String prefixUserAccount_UserRole = aliasUserAccount_UserRole + "_";
|
||||
private static readonly String colUserAccount_UserRoleCount = "UsrAct_RoleCount";
|
||||
private static readonly String colUserAccount_SystemAdminRole = "UsrAct_SystemAdminRole";
|
||||
private void SetUserAccountColDfn
|
||||
@@ -409,6 +411,26 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
columnDfn.DataName = colUserAccount_SystemAdminRole;
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxUserAccount.Column.LastAdminLoginOn:
|
||||
SetUserAccountColDfn(columnDfn, "Last Admin login", 100, SaxDbDfn_Core.ColumnIdx.UserRole_LastLoginAt, ColumnAlignment.Center, DataValue.DataType.Date, aliasUserAccount_UserRole_SysAdmin, prefixUserAccount_UserRole_SysAdmin);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxUserAccount.Column.LastAdminLoginAt:
|
||||
SetUserAccountColDfn(columnDfn, "Last Admin login", 120, SaxDbDfn_Core.ColumnIdx.UserRole_LastLoginAt, ColumnAlignment.Center, DataValue.DataType.DateTime, aliasUserAccount_UserRole_SysAdmin, prefixUserAccount_UserRole_SysAdmin);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxUserAccount.Column.LastInvalidAdminLoginOn:
|
||||
SetUserAccountColDfn(columnDfn, "Last invalid Admin login", 100, SaxDbDfn_Core.ColumnIdx.UserRole_LastInvalidLoginAt, ColumnAlignment.Center, DataValue.DataType.Date, aliasUserAccount_UserRole_SysAdmin, prefixUserAccount_UserRole_SysAdmin);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxUserAccount.Column.LastInvalidAdminLoginAt:
|
||||
SetUserAccountColDfn(columnDfn, "Last invalid Admin login", 100, SaxDbDfn_Core.ColumnIdx.UserRole_LastInvalidLoginAt, ColumnAlignment.Center, DataValue.DataType.DateTime, aliasUserAccount_UserRole_SysAdmin, prefixUserAccount_UserRole_SysAdmin);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxUserAccount.Column.InvalidAdminLoginCount:
|
||||
SetUserAccountColDfn(columnDfn, "Invalid Admin logins", 80, SaxDbDfn_Core.ColumnIdx.UserRole_InvalidLoginCount, ColumnAlignment.Center, DataValue.DataType.Long, aliasUserAccount_UserRole_SysAdmin, prefixUserAccount_UserRole_SysAdmin);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Common properties.
|
||||
@@ -738,9 +760,13 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
bool hasProvinceRegionCols = columns.HasId(SaxUserAccount.Column.RegionProvince_Name);
|
||||
if (columns.HasId(SaxUserAccount.Column.RegionIdProvince) || hasProvinceRegionCols)
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_RegionIdProvince, aliasUserAccount));
|
||||
// Security.
|
||||
// Login.
|
||||
if (columns.HasId(SaxUserAccount.Column.LastLoginOn) || columns.HasId(SaxUserAccount.Column.LastLoginAt))
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_LastLoginAt, aliasUserAccount));
|
||||
if (columns.HasId(SaxUserAccount.Column.LastInvalidLoginOn) || columns.HasId(SaxUserAccount.Column.LastInvalidLoginAt))
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_LastInvalidLoginAt, aliasUserAccount));
|
||||
if (columns.HasId(SaxUserAccount.Column.InvalidLoginCount))
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_InvalidLoginCount, aliasUserAccount));
|
||||
// Common properties.
|
||||
if (columns.HasId(SaxUserAccount.Column.Notes))
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_Notes, aliasUserAccount));
|
||||
@@ -781,6 +807,23 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(col, aliasUserAccount_Region_Province), prefixUserAccount_Region_Province + SaxDbDfn_Core.GetColumnName(col, false));
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// System Admin User Role.
|
||||
if (columns.Exists(item => SaxDbDfn_Core.GetTableForColumn((SaxDbDfn_Core.ColumnIdx)item.DbColumn) == SaxDbDfn_Core.TableIdx.UserRole))
|
||||
{
|
||||
DbQueryJoin joinSysAdmin = new DbQueryJoin(DbJoinType.LeftOuter);
|
||||
joinSysAdmin.Table = new StringPair(SaxDbDfn_Core.GetTableName(SaxDbDfn_Core.TableIdx.UserRole), aliasUserAccount_UserRole_SysAdmin);
|
||||
joinSysAdmin.Filters.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserRole_UserAccountId, aliasUserAccount_UserRole_SysAdmin) + "=" + SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_Id, aliasUserAccount));
|
||||
joinSysAdmin.Filters.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserRole_UserRoleCode, aliasUserAccount_UserRole_SysAdmin) + "='" + UserRoleCodes.GetCodeForType(Sax.UserRole.SystemAdmin) + "'");
|
||||
query.Joins.Add(joinSysAdmin);
|
||||
List<SaxDbDfn_Core.ColumnIdx> cols = new List<SaxDbDfn_Core.ColumnIdx>();
|
||||
cols.Add(SaxDbDfn_Core.ColumnIdx.UserRole_LastLoginAt);
|
||||
cols.Add(SaxDbDfn_Core.ColumnIdx.UserRole_LastInvalidLoginAt);
|
||||
cols.Add(SaxDbDfn_Core.ColumnIdx.UserRole_InvalidLoginCount);
|
||||
foreach (var col in cols)
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(col, aliasUserAccount_UserRole_SysAdmin), prefixUserAccount_UserRole_SysAdmin + SaxDbDfn_Core.GetColumnName(col, false));
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// User Role count.
|
||||
if (columns.HasId(SaxUserAccount.Column.UserRoleCount))
|
||||
|
||||
@@ -214,6 +214,10 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
dbUserRole._Id = SysId.ToLong(userRole.Id);
|
||||
dbUserRole._UserAccountId = SysId.ToInt(userRole.UserAccountId);
|
||||
dbUserRole._UserRoleCode = UserRoleCodes.GetCodeForType(userRole.UserRole);
|
||||
// Login.
|
||||
dbUserRole._LastLoginAt = userRole.LastLoginAt;
|
||||
dbUserRole._LastInvalidLoginAt = userRole.LastInvalidLoginAt;
|
||||
dbUserRole._InvalidLoginCount = userRole.InvalidLoginCount;
|
||||
// Common.
|
||||
dbUserRole._Notes = userRole.Notes;
|
||||
dbUserRole._Status = SacsSystem.GetStatusCode(userRole.Status);
|
||||
@@ -233,6 +237,10 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
//userRole.Id = new SysId(dbUserRole._Id);
|
||||
//userRole.UserAccountId = new SysId(dbUserRole._UserAccountId);
|
||||
//userRole.UserRole = (Sax.UserRole)UserRoles.GetTypeForCode(dbUserRole._UserRoleCode);
|
||||
// Login.
|
||||
userRole.LastLoginAt = dbUserRole._LastLoginAt;
|
||||
userRole.LastInvalidLoginAt = dbUserRole._LastInvalidLoginAt;
|
||||
userRole.InvalidLoginCount = dbUserRole._InvalidLoginCount;
|
||||
// Common.
|
||||
userRole.Notes = dbUserRole._Notes;
|
||||
userRole.Status = SacsSystem.GetStatusForCode(dbUserRole._Status);
|
||||
@@ -282,6 +290,29 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
|
||||
//-------------------------------------------------------
|
||||
// Login.
|
||||
case SaxUserRole.Column.LastLoginOn:
|
||||
SetUserRoleColDfn(columnDfn, "Last login", 100, SaxDbDfn_Core.ColumnIdx.UserRole_LastLoginAt, ColumnAlignment.Center, DataValue.DataType.Date);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxUserRole.Column.LastLoginAt:
|
||||
SetUserRoleColDfn(columnDfn, "Last login", 120, SaxDbDfn_Core.ColumnIdx.UserRole_LastLoginAt, ColumnAlignment.Center, DataValue.DataType.DateTime);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxUserRole.Column.LastInvalidLoginOn:
|
||||
SetUserRoleColDfn(columnDfn, "Last invalid login", 100, SaxDbDfn_Core.ColumnIdx.UserRole_LastInvalidLoginAt, ColumnAlignment.Center, DataValue.DataType.Date);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxUserRole.Column.LastInvalidLoginAt:
|
||||
SetUserRoleColDfn(columnDfn, "Last invalid login", 100, SaxDbDfn_Core.ColumnIdx.UserRole_LastInvalidLoginAt, ColumnAlignment.Center, DataValue.DataType.DateTime);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxUserRole.Column.InvalidLoginCount:
|
||||
SetUserRoleColDfn(columnDfn, "Invalid logins", 80, SaxDbDfn_Core.ColumnIdx.UserRole_InvalidLoginCount, ColumnAlignment.Center, DataValue.DataType.Long);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
|
||||
//-------------------------------------------------------
|
||||
// User.
|
||||
case SaxUserRole.Column.User_EmailAddress:
|
||||
@@ -494,6 +525,13 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserRole_UserAccountId, aliasUserRole));
|
||||
if (columns.HasId(SaxUserRole.Column.UserRole) || columns.HasId(SaxUserRole.Column.UserRole_Desc))
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserRole_UserRoleCode, aliasUserRole));
|
||||
// Login.
|
||||
if (columns.HasId(SaxUserRole.Column.LastLoginOn) || columns.HasId(SaxUserRole.Column.LastLoginAt))
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserRole_LastLoginAt, aliasUserRole));
|
||||
if (columns.HasId(SaxUserRole.Column.LastInvalidLoginOn) || columns.HasId(SaxUserRole.Column.LastInvalidLoginAt))
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserRole_LastInvalidLoginAt, aliasUserRole));
|
||||
if (columns.HasId(SaxUserRole.Column.InvalidLoginCount))
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserRole_InvalidLoginCount, aliasUserRole));
|
||||
// Common properties.
|
||||
if (columns.HasId(SaxUserRole.Column.Notes))
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserRole_Notes, aliasUserRole));
|
||||
|
||||
@@ -5764,6 +5764,57 @@
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserRole</Table>
|
||||
<Pos>4</Pos>
|
||||
<Name>LastLoginAt</Name>
|
||||
<DataType>DateTime</DataType>
|
||||
<DataTypeName />
|
||||
<DataTypeNative>93</DataTypeNative>
|
||||
<DataTypeNameNative>smalldatetime</DataTypeNameNative>
|
||||
<IsIdentity>false</IsIdentity>
|
||||
<Size>16</Size>
|
||||
<BufferLen>16</BufferLen>
|
||||
<DecimalDigits>0</DecimalDigits>
|
||||
<Nullable>Nullable</Nullable>
|
||||
<IsNullable>true</IsNullable>
|
||||
<Remarks />
|
||||
</DbDfnColumn>
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserRole</Table>
|
||||
<Pos>5</Pos>
|
||||
<Name>LastInvalidLoginAt</Name>
|
||||
<DataType>DateTime</DataType>
|
||||
<DataTypeName />
|
||||
<DataTypeNative>93</DataTypeNative>
|
||||
<DataTypeNameNative>smalldatetime</DataTypeNameNative>
|
||||
<IsIdentity>false</IsIdentity>
|
||||
<Size>16</Size>
|
||||
<BufferLen>16</BufferLen>
|
||||
<DecimalDigits>0</DecimalDigits>
|
||||
<Nullable>Nullable</Nullable>
|
||||
<IsNullable>true</IsNullable>
|
||||
<Remarks />
|
||||
</DbDfnColumn>
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserRole</Table>
|
||||
<Pos>6</Pos>
|
||||
<Name>InvalidLoginCount</Name>
|
||||
<DataType>SmallInt</DataType>
|
||||
<DataTypeName />
|
||||
<DataTypeNative>5</DataTypeNative>
|
||||
<DataTypeNameNative>smallint</DataTypeNameNative>
|
||||
<IsIdentity>false</IsIdentity>
|
||||
<Size>5</Size>
|
||||
<BufferLen>2</BufferLen>
|
||||
<DecimalDigits>0</DecimalDigits>
|
||||
<Nullable>Nullable</Nullable>
|
||||
<IsNullable>true</IsNullable>
|
||||
<Remarks />
|
||||
</DbDfnColumn>
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserRole</Table>
|
||||
<Pos>7</Pos>
|
||||
<Name>Notes</Name>
|
||||
<DataType>VarChar</DataType>
|
||||
<DataTypeName />
|
||||
@@ -5780,7 +5831,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserRole</Table>
|
||||
<Pos>5</Pos>
|
||||
<Pos>8</Pos>
|
||||
<Name>Flags</Name>
|
||||
<DataType>SmallInt</DataType>
|
||||
<DataTypeName />
|
||||
@@ -5797,7 +5848,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserRole</Table>
|
||||
<Pos>6</Pos>
|
||||
<Pos>9</Pos>
|
||||
<Name>Status</Name>
|
||||
<DataType>VarChar</DataType>
|
||||
<DataTypeName />
|
||||
@@ -5814,7 +5865,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserRole</Table>
|
||||
<Pos>7</Pos>
|
||||
<Pos>10</Pos>
|
||||
<Name>CreateOn</Name>
|
||||
<DataType>DateTime</DataType>
|
||||
<DataTypeName />
|
||||
@@ -5831,7 +5882,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserRole</Table>
|
||||
<Pos>8</Pos>
|
||||
<Pos>11</Pos>
|
||||
<Name>CreateBy</Name>
|
||||
<DataType>Int</DataType>
|
||||
<DataTypeName />
|
||||
@@ -5848,7 +5899,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserRole</Table>
|
||||
<Pos>9</Pos>
|
||||
<Pos>12</Pos>
|
||||
<Name>CreateHost</Name>
|
||||
<DataType>VarChar</DataType>
|
||||
<DataTypeName />
|
||||
@@ -5865,7 +5916,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserRole</Table>
|
||||
<Pos>10</Pos>
|
||||
<Pos>13</Pos>
|
||||
<Name>UpdateOn</Name>
|
||||
<DataType>DateTime</DataType>
|
||||
<DataTypeName />
|
||||
@@ -5882,7 +5933,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserRole</Table>
|
||||
<Pos>11</Pos>
|
||||
<Pos>14</Pos>
|
||||
<Name>UpdateBy</Name>
|
||||
<DataType>Int</DataType>
|
||||
<DataTypeName />
|
||||
@@ -5899,7 +5950,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserRole</Table>
|
||||
<Pos>12</Pos>
|
||||
<Pos>15</Pos>
|
||||
<Name>UpdateHost</Name>
|
||||
<DataType>VarChar</DataType>
|
||||
<DataTypeName />
|
||||
@@ -6887,7 +6938,7 @@
|
||||
<Clustered>false</Clustered>
|
||||
<Nullable>false</Nullable>
|
||||
<Pages>1</Pages>
|
||||
<UniqueValues>2</UniqueValues>
|
||||
<UniqueValues>3</UniqueValues>
|
||||
<HasColumns>false</HasColumns>
|
||||
<Columns>
|
||||
<DbDfnIndexColumn>
|
||||
|
||||
Reference in New Issue
Block a user