From 9bd409e672d22e014ca939802f037459b09b0b8e Mon Sep 17 00:00:00 2001 From: Milan Hanajik Date: Tue, 20 Dec 2016 14:22:56 +0100 Subject: [PATCH] Config.Entities.User.CurrentUser --> Config.Data.CurrentUser Config.Entities.User.LastAuthorization --> Config.Data.lastAuthorization --- Config/Data.cs | 4 ++ Config/Entities/Procedure.cs | 2 +- Config/Entities/User.cs | 29 ++++---------- Config/Entities/WMType.cs | 2 +- .../Basic/BasicPrintDocument.cs | 2 +- .../BenchControl/Sequences/MainSeq.cs | 2 +- TestBenchFramework/Forms/EditUsers.cs | 6 +-- TestBenchFramework/Forms/ResultsConfig.cs | 4 +- TestBenchFramework/MainWnd.cs | 10 ++--- TestBenchFramework/Program.cs | 39 +++++++++---------- .../UiControls/ProceduresCtrl.cs | 10 ++--- .../UiControls/SharedButtons.cs | 8 ++-- 12 files changed, 54 insertions(+), 64 deletions(-) diff --git a/Config/Data.cs b/Config/Data.cs index 0eca8da36..f58e0dc4f 100644 --- a/Config/Data.cs +++ b/Config/Data.cs @@ -4,6 +4,10 @@ namespace Config { public class Data { + /// Current user + public static Entities.User CurrentUser; + public static DateTime LastAuthorization = DateTime.Now; + public const string AdminUsername = "admin"; public const string AdminPassword = "staratura"; public const string SQLiteDbFName = "SQLite.db"; diff --git a/Config/Entities/Procedure.cs b/Config/Entities/Procedure.cs index 09026083d..b054c5e07 100644 --- a/Config/Entities/Procedure.cs +++ b/Config/Entities/Procedure.cs @@ -53,7 +53,7 @@ namespace Config.Entities /// /// Default values /// - CreationUser = (User.CurrentUser != null) ? User.CurrentUser.Name : null; + CreationUser = (Config.Data.CurrentUser != null) ? Config.Data.CurrentUser.Name : null; CreationTime = DateTime.Now; LastChgUser = CreationUser; LastChgTime = CreationTime; diff --git a/Config/Entities/User.cs b/Config/Entities/User.cs index d90a1175e..efa7ea05b 100644 --- a/Config/Entities/User.cs +++ b/Config/Entities/User.cs @@ -1,5 +1,5 @@ /// -/// Copyright (c) 2013-2015 Sensus Metering Systems +/// Copyright (c) 2013-2016 Sensus Metering Systems /// using System; using System.Collections.Generic; @@ -52,19 +52,6 @@ namespace Config.Entities /// ------------- Additional stuff not mapped into the database ------------- - /// - /// Authorized user (static) - /// - private static User currentUser = null; /// Updated by instance methods Authorize, Unauthorize - public static User CurrentUser - { - get { return currentUser; } - set { currentUser = value; } - } - - private static DateTime lastAuthorization = DateTime.Now; - public static DateTime LastAuthorization { get { return lastAuthorization; } } - /// /// Check whether user is a member of a group. /// @@ -136,8 +123,8 @@ namespace Config.Entities { if (Entities.User.IsPowerUser(userName, password)) { - currentUser = this; - lastAuthorization = DateTime.Now; + Data.CurrentUser = this; + Data.LastAuthorization = DateTime.Now; log.FatalFormat("Power user '{0}' authorized @level '{1}'", userName, requiredGroupMembership); return true; } @@ -146,8 +133,8 @@ namespace Config.Entities { if (IsMemberOf(requiredGroupMembership) && CheckPassword(password)) { - currentUser = this; - lastAuthorization = DateTime.Now; + Data.CurrentUser = this; + Data.LastAuthorization = DateTime.Now; log.FatalFormat("User '{0}' authorized @level '{1}'", userName, requiredGroupMembership); return true; } @@ -184,7 +171,7 @@ namespace Config.Entities { User user = new User(); user.Name = username; - currentUser = user; + Data.CurrentUser = user; return user; } @@ -235,8 +222,8 @@ namespace Config.Entities /// public static void Unauthorize() { - currentUser = null; - lastAuthorization = DateTime.Now; + Data.CurrentUser = null; + Data.LastAuthorization = DateTime.Now; } /// diff --git a/Config/Entities/WMType.cs b/Config/Entities/WMType.cs index f5f644b3f..b4b0c06e2 100644 --- a/Config/Entities/WMType.cs +++ b/Config/Entities/WMType.cs @@ -41,7 +41,7 @@ namespace Config.Entities WMType procedure = new WMType() { CreateTime = DateTime.Now, - CreateUserName = User.CurrentUser.Name, + CreateUserName = Config.Data.CurrentUser.Name, CreateDescription = "A default water meter created.", Name = "Watermeter", PulseRate = 1000, diff --git a/TestBenchFramework/BenchControl/ResultsPrinters/Basic/BasicPrintDocument.cs b/TestBenchFramework/BenchControl/ResultsPrinters/Basic/BasicPrintDocument.cs index 11e829475..154804a44 100644 --- a/TestBenchFramework/BenchControl/ResultsPrinters/Basic/BasicPrintDocument.cs +++ b/TestBenchFramework/BenchControl/ResultsPrinters/Basic/BasicPrintDocument.cs @@ -177,7 +177,7 @@ namespace TBF.BenchControl.ResultsPrinters.Basic //batch.EndTime.ToShortDateString() + " " + batch.EndTime.ToShortTimeString(), string.Format("{0:yyyy.MM.dd HH:mm}", batch.EndTime), batch.ProcedureName, - User.CurrentUser.Name, + Config.Data.CurrentUser.Name, batch.AmbientTempAve().ToString("F1") + " °C", Config.Units.ConvertTo(Config.Unit.mbar, batch.AmbientPressAve()).ToString("F0") + " mbar", batch.AmbientHumiAve().ToString("F0") + " %", diff --git a/TestBenchFramework/BenchControl/Sequences/MainSeq.cs b/TestBenchFramework/BenchControl/Sequences/MainSeq.cs index 0d52824a2..601c1fd7c 100644 --- a/TestBenchFramework/BenchControl/Sequences/MainSeq.cs +++ b/TestBenchFramework/BenchControl/Sequences/MainSeq.cs @@ -319,7 +319,7 @@ namespace TBF.BenchControl.Sequences /// BatchRslts = Results.BatchResults.NewFromProcedure(Program.LocalSettings.BatchNr, (BenchInfo != null) ? BenchInfo.TestBenchId : 1, - User.CurrentUser.Name, User.CurrentUser.Number, Program.Version, + Config.Data.CurrentUser.Name, Config.Data.CurrentUser.Number, Program.Version, StateMachine.Procedure, waterMeterData, waterMeterParts); StateMachine.CycleStartTimeStamp = BatchRslts.Batch.StartTime; diff --git a/TestBenchFramework/Forms/EditUsers.cs b/TestBenchFramework/Forms/EditUsers.cs index 359245b3f..ac6e96099 100644 --- a/TestBenchFramework/Forms/EditUsers.cs +++ b/TestBenchFramework/Forms/EditUsers.cs @@ -44,8 +44,8 @@ namespace TBF.Forms public void ListUsers() { Cursor.Current = Cursors.WaitCursor; - - if (User.CurrentUser.IsMemberOf(Config.Grp.GID.Administrators) || User.CurrentUser.IsMemberOf(Config.Grp.GID.HeadOfLab)) + + if (Config.Data.CurrentUser.IsMemberOf(Config.Grp.GID.Administrators) || Config.Data.CurrentUser.IsMemberOf(Config.Grp.GID.HeadOfLab)) { /// Admin and HeadOfLab can edit all users ListOfUsers = session.QueryOver().List(); @@ -53,7 +53,7 @@ namespace TBF.Forms else { /// user can only edit their own data - ListOfUsers = session.QueryOver().Where(x => (x == User.CurrentUser)).List(); + ListOfUsers = session.QueryOver().Where(x => (x == Config.Data.CurrentUser)).List(); } listViewUsers.Items.Clear(); diff --git a/TestBenchFramework/Forms/ResultsConfig.cs b/TestBenchFramework/Forms/ResultsConfig.cs index d15d9ef06..5eae4b747 100644 --- a/TestBenchFramework/Forms/ResultsConfig.cs +++ b/TestBenchFramework/Forms/ResultsConfig.cs @@ -163,13 +163,13 @@ namespace TBF.Forms { if (!unlocked) { - if (!User.CurrentUser.IsMemberOf(RequiredGroupMembership)) + if (!Config.Data.CurrentUser.IsMemberOf(RequiredGroupMembership)) { if ((new LoginDlg(RequiredGroupMembership)).ShowDialog() != DialogResult.OK) return; } else if (Program.LocalSettings.AlwaysAskPasswdWhenUnlocking) { - if ((new LoginDlg(User.CurrentUser.Name, RequiredGroupMembership)).ShowDialog() != DialogResult.OK) return; + if ((new LoginDlg(Config.Data.CurrentUser.Name, RequiredGroupMembership)).ShowDialog() != DialogResult.OK) return; } unlocked = true; diff --git a/TestBenchFramework/MainWnd.cs b/TestBenchFramework/MainWnd.cs index ae2613227..7665f90a7 100644 --- a/TestBenchFramework/MainWnd.cs +++ b/TestBenchFramework/MainWnd.cs @@ -95,10 +95,10 @@ namespace TBF Config.Data.CurrentBench.BenchName, Config.Data.CurrentBench.IsRealBench ? "" : Strings._offline); - usersTSMenuItem.Visible = User.CurrentUser.IsMemberOf(Config.Grp.GID.Administrators) || - User.CurrentUser.IsMemberOf(Config.Grp.GID.HeadOfLab); - - upgradeTSMenuItem.Visible = User.CurrentUser.IsMemberOf(Config.Grp.GID.Administrators) && User.CurrentUser.Name == "milan"; + usersTSMenuItem.Visible = Config.Data.CurrentUser.IsMemberOf(Config.Grp.GID.Administrators) || + Config.Data.CurrentUser.IsMemberOf(Config.Grp.GID.HeadOfLab); + + upgradeTSMenuItem.Visible = Config.Data.CurrentUser.IsMemberOf(Config.Grp.GID.Administrators) && Config.Data.CurrentUser.Name == "milan"; benchInitializationFailed = false; /// @@ -335,7 +335,7 @@ namespace TBF public void UpdateUser() { - userInfoStatusLabel.Text = string.Format("{0}: {1} , ", Strings.User, User.CurrentUser.Name); + userInfoStatusLabel.Text = string.Format("{0}: {1} , ", Strings.User, Config.Data.CurrentUser.Name); } public void UpdateStatusP(string statusPStr) diff --git a/TestBenchFramework/Program.cs b/TestBenchFramework/Program.cs index 2c06029f1..6f3191c0f 100644 --- a/TestBenchFramework/Program.cs +++ b/TestBenchFramework/Program.cs @@ -1,5 +1,5 @@ /// -/// Copyright (c) 2013-2015 Sensus Metering Systems +/// Copyright (c) 2013-2016 Sensus Metering Systems /// using System; using System.IO; @@ -32,7 +32,6 @@ namespace TBF public static System.Globalization.CultureInfo AltCulture; - /// /// Selected procedure data /// - before the main program window is open, objects referenced by this variable @@ -218,27 +217,27 @@ namespace TBF /// /// Try authorisation with Users DB first /// - //if (!authorized) - //{ - // bool settingsChanged = false; + if (!authorized) + { + bool settingsChanged = false; - // if (string.IsNullOrEmpty(LocalSettings.TestBenches[i].UsersDBSettings.ConnectionString)) - // { - // LocalSettings.TestBenches[i].UsersDBSettings.ConnectionString = LocalSettings.TestBenches[i].ProceduresDBSettings.ConnectionString; - // LocalSettings.TestBenches[i].UsersDBSettings.DbType = LocalSettings.TestBenches[i].ProceduresDBSettings.DbType; - // settingsChanged = true; - // } + if (string.IsNullOrEmpty(LocalSettings.TestBenches[i].UsersDBSettings.ConnectionString)) + { + LocalSettings.TestBenches[i].UsersDBSettings.ConnectionString = LocalSettings.TestBenches[i].ProceduresDBSettings.ConnectionString; + LocalSettings.TestBenches[i].UsersDBSettings.DbType = LocalSettings.TestBenches[i].ProceduresDBSettings.DbType; + settingsChanged = true; + } - // /// Load user from the UsersAndGroupsDB database - // loadedUser = Users.Entities.User.LoadUserByName(loginDlgBench.User, - // LocalSettings.TestBenches[i].UsersDBSettings); - // if (loadedUser != null) - // { - // authorized = loadedUser.Authorize(loginDlgBench.User, loginDlgBench.Password); + /// Load user from the UsersAndGroupsDB database + loadedUser = Users.Entities.User.LoadUserByName(loginDlgBench.User, + LocalSettings.TestBenches[i].UsersDBSettings); + if (loadedUser != null) + { + authorized = loadedUser.Authorize(loginDlgBench.User, loginDlgBench.Password); - // if (authorized && settingsChanged) LocalSettings.Save(); - // } - //} + if (authorized && settingsChanged) LocalSettings.Save(); + } + } /// /// One more attempt: authorisation with Config DB diff --git a/TestBenchFramework/UiControls/ProceduresCtrl.cs b/TestBenchFramework/UiControls/ProceduresCtrl.cs index 27474af0d..1715c4fb1 100644 --- a/TestBenchFramework/UiControls/ProceduresCtrl.cs +++ b/TestBenchFramework/UiControls/ProceduresCtrl.cs @@ -159,7 +159,7 @@ namespace TBF.UiControls newProcedure.Revision = 1; newProcedure.PredecessorId = 0; newProcedure.ObtainedByCopy = false; - newProcedure.CreationUser = User.CurrentUser.Name; + newProcedure.CreationUser = Config.Data.CurrentUser.Name; newProcedure.CreationTime = DateTime.Now; if (new ProcedureDlg(newProcedure).ShowDialog() == DialogResult.OK) @@ -171,7 +171,7 @@ namespace TBF.UiControls { try { - newProcedure.LastChgUser = User.CurrentUser.Name; + newProcedure.LastChgUser = Config.Data.CurrentUser.Name; newProcedure.LastChgTime = DateTime.Now; base.AddOne(newProcedure); @@ -240,7 +240,7 @@ namespace TBF.UiControls try { originalProcedure.ProcedureState = ProcedureState.History; - modifiedProcedure.LastChgUser = User.CurrentUser.Name; + modifiedProcedure.LastChgUser = Config.Data.CurrentUser.Name; modifiedProcedure.LastChgTime = DateTime.Now; session.SaveOrUpdate(originalProcedure); @@ -280,7 +280,7 @@ namespace TBF.UiControls newProcedure.Revision = 1; newProcedure.PredecessorId = selectedProcedure.Id; newProcedure.ObtainedByCopy = true; - newProcedure.CreationUser = User.CurrentUser.Name; + newProcedure.CreationUser = Config.Data.CurrentUser.Name; newProcedure.CreationTime = DateTime.Now; if ((new ProcedureDlg(newProcedure)).ShowDialog() == DialogResult.OK) @@ -290,7 +290,7 @@ namespace TBF.UiControls using (var transaction = session.BeginTransaction()) { - newProcedure.LastChgUser = User.CurrentUser.Name; + newProcedure.LastChgUser = Config.Data.CurrentUser.Name; newProcedure.LastChgTime = DateTime.Now; base.AddOne(newProcedure); diff --git a/TestBenchFramework/UiControls/SharedButtons.cs b/TestBenchFramework/UiControls/SharedButtons.cs index a8546936b..c3f692cf6 100644 --- a/TestBenchFramework/UiControls/SharedButtons.cs +++ b/TestBenchFramework/UiControls/SharedButtons.cs @@ -69,7 +69,7 @@ namespace TBF.UiControls /// public SharedButtons() { - originalUser = Config.Entities.User.CurrentUser; + originalUser = Config.Data.CurrentUser; lockState = LockState.Locked; MoreActive = false; OptionalButtons = Buttons.None; @@ -200,7 +200,7 @@ namespace TBF.UiControls void RestoreUser() { - User.CurrentUser = originalUser; + Config.Data.CurrentUser = originalUser; Program.MainWnd.UpdateUser(); } @@ -230,13 +230,13 @@ namespace TBF.UiControls { if (lockState == LockState.Locked) { - if (!User.CurrentUser.IsMemberOf(RequiredGroupMembership)) + if (!Config.Data.CurrentUser.IsMemberOf(RequiredGroupMembership)) { if ((new LoginDlg(RequiredGroupMembership)).ShowDialog() != DialogResult.OK) return; } else if (Program.LocalSettings.AlwaysAskPasswdWhenUnlocking) { - if ((new LoginDlg(User.CurrentUser.Name, RequiredGroupMembership)).ShowDialog() != DialogResult.OK) return; + if ((new LoginDlg(Config.Data.CurrentUser.Name, RequiredGroupMembership)).ShowDialog() != DialogResult.OK) return; } UnlockButtons();