From e245ec80c6bf4e95499ddec03bcc2117f91e5ad5 Mon Sep 17 00:00:00 2001 From: Milan Hanajik Date: Thu, 16 Mar 2017 21:53:12 +0100 Subject: [PATCH] Many changes, Config depends on Users, not vice versa. --- Config/Config.csproj | 8 +- Config/DBSettings.cs | 6 +- Config/Data.cs | 6 +- Config/DatabaseSettings.cs | 6 +- Config/Entities/Enums.cs | 25 -- Config/Entities/Procedure.cs | 2 +- Config/Entities/User.cs | 88 ++--- Config/Entities/WMType.cs | 2 +- Config/Entities/Watermeter.cs | 2 +- Config/FluentCommon.cs | 58 +-- Results/DB.cs | 8 +- Results/Results.csproj | 4 + ResultsBrowser/Forms/ResultsConfig.cs | 2 +- ResultsBrowser/ResultsBrowser.csproj | 4 + .../Basic/BasicPrintDocument.cs | 2 +- .../BenchControl/Sequences/MainSeq.cs | 2 +- .../BenchControl/StateMachine.cs | 4 +- .../TestMethods/Endurance/CycleDlg.cs | 4 +- TestBenchFramework/ComponentParametersDlg.cs | 2 +- TestBenchFramework/ComponentsManagerDlg.cs | 4 +- .../Forms/DatabaseSettingsDlg.cs | 12 +- .../Forms/LoginDlgWithBenchSelection.cs | 10 +- TestBenchFramework/Forms/ResultsConfig.cs | 6 +- TestBenchFramework/LocalSettings.cs | 2 +- TestBenchFramework/MainWnd.cs | 12 +- TestBenchFramework/MetrologyDlg.cs | 4 +- TestBenchFramework/PathsDlg.cs | 6 +- TestBenchFramework/ProcedureDlg.cs | 8 +- TestBenchFramework/ProceduresDlg.cs | 4 +- TestBenchFramework/Program.cs | 27 +- TestBenchFramework/TBF.csproj | 2 +- TestBenchFramework/TransitionsDlg.cs | 4 +- .../UiControls/BenchControlPanel.cs | 2 +- .../UiControls/ProceduresCtrl.cs | 12 +- .../UiControls/SharedButtons.cs | 14 +- UserManagement/LocalSettings.cs | 4 +- UserManagement/Program.cs | 343 ++++++------------ UserManagement/Properties/AssemblyInfo.cs | 4 +- UserManagement/UserManagement.csproj | 53 ++- UserManagement/UserManagement.csproj.user | 13 + Users/DB.cs | 10 +- Users/Entities/Enums.cs | 31 ++ Users/Entities/User.cs | 50 +-- Users/Forms/EditSelectedUser.Designer.cs | 3 + Users/Forms/EditSelectedUser.cs | 12 +- Users/Forms/EditSelectedUser.resx | 8 +- Users/Forms/LoginDlg.cs | 36 +- Users/Forms/UserManagementDlg.cs | 22 +- Users/Forms/UserManagementDlg.designer.cs | 1 + Users/GlobalData.cs | 10 + {Config => Users}/Grp.cs | 10 +- {Config => Users}/IUser.cs | 7 +- Users/Users.csproj | 10 +- 53 files changed, 456 insertions(+), 535 deletions(-) create mode 100644 UserManagement/UserManagement.csproj.user create mode 100644 Users/Entities/Enums.cs create mode 100644 Users/GlobalData.cs rename {Config => Users}/Grp.cs (94%) rename {Config => Users}/IUser.cs (88%) diff --git a/Config/Config.csproj b/Config/Config.csproj index 0e64637a2..f5b2cae4a 100644 --- a/Config/Config.csproj +++ b/Config/Config.csproj @@ -93,8 +93,6 @@ - - @@ -134,6 +132,12 @@ + + + {6E5CB0E9-E1B6-4E5D-AC6E-B1049E180F2B} + Users + + Exit application - } - else - { - for (int i = 0; i < LocalSettings.BenchesCount; i++) - { - if (LocalSettings.TestBenches[i].BenchName == loginDlg.BenchName) - { - log.FatalFormat("Test bench name: {0}", loginDlg.BenchName); - - Config.IUser loadedUser = null; - try - { - bool authorized = false; - - if (User.IsPowerUser(loginDlg.Alias, loginDlg.Password)) - { - loadedUser = new User(loginDlg.Alias, 6, true); - authorized = loadedUser.Authorize(loginDlg.Alias, loginDlg.Password); - } - - /// - /// Try authorisation with Users DB first - /// - 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; - } - - /// Load and authorise user from the UsersDB database - try - { - switch (loginDlg.Method) - { - default: - case Config.Entities.LoginMethod.UserName: - loadedUser = Users.Entities.User.LoadUserByName(loginDlg.Alias, LocalSettings.TestBenches[i].UsersDBSettings); - if (loadedUser != null) authorized = loadedUser.Authorize(loginDlg.Alias, loginDlg.Password); - break; - case Config.Entities.LoginMethod.FullName: - loadedUser = Users.Entities.User.LoadUserByFullName(loginDlg.Alias, LocalSettings.TestBenches[i].UsersDBSettings); - if (loadedUser != null) authorized = loadedUser.AuthorizeFullName(loginDlg.Alias, loginDlg.Password); - break; - case Config.Entities.LoginMethod.Number: - int number; - if (!int.TryParse(loginDlg.Alias, out number)) break; - loadedUser = Users.Entities.User.LoadUserByNumber(number, LocalSettings.TestBenches[i].UsersDBSettings); - if (loadedUser != null) authorized = loadedUser.AuthorizeNumber(number, loginDlg.Password); - break; - } - } - catch - { - authorized = false; - } - - if (settingsChanged && authorized) LocalSettings.Save(); - } - - /// - /// One more attempt: authorisation with Config DB - /// - if (!authorized) - { - /// Load and authorise user from the Config database - try - { - switch (loginDlg.Method) - { - default: - case Config.Entities.LoginMethod.UserName: - loadedUser = Config.Entities.User.LoadUserByName(loginDlg.Alias, LocalSettings.TestBenches[i].ProceduresDBSettings); - if (loadedUser != null) authorized = loadedUser.Authorize(loginDlg.Alias, loginDlg.Password); - break; - case Config.Entities.LoginMethod.FullName: - loadedUser = Config.Entities.User.LoadUserByFullName(loginDlg.Alias, LocalSettings.TestBenches[i].ProceduresDBSettings); - if (loadedUser != null) authorized = loadedUser.AuthorizeFullName(loginDlg.Alias, loginDlg.Password); - break; - case Config.Entities.LoginMethod.Number: - int number; - if (!int.TryParse(loginDlg.Alias, out number)) break; - loadedUser = Config.Entities.User.LoadUserByNumber(number, LocalSettings.TestBenches[i].ProceduresDBSettings); - if (loadedUser != null) authorized = loadedUser.AuthorizeNumber(number, loginDlg.Password); - break; - } - } - catch - { - authorized = false; - } - } - - if (authorized) - { - LocalSettings.LoginMethod = loginDlg.Method; /// Save the login method actually used - - Users.DB.ConnectionString = Config.Data.CurrentBench.WaterMetersDBSettings.ConnectionString; - Users.DB.LoadSharedData(); - - /// This is to trigger an exception in case of a power user and no Config database - IList listOfProcedures = Config.FluentCommon.CreateSession(Config.Entities.DBKind.Config) - .QueryOver() - .List(); - - retryLogin = false; - break; - } - - if (retryLogin) - { - /// Close Fluent NHibernate - MessageBox.Show("Invalid user, password or bench", "Error", MessageBoxButtons.OK); - } - } - catch (Exception) - { - /// Database connect failed, ask what to do - switch ((new DatabaseSettingsDlg().ShowDialog()) - { - case DialogResult.Abort: return; /// Exit program - case DialogResult.Retry: break; /// Retry the loop - default: - /// Open 'DatabaseSetingsDlg' and retry DB connect on OK - if (new Users.Forms.LoginDlg(true).ShowDialog() == DialogResult.Cancel || - new BenchesDlg().ShowDialog() == DialogResult.Cancel) - { - return; /// Exit program - } - Program.LocalSettings = LocalSettings.Load(Program.LocalSettingsFileName); - if (Program.LocalSettings == null) return; /// Fatal error - break; /// Retry the loop - } - } - } // if benchname is OK - } // for all benches in local settings loop - } // not Canceled - } //do - while (retryLogin); - - IList listOfUsers = Config.FluentCommon.CreateSession(Config.Entities.DBKind.Config) - .QueryOver() - .List(); - - Application.Run(new Users.Forms.UserManagementDlg()); + MessageBox.Show("Program havaroval:" + + Environment.NewLine + Environment.NewLine + exc.Message + + ((exc.InnerException == null) ? string.Empty : (Environment.NewLine + exc.InnerException.Message)) + + Environment.NewLine + exc.StackTrace, + "Pozor!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } } } } diff --git a/UserManagement/Properties/AssemblyInfo.cs b/UserManagement/Properties/AssemblyInfo.cs index 52927af7a..c1f11743f 100644 --- a/UserManagement/Properties/AssemblyInfo.cs +++ b/UserManagement/Properties/AssemblyInfo.cs @@ -5,11 +5,11 @@ using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. -[assembly: AssemblyTitle("UsersManagement")] +[assembly: AssemblyTitle("UserManagement")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("UsersManagement")] +[assembly: AssemblyProduct("UserManagement")] [assembly: AssemblyCopyright("Copyright © 2017")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/UserManagement/UserManagement.csproj b/UserManagement/UserManagement.csproj index 636b7c732..3c7083be7 100644 --- a/UserManagement/UserManagement.csproj +++ b/UserManagement/UserManagement.csproj @@ -14,6 +14,21 @@ 512 + false + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 1 + 2.12.497.%2a + false + true x86 @@ -34,10 +49,22 @@ prompt 4 + + UserManagement.Program + ..\packages\FluentNHibernate.2.0.3.0\lib\net40\FluentNHibernate.dll + + ..\packages\Iesi.Collections.4.0.0.4000\lib\net40\Iesi.Collections.dll + + + ..\packages\log4net.2.0.2\lib\net40-full\log4net.dll + + + ..\packages\MySql.Data.6.6.5\lib\net40\MySql.Data.dll + ..\packages\NHibernate.4.0.4.4000\lib\net40\NHibernate.dll @@ -96,15 +123,33 @@ - - {743DF7DB-C7B6-42EB-986D-0F485E5588E4} - Config - {6E5CB0E9-E1B6-4E5D-AC6E-B1049E180F2B} Users + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + +