diff --git a/DDUserManager/DDUserManager/frmMain.vb b/DDUserManager/DDUserManager/frmMain.vb index 615230f..65d020e 100644 --- a/DDUserManager/DDUserManager/frmMain.vb +++ b/DDUserManager/DDUserManager/frmMain.vb @@ -20,84 +20,105 @@ Public Class frmMain Private Shared logger As NLog.Logger = NLog.LogManager.GetCurrentClassLogger() Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load - NLog.LogManager.Configuration = ClassNLog.GetLoggerConfigFor(MODULE_NAME) + Try + NLog.LogManager.Configuration = ClassNLog.GetLoggerConfigFor(MODULE_NAME) - logger.Info("Starting UserManager v" & Application.ProductVersion) - logger.Info($"Current Username: {Environment.UserName}") + logger.Info("Starting UserManager v" & Application.ProductVersion) + logger.Info($"Current Username: {Environment.UserName}") - If InitDatabase() = False Then - MsgBox($"Unexpected error in Database Init(1). {vbCrLf & vbCrLf}Please contact Your admin.", MsgBoxStyle.Critical, "UserManager") - logger.Fatal($"Unexpected error in Database Init(1). {vbCrLf & vbCrLf}Please contact Your admin.") - Application.Exit() - Exit Sub - End If - If MyConnectionString = "" Then - MsgBox($"Unexpected error in Database Init(2). {vbCrLf & vbCrLf}Please contact Your admin.", MsgBoxStyle.Critical, "UserManager") - logger.Fatal($"Unexpected error in Database Init(2). {vbCrLf & vbCrLf}Please contact Your admin.") - Application.Exit() - Exit Sub - End If + If InitDatabase() = False Then + MsgBox($"Unexpected error in Database Init(1). {vbCrLf & vbCrLf}Please contact Your admin.", MsgBoxStyle.Critical, "UserManager") + logger.Fatal($"Unexpected error in Database Init(1). {vbCrLf & vbCrLf}Please contact Your admin.") + Application.Exit() + Exit Sub + End If + If MyConnectionString = "" Then + MsgBox($"Unexpected error in Database Init(2). {vbCrLf & vbCrLf}Please contact Your admin.", MsgBoxStyle.Critical, "UserManager") + logger.Fatal($"Unexpected error in Database Init(2). {vbCrLf & vbCrLf}Please contact Your admin.") + Application.Exit() + Exit Sub + End If - TBDD_CLIENTTableAdapter.Connection.ConnectionString = MyConnectionString - TBDD_CLIENT_USERTableAdapter.Connection.ConnectionString = MyConnectionString - TBDD_GROUPSTableAdapter.Connection.ConnectionString = MyConnectionString - TBDD_GROUPS_CLIENTTableAdapter.Connection.ConnectionString = MyConnectionString - TBDD_GROUPS_MODULESTableAdapter.Connection.ConnectionString = MyConnectionString - TBDD_GROUPS_USERTableAdapter.Connection.ConnectionString = MyConnectionString - TBDD_MODULESTableAdapter.Connection.ConnectionString = MyConnectionString - TBDD_USERTableAdapter.Connection.ConnectionString = MyConnectionString - TBDD_USER_MODULESTableAdapter.Connection.ConnectionString = MyConnectionString + TBDD_CLIENTTableAdapter.Connection.ConnectionString = MyConnectionString + TBDD_CLIENT_USERTableAdapter.Connection.ConnectionString = MyConnectionString + TBDD_GROUPSTableAdapter.Connection.ConnectionString = MyConnectionString + TBDD_GROUPS_CLIENTTableAdapter.Connection.ConnectionString = MyConnectionString + TBDD_GROUPS_MODULESTableAdapter.Connection.ConnectionString = MyConnectionString + TBDD_GROUPS_USERTableAdapter.Connection.ConnectionString = MyConnectionString + TBDD_MODULESTableAdapter.Connection.ConnectionString = MyConnectionString + TBDD_USERTableAdapter.Connection.ConnectionString = MyConnectionString + TBDD_USER_MODULESTableAdapter.Connection.ConnectionString = MyConnectionString + Dim sql = String.Format("SELECT * FROM [dbo].[FNDD_CHECK_USER_MODULE] ('{0}','UM',{1})", Environment.UserName, 1) + Dim DT_CHECKUSER_MODULE As DataTable = clsDatabase.Return_Datatable(sql) - Dim sql = String.Format("SELECT * FROM [dbo].[FNDD_CHECK_USER_MODULE] ('{0}','UM',{1})", Environment.UserName, 1) - Dim DT_CHECKUSER_MODULE As DataTable = clsDatabase.Return_Datatable(sql) + If DT_CHECKUSER_MODULE.Rows.Count = 0 Then + MsgBox($"Der Benutzer '{Environment.UserName}' ist nicht zur Benutzerverwaltung berechtigt. {vbCrLf & vbCrLf}Bitte kontaktieren Sie den Administrator, wenn dies ein Fehler ist.", MsgBoxStyle.Critical, "UserManager") + logger.Warn($"Der Benutzer '{Environment.UserName}' ist nicht zur Benutzerverwaltung berechtigt.") + Application.ExitThread() + End If - If DT_CHECKUSER_MODULE.Rows.Count = 1 Then + Dim firstRow As DataRow = DT_CHECKUSER_MODULE.Rows.Item(0) + Dim userId As Integer = firstRow.Item("USER_ID") + If userId = 0 Then + MsgBox($"Der Benutzer '{Environment.UserName}' ist nicht in der Benutzerverwaltung vorhanden. {vbCrLf & vbCrLf}Bitte kontaktieren Sie den Administrator, wenn dies ein Fehler ist.", MsgBoxStyle.Critical, "UserManager") + logger.Warn($"Der Benutzer '{Environment.UserName}' ist nicht in der Benutzerverwaltung vorhanden.") + Application.ExitThread() + End If - Dim userRow As TBDD_USERRow = GetCurrentUserRow(Environment.UserName) + If DT_CHECKUSER_MODULE.Rows.Count = 1 Then + Dim userRow As TBDD_USERRow = GetCurrentUserRow(Environment.UserName) - tsLabelUser.Text = $"Angemeldeter Benutzer: {Environment.UserName}" - tsLabelVersion.Text = $"Version {Application.ProductVersion}" + If userRow Is Nothing Then - lblADRootNode.Text = String.Format(lblADRootNode.Text, Environment.UserDomainName) - txtADRootNode.Text = ActiveDirectoryRootNode + End If - CurrentUser = userRow - CurrentUserId = userRow.GUID + tsLabelUser.Text = $"Angemeldeter Benutzer: {Environment.UserName}" + tsLabelVersion.Text = $"Version {Application.ProductVersion}" - ' Grunddaten aus Tabellen laden - ' Davon abhängige Daten werden in den `focusedRowChanged`-Events der Grids geladen - LoadData() + lblADRootNode.Text = String.Format(lblADRootNode.Text, Environment.UserDomainName) + txtADRootNode.Text = ActiveDirectoryRootNode - 'Spalten an Inhalte anpassen - gvUsers.BestFitColumns() - viewClients_AllClients.BestFitColumns() - viewGroups_AllGroups.BestFitColumns() + CurrentUser = userRow + CurrentUserId = userRow.GUID - ' Dragdrop Events für Grids anlegen - DragDropManager = New ClassDragDrop() - DragDropManager.AddGridView(viewGroups_AvailableUsers) - DragDropManager.AddGridView(viewGroups_AssignedUsers) - DragDropManager.AddGridView(viewModules_AvailableUsers) - DragDropManager.AddGridView(viewModules_AssignedUsers) - DragDropManager.AddGridView(viewClients_AvailableUsers) - DragDropManager.AddGridView(viewClients_AssignedUsers) - DragDropManager.AddGridView(viewClientsGroups_AssignedGroups) - DragDropManager.AddGridView(viewClientsGroups_AvailableGroups) - DragDropManager.AddGridView(viewModulesGroups_AssignedGroups) - DragDropManager.AddGridView(viewModulesGroups_AvailableGroups) - Else - MsgBox($"Der Benutzer '{Environment.UserName}' ist nicht zur Benutzerverwaltung berechtigt. {vbCrLf & vbCrLf}Bitte kontaktieren Sie den Administrator, wenn dies ein Fehler ist.", MsgBoxStyle.Critical, "UserManager") - logger.Warn($"Der Benutzer '{Environment.UserName}' ist nicht zur Benutzerverwaltung berechtigt.") - Application.Exit() - End If + ' Grunddaten aus Tabellen laden + ' Davon abhängige Daten werden in den `focusedRowChanged`-Events der Grids geladen + LoadData() - If TBDD_USERTableAdapter.IsUserManagerAdmin(Environment.UserName) <> 1 Then - MsgBox($"Der Benutzer '{Environment.UserName}' ist nicht zur Benutzerverwaltung berechtigt. {vbCrLf & vbCrLf}Bitte kontaktieren Sie den Administrator, wenn dies ein Fehler ist.", MsgBoxStyle.Critical, "UserManager") - logger.Warn($"Der Benutzer '{Environment.UserName}' ist nicht zur Benutzerverwaltung berechtigt.") - Application.Exit() - End If + 'Spalten an Inhalte anpassen + gvUsers.BestFitColumns() + viewClients_AllClients.BestFitColumns() + viewGroups_AllGroups.BestFitColumns() + + ' Dragdrop Events für Grids anlegen + DragDropManager = New ClassDragDrop() + DragDropManager.AddGridView(viewGroups_AvailableUsers) + DragDropManager.AddGridView(viewGroups_AssignedUsers) + DragDropManager.AddGridView(viewModules_AvailableUsers) + DragDropManager.AddGridView(viewModules_AssignedUsers) + DragDropManager.AddGridView(viewClients_AvailableUsers) + DragDropManager.AddGridView(viewClients_AssignedUsers) + DragDropManager.AddGridView(viewClientsGroups_AssignedGroups) + DragDropManager.AddGridView(viewClientsGroups_AvailableGroups) + DragDropManager.AddGridView(viewModulesGroups_AssignedGroups) + DragDropManager.AddGridView(viewModulesGroups_AvailableGroups) + Else + MsgBox($"Der Benutzer '{Environment.UserName}' ist nicht zur Benutzerverwaltung berechtigt. {vbCrLf & vbCrLf}Bitte kontaktieren Sie den Administrator, wenn dies ein Fehler ist.", MsgBoxStyle.Critical, "UserManager") + logger.Warn($"Der Benutzer '{Environment.UserName}' ist nicht zur Benutzerverwaltung berechtigt.") + Application.ExitThread() + End If + + If TBDD_USERTableAdapter.IsUserManagerAdmin(Environment.UserName) <> 1 Then + MsgBox($"Der Benutzer '{Environment.UserName}' ist nicht zur Benutzerverwaltung berechtigt. {vbCrLf & vbCrLf}Bitte kontaktieren Sie den Administrator, wenn dies ein Fehler ist.", MsgBoxStyle.Critical, "UserManager") + logger.Warn($"Der Benutzer '{Environment.UserName}' ist nicht zur Benutzerverwaltung berechtigt.") + Application.ExitThread() + End If + Catch ex As Exception + MsgBox("Unexpected Error while loading. Please check the log.", MsgBoxStyle.Critical, "User Manager") + logger.Fatal(ex, "Unexpected Error while loading.") + End Try End Sub Public Function InitDatabase()