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();