diff --git a/DDUserManager/DDUserManager/frmADImport_Users.Designer.vb b/DDUserManager/DDUserManager/frmADImport_Users.Designer.vb index 9a31e8d..ea52632 100644 --- a/DDUserManager/DDUserManager/frmADImport_Users.Designer.vb +++ b/DDUserManager/DDUserManager/frmADImport_Users.Designer.vb @@ -37,6 +37,7 @@ Partial Class frmADImport_Users Me.colEMAIL = New DevExpress.XtraGrid.Columns.GridColumn() Me.Panel1 = New System.Windows.Forms.Panel() Me.btnImport = New System.Windows.Forms.Button() + Me.colGroupName = New DevExpress.XtraGrid.Columns.GridColumn() CType(Me.gridAD_Groups, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.viewAD_Groups, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.gridAD_Users, System.ComponentModel.ISupportInitialize).BeginInit() @@ -58,6 +59,7 @@ Partial Class frmADImport_Users ' 'viewAD_Groups ' + Me.viewAD_Groups.Columns.AddRange(New DevExpress.XtraGrid.Columns.GridColumn() {Me.colGroupName}) Me.viewAD_Groups.GridControl = Me.gridAD_Groups Me.viewAD_Groups.Name = "viewAD_Groups" Me.viewAD_Groups.OptionsBehavior.Editable = False @@ -164,6 +166,15 @@ Partial Class frmADImport_Users Me.btnImport.Text = "Import starten" Me.btnImport.UseVisualStyleBackColor = True ' + 'colGroupName + ' + Me.colGroupName.Caption = "Gruppe" + Me.colGroupName.FieldName = "Name" + Me.colGroupName.Name = "colGroupName" + Me.colGroupName.UnboundType = DevExpress.Data.UnboundColumnType.[String] + Me.colGroupName.Visible = True + Me.colGroupName.VisibleIndex = 0 + ' 'frmADImport_Users ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -199,4 +210,5 @@ Partial Class frmADImport_Users Friend WithEvents colSELECTED As DevExpress.XtraGrid.Columns.GridColumn Friend WithEvents btnImport As Button Friend WithEvents Panel1 As Panel + Friend WithEvents colGroupName As DevExpress.XtraGrid.Columns.GridColumn End Class diff --git a/DDUserManager/DDUserManager/frmADImport_Users.vb b/DDUserManager/DDUserManager/frmADImport_Users.vb index e93fc28..a6d3b04 100644 --- a/DDUserManager/DDUserManager/frmADImport_Users.vb +++ b/DDUserManager/DDUserManager/frmADImport_Users.vb @@ -18,7 +18,8 @@ Public Class frmADImport_Users Dim oGroups = activeDirectory.ListGroups(MyConfig.Config.AdGroupFilter) - gridAD_Groups.DataSource = oGroups.Select(Function(g) g.SAMAccountName) + 'gridAD_Groups.DataSource = oGroups.Select(Function(g) g.SAMAccountName) + gridAD_Groups.DataSource = oGroups viewAD_Groups.Columns.Item(0).Caption = "Gruppe" Catch ex As Exception logger.Error(ex, $"Error while loading initial groups") @@ -27,29 +28,38 @@ Public Class frmADImport_Users End Sub Private Sub gridADGroups_FocusedRowChanged(sender As Object, e As DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs) Handles viewAD_Groups.FocusedRowChanged - Dim groupName As String = viewAD_Groups.GetRow(e.FocusedRowHandle) + Dim oGroup As ADGroup = Nothing Try - Dim oUsers = activeDirectory.ListUsers(groupName, MyConfig.Config.AdUserFilter) - - UserDataSet.TBLOCAL_ADUSERS.Clear() - - For Each user As ADUser In oUsers - Dim row As TBLOCAL_ADUSERSRow = UserDataSet.TBLOCAL_ADUSERS.NewTBLOCAL_ADUSERSRow() - - row.NAME = user.Surname - row.PRENAME = user.GivenName - row.USERNAME = user.samAccountName - row.EMAIL = user.Email - - UserDataSet.TBLOCAL_ADUSERS.AddTBLOCAL_ADUSERSRow(row) - Next - - TBLOCAL_ADUSERSBindingSource.DataSource = UserDataSet.TBLOCAL_ADUSERS + oGroup = viewAD_Groups.GetRow(e.FocusedRowHandle) Catch ex As Exception - logger.Error(ex, $"Error while loading users for group {groupName}") - MsgBox($"Error while loading users for group {groupName}") + logger.Error(ex, $"Error while loading focused group") + MsgBox($"Error while loading focused group", MsgBoxStyle.Critical, Text) End Try + + If Not IsNothing(oGroup) Then + Try + Dim oUsers = activeDirectory.ListUsers(oGroup.Name, MyConfig.Config.AdUserFilter) + + UserDataSet.TBLOCAL_ADUSERS.Clear() + + For Each user As ADUser In oUsers + Dim row As TBLOCAL_ADUSERSRow = UserDataSet.TBLOCAL_ADUSERS.NewTBLOCAL_ADUSERSRow() + + row.NAME = user.Surname + row.PRENAME = user.GivenName + row.USERNAME = user.samAccountName + row.EMAIL = user.Email + + UserDataSet.TBLOCAL_ADUSERS.AddTBLOCAL_ADUSERSRow(row) + Next + + TBLOCAL_ADUSERSBindingSource.DataSource = UserDataSet.TBLOCAL_ADUSERS + Catch ex As Exception + logger.Error(ex, $"Error while loading users for group {oGroup.Name}") + MsgBox($"Error while loading users for group {oGroup.Name}") + End Try + End If End Sub Private Sub btnImport_Click(sender As Object, e As EventArgs) Handles btnImport.Click