diff --git a/DDUserManager/DDUserManager/ClassActiveDirectory.vb b/DDUserManager/DDUserManager/ClassActiveDirectory.vb deleted file mode 100644 index 8138932..0000000 --- a/DDUserManager/DDUserManager/ClassActiveDirectory.vb +++ /dev/null @@ -1,230 +0,0 @@ -Imports System.DirectoryServices -Imports System.DirectoryServices.AccountManagement - -Public Class ClassActiveDirectory - Private Shared logger As NLog.Logger = NLog.LogManager.GetCurrentClassLogger() - - Private Shared excludedGroupNames As New List(Of String) From { - "Abgelehnte", - "DHCP", - "Distributed COM", - "Dns", - "Domänen-Gäste", - "Domänencomput", - "Domänencontroller", - "Druck", - "Einstellungen eingehender", - "Erstellungen", - "Ereignis", - "Gäst", - "Hyper-V", - "IIS_", - "Klonbare", - "Konten-Oper", - "Kryptografie", - "Leistungs", - "Netzwerkskon", - "PrivUser", - "Protected User", - "Prä-Windows", - "RAS- und IAS-Server", - "RDS-", - "Remoteverwaltungs", - "Replikations", - "Reporting", - "Richtlinien-Ersteller", - "SQLAccess", - "Schreibgeschützte Domänen", - "Schlüsseladministratoren", - "Server-Operatore", - "Sicherungs", - "Storage", - "System Managed", - "Terminalserver-Liz", - "WinRMR", - "Windows-Auth", - "Unternehme", - "Zertifikat", - "Zugriffssteuerungs", - "Zulässige" - } - - Public Class GroupResult - Public SAMAccountName As String - Public ObjectClass As String - Public CN As String - Public Description As String - Public DistinguishedName As String - Public Name As String - Public ObjectCategory As String - - Public Overrides Function ToString() As String - Return $"SAMAccountName={SAMAccountName}, ObjectClass={ObjectClass}, CN={CN}, Description={Description}, DistinguishedName={DistinguishedName}, Name={Name}, ObjectCategory={ObjectCategory}" - End Function - End Class - - Public Shared Function ConnectionTest(path As String) - Try - Dim de As New DirectoryEntry(path) - de.Username = Nothing - de.Password = Nothing - de.AuthenticationType = AuthenticationTypes.Secure - de.RefreshCache() - - Return True - Catch ex As Exception - MsgBox($"Verbindungstest fehlgeschlagen. Bitte überprüfen sie den ActiveDirectory Pfad. Der zurückgelieferte Fehler lautet:{vbCrLf}{ex.Message}", MsgBoxStyle.Exclamation) - logger.Error(ex, $"Connection Test failed for path '{path}'") - Return False - End Try - End Function - - Private Shared Function GetDirectoryEntry() - Dim de As New DirectoryEntry(ActiveDirectoryRootNode) - de.Username = Nothing - de.Password = Nothing - de.AuthenticationType = AuthenticationTypes.Secure - - Return de - End Function - - Public Shared Function GetDirectorySearch(rootNode As DirectoryEntry) As DirectorySearcher - Dim dirEntry As DirectoryEntry = GetDirectoryEntry() - Dim dirSearcher As DirectorySearcher = New DirectorySearcher(dirEntry) - Return dirSearcher - End Function - - Public Shared Function GetActiveDirectoryGroups(Optional query As String = "(&(objectClass=group) (samAccountName=*))") As List(Of GroupResult) - Dim groups As New List(Of GroupResult) - Dim deSearch = GetDirectorySearch(GetDirectoryEntry()) - - deSearch.SearchScope = SearchScope.Subtree - deSearch.Filter = query - deSearch.SizeLimit = 50000 - - Dim results As SearchResultCollection = deSearch.FindAll() - For Each r As SearchResult In results - Try - Dim groupName, objectClass, cn, description, distinguishedName, name, objectCategory As String - Try - groupName = r.Properties.Item("samaccountname").Item(0) - Catch ex As Exception - logger.Error(ex) - groupName = "" - End Try - Try - objectClass = r.Properties.Item("objectClass").Item(0) - Catch ex As Exception - logger.Error(ex) - objectClass = "" - End Try - Try - cn = r.Properties.Item("cn").Item(0) - Catch ex As Exception - logger.Error(ex) - cn = "" - End Try - Try - description = r.Properties.Item("description").Item(0) - Catch ex As Exception - logger.Error(ex) - description = "" - End Try - Try - distinguishedName = r.Properties.Item("distinguishedName").Item(0) - Catch ex As Exception - logger.Error(ex) - distinguishedName = "" - End Try - Try - name = r.Properties.Item("name").Item(0) - Catch ex As Exception - logger.Error(ex) - name = "" - End Try - Try - objectCategory = r.Properties.Item("objectCategory").Item(0) - Catch ex As Exception - logger.Error(ex) - objectCategory = "" - End Try - - 'If Not String.IsNullOrEmpty(groupName) Then - ' Dim isExcluded = excludedGroupNames.Where(Function(excludedGroup) - ' Return (groupName.Contains(excludedGroup) Or groupName.StartsWith(excludedGroup)) - ' End Function).Any() - - ' If Not isExcluded Then - ' groups.Add(New GroupResult() With { - ' .SAMAccountName = groupName, - ' .CN = cn, - ' .Description = description, - ' .DistinguishedName = distinguishedName, - ' .Name = name, - ' .ObjectCategory = objectCategory, - ' .ObjectClass = objectClass - ' }) - ' End If - 'End If - - logger.Info("Adding Group '{0}'", groupName) - - 'If Not String.IsNullOrEmpty(groupName) Then - groups.Add(New GroupResult() With { - .SAMAccountName = groupName, - .CN = cn, - .Description = description, - .DistinguishedName = distinguishedName, - .Name = name, - .ObjectCategory = objectCategory, - .ObjectClass = objectClass - }) - 'End If - - Catch ex As Exception - logger.Error(ex) - Continue For - End Try - Next - - Return groups - End Function - - Public Shared Function GetActiveDirectoryUsersForGroup(groupName As String) As List(Of ADUser) - 'Dim users As New List(Of UserPrincipal) - Dim users As New List(Of ADUser) - - Using context As New PrincipalContext(ContextType.Domain) - Using group As GroupPrincipal = GroupPrincipal.FindByIdentity(context, IdentityType.Name, groupName) - Using members = group.GetMembers(True) - - For Each member As UserPrincipal In members - If TypeOf member Is UserPrincipal Then - 'users.Add(member) - - users.Add(New ADUser() With { - .Username = member.SamAccountName, - .Surname = member.Surname, - .GivenName = member.GivenName, - .MiddleName = member.MiddleName, - .Email = member.EmailAddress - }) - End If - Next - - End Using - End Using - End Using - - Return users - End Function - - Public Class ADUser - Public Username As String - Public Surname As String - Public GivenName As String - Public MiddleName As String - Public Email As String - Public Path As String - End Class -End Class diff --git a/DDUserManager/DDUserManager/DDUserManager.vbproj b/DDUserManager/DDUserManager/DDUserManager.vbproj index c4fbbd6..2db510a 100644 --- a/DDUserManager/DDUserManager/DDUserManager.vbproj +++ b/DDUserManager/DDUserManager/DDUserManager.vbproj @@ -51,14 +51,15 @@ user.ico - - - - - - - - + + + + + + + + + ..\..\..\DDMonorepo\Modules.Config\bin\Debug\DigitalData.Modules.Config.dll @@ -108,7 +109,6 @@ - @@ -117,10 +117,16 @@ True DS_ChangeS.xsd - - frmADDebug.vb + + frmADDebug_Groups.vb - + + Form + + + frmADDebug_Users.vb + + Form @@ -175,8 +181,11 @@ - - frmADDebug.vb + + frmADDebug_Groups.vb + + + frmADDebug_Users.vb frmConfigDatabase.vb diff --git a/DDUserManager/DDUserManager/DDUserManager.vbproj.bak b/DDUserManager/DDUserManager/DDUserManager.vbproj.bak new file mode 100644 index 0000000..0f423b1 --- /dev/null +++ b/DDUserManager/DDUserManager/DDUserManager.vbproj.bak @@ -0,0 +1,297 @@ + + + + + Debug + AnyCPU + {87122913-C196-46BC-A7CD-27F7E201E55F} + WinExe + DDUserManager.My.MyApplication + DDUserManager + DDUserManager + 512 + WindowsForms + v4.6.1 + true + + + + AnyCPU + true + full + true + true + bin\Debug\ + DDUserManager.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + AnyCPU + pdbonly + false + true + true + bin\Release\ + DDUserManager.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + On + + + Binary + + + Off + + + On + + + user.ico + + + + + + + + + + + + + + + + + + + ..\..\..\DDMonorepo\Modules.Config\bin\Debug\DigitalData.Modules.Config.dll + + + ..\..\..\DDMonorepo\Modules.Database\bin\Debug\DigitalData.Modules.Database.dll + + + ..\..\..\DDMonorepo\Modules.Filesystem\bin\Debug\DigitalData.Modules.Filesystem.dll + + + ..\..\..\DDMonorepo\Modules.Interfaces\bin\Debug\DigitalData.Modules.Interfaces.dll + + + ..\..\..\DDMonorepo\Modules.Logging\bin\Debug\DigitalData.Modules.Logging.dll + + + P:\Visual Studio Projekte\Bibliotheken\NLog\NLog.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + True + True + DS_ChangeS.xsd + + + frmADDebug_Groups.vb + + + Form + + + frmADDebug_Users.vb + + + Form + + + frmConfigDatabase.vb + + + Form + + + frmADImport_Groups.vb + + + Form + + + frmADImport_Users.vb + + + Form + + + Form + + + frmMain.vb + Form + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + True + True + UserDataSet.xsd + + + UserDataSet.xsd + + + + + frmADDebug_Groups.vb + + + frmADDebug_Users.vb + + + frmConfigDatabase.vb + + + frmADImport_Groups.vb + + + frmADImport_Users.vb + + + frmMain.vb + Designer + + + + VbMyResourcesResXFileCodeGenerator + My.Resources + Designer + Resources.Designer.vb + + + + + DS_ChangeS.xsd + + + Designer + MSDataSetGenerator + DS_ChangeS.Designer.vb + + + DS_ChangeS.xsd + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + UserDataSet.xsd + + + Designer + MSDataSetGenerator + UserDataSet.Designer.vb + + + UserDataSet.xsd + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/DDUserManager/DDUserManager/My Project/licenses.licx b/DDUserManager/DDUserManager/My Project/licenses.licx index 4308626..824a99f 100644 --- a/DDUserManager/DDUserManager/My Project/licenses.licx +++ b/DDUserManager/DDUserManager/My Project/licenses.licx @@ -1 +1 @@ -DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/DDUserManager/DDUserManager/My Project/licenses.licx.bak b/DDUserManager/DDUserManager/My Project/licenses.licx.bak new file mode 100644 index 0000000..4308626 --- /dev/null +++ b/DDUserManager/DDUserManager/My Project/licenses.licx.bak @@ -0,0 +1 @@ +DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/DDUserManager/DDUserManager/UserConfig.vb b/DDUserManager/DDUserManager/UserConfig.vb index 0253d7e..6db245b 100644 --- a/DDUserManager/DDUserManager/UserConfig.vb +++ b/DDUserManager/DDUserManager/UserConfig.vb @@ -1,11 +1,11 @@ Imports DigitalData.Modules.Config -Imports DigitalData.Modules.Filesystem +Imports DigitalData.Modules.Interfaces Public Class UserConfig Public Property ConnectionString As String = "" Public Property LogErrorsOnly As Boolean = True - Public Property AdGroupFilter As String = "(&(objectClass=group) (samAccountName=*))" - Public Property AdUserFilter As String = "" - Public Property ActiveDirectoryRootNode As String = $"LDAP://{Environment.UserDomainName}" + Public Property AdGroupFilter As String = ActiveDirectoryInterface.DEFAULT_GROUP_FILTER + Public Property AdUserFilter As String = ActiveDirectoryInterface.DEFAULT_USER_FILTER + Public Property AdRootPath As String = $"LDAP://{Environment.UserDomainName}" End Class diff --git a/DDUserManager/DDUserManager/frmADDebug.vb b/DDUserManager/DDUserManager/frmADDebug.vb deleted file mode 100644 index 82f1ade..0000000 --- a/DDUserManager/DDUserManager/frmADDebug.vb +++ /dev/null @@ -1,17 +0,0 @@ -Imports DDUserManager.ClassActiveDirectory - -Public Class frmADDebug - Public Property DebugData As List(Of GroupResult) - - Private Sub frmADDebug_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Dim table As New UserDataSet.TBLOCAL_DEBUG_GROUPSDataTable() - - For Each group In DebugData - table.AddTBLOCAL_DEBUG_GROUPSRow(group.SAMAccountName, group.CN, group.ObjectClass, group.ObjectCategory, group.Description, group.DistinguishedName, group.Name) - Next - - - Me.Text = $"{table.Rows.Count} Gruppen" - GridControl1.DataSource = table - End Sub -End Class \ No newline at end of file diff --git a/DDUserManager/DDUserManager/frmADDebug.Designer.vb b/DDUserManager/DDUserManager/frmADDebug_Groups.Designer.vb similarity index 80% rename from DDUserManager/DDUserManager/frmADDebug.Designer.vb rename to DDUserManager/DDUserManager/frmADDebug_Groups.Designer.vb index b06fb40..b205ea5 100644 --- a/DDUserManager/DDUserManager/frmADDebug.Designer.vb +++ b/DDUserManager/DDUserManager/frmADDebug_Groups.Designer.vb @@ -1,9 +1,9 @@ - _ -Partial Class frmADDebug + +Partial Class frmADDebug_Groups Inherits System.Windows.Forms.Form 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) Try If disposing AndAlso components IsNot Nothing Then @@ -20,7 +20,7 @@ Partial Class frmADDebug 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. - _ + Private Sub InitializeComponent() Me.GridControl1 = New DevExpress.XtraGrid.GridControl() Me.GridView1 = New DevExpress.XtraGrid.Views.Grid.GridView() @@ -34,8 +34,8 @@ Partial Class frmADDebug Me.GridControl1.Location = New System.Drawing.Point(0, 0) Me.GridControl1.MainView = Me.GridView1 Me.GridControl1.Name = "GridControl1" - Me.GridControl1.Size = New System.Drawing.Size(800, 450) - Me.GridControl1.TabIndex = 1 + Me.GridControl1.Size = New System.Drawing.Size(284, 261) + Me.GridControl1.TabIndex = 0 Me.GridControl1.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView1}) ' 'GridView1 @@ -43,14 +43,11 @@ Partial Class frmADDebug Me.GridView1.GridControl = Me.GridControl1 Me.GridView1.Name = "GridView1" ' - 'frmADDebug + 'frmADDebug_Groups ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(800, 450) + Me.ClientSize = New System.Drawing.Size(284, 261) Me.Controls.Add(Me.GridControl1) - Me.Name = "frmADDebug" - Me.Text = "frmADDebug" + Me.Name = "frmADDebug_Groups" CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.GridView1, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) diff --git a/DDUserManager/DDUserManager/frmADDebug.resx b/DDUserManager/DDUserManager/frmADDebug_Groups.resx similarity index 100% rename from DDUserManager/DDUserManager/frmADDebug.resx rename to DDUserManager/DDUserManager/frmADDebug_Groups.resx diff --git a/DDUserManager/DDUserManager/frmADDebug_Groups.vb b/DDUserManager/DDUserManager/frmADDebug_Groups.vb new file mode 100644 index 0000000..a329d5b --- /dev/null +++ b/DDUserManager/DDUserManager/frmADDebug_Groups.vb @@ -0,0 +1,18 @@ +Imports DigitalData.Modules.Interfaces + +Public Class frmADDebug_Groups + Public Property DebugData As List(Of ADGroup) + + Private Sub frmADDebug_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Dim table As New UserDataSet.TBLOCAL_DEBUG_GROUPSDataTable() + + For Each oGroup In DebugData + table.AddTBLOCAL_DEBUG_GROUPSRow(oGroup.SAMAccountName, oGroup.CN, oGroup.ObjectClass, oGroup.ObjectCategory, oGroup.Description, oGroup.DistinguishedName, oGroup.Name) + Next + + Text = $"{table.Rows.Count} Gruppen" + TopMost = True + + GridControl1.DataSource = table + End Sub +End Class \ No newline at end of file diff --git a/DDUserManager/DDUserManager/frmADDebug_Users.Designer.vb b/DDUserManager/DDUserManager/frmADDebug_Users.Designer.vb new file mode 100644 index 0000000..fc7c7a2 --- /dev/null +++ b/DDUserManager/DDUserManager/frmADDebug_Users.Designer.vb @@ -0,0 +1,59 @@ + +Partial Class frmADDebug_Users + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + + Private Sub InitializeComponent() + Me.GridControl1 = New DevExpress.XtraGrid.GridControl() + Me.GridView1 = New DevExpress.XtraGrid.Views.Grid.GridView() + CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.GridView1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'GridControl1 + ' + Me.GridControl1.Dock = System.Windows.Forms.DockStyle.Fill + Me.GridControl1.Location = New System.Drawing.Point(0, 0) + Me.GridControl1.MainView = Me.GridView1 + Me.GridControl1.Name = "GridControl1" + Me.GridControl1.Size = New System.Drawing.Size(284, 261) + Me.GridControl1.TabIndex = 0 + Me.GridControl1.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView1}) + ' + 'GridView1 + ' + Me.GridView1.GridControl = Me.GridControl1 + Me.GridView1.Name = "GridView1" + ' + 'frmADDebug_Users + ' + Me.ClientSize = New System.Drawing.Size(284, 261) + Me.Controls.Add(Me.GridControl1) + Me.Name = "frmADDebug_Users" + CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.GridView1, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + + Friend WithEvents GridControl1 As DevExpress.XtraGrid.GridControl + Friend WithEvents GridView1 As DevExpress.XtraGrid.Views.Grid.GridView +End Class diff --git a/DDUserManager/DDUserManager/frmADDebug_Users.resx b/DDUserManager/DDUserManager/frmADDebug_Users.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/DDUserManager/DDUserManager/frmADDebug_Users.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/DDUserManager/DDUserManager/frmADDebug_Users.vb b/DDUserManager/DDUserManager/frmADDebug_Users.vb new file mode 100644 index 0000000..8598596 --- /dev/null +++ b/DDUserManager/DDUserManager/frmADDebug_Users.vb @@ -0,0 +1,18 @@ +Imports DigitalData.Modules.Interfaces + +Public Class frmADDebug_Users + Public Property DebugData As List(Of ADUser) + + Private Sub frmADDebug_Users_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Dim table As New UserDataSet.TBLOCAL_ADUSERSDataTable() + + For Each oUser In DebugData + table.AddTBLOCAL_ADUSERSRow(oUser.samAccountName, oUser.GivenName, oUser.Surname, oUser.Email) + Next + + Text = $"{table.Rows.Count} Benutzer" + TopMost = True + + GridControl1.DataSource = table + End Sub +End Class \ No newline at end of file diff --git a/DDUserManager/DDUserManager/frmADImport_Groups.vb b/DDUserManager/DDUserManager/frmADImport_Groups.vb index 18a5eac..b0d2924 100644 --- a/DDUserManager/DDUserManager/frmADImport_Groups.vb +++ b/DDUserManager/DDUserManager/frmADImport_Groups.vb @@ -1,23 +1,26 @@ Imports DevExpress.XtraGrid.Views.Grid Imports DigitalData.Modules.Logging +Imports DigitalData.Modules.Interfaces Public Class frmADImport_Groups Private logger As Logger Private data As ClassData + Private activeDirectory As ActiveDirectoryInterface Private Sub frmADImport_Groups_Load(sender As Object, e As EventArgs) Handles MyBase.Load Try logger = MyLogConfig.GetLogger() data = New ClassData(MyLogConfig, MyDatabase) + activeDirectory = New ActiveDirectoryInterface(MyLogConfig, MyConfig.Config.AdRootPath) - Dim groups = ClassActiveDirectory.GetActiveDirectoryGroups(My.Settings.AD_GROUP_QUERY) + Dim oGroups = activeDirectory.ListGroups(MyConfig.Config.AdGroupFilter) - logger.Info("Found {0} groups", groups.Count) + logger.Info("Found {0} groups", oGroups.Count) UserDataSet.TBLOCAL_ADGROUPS.Clear() - For Each group As ClassActiveDirectory.GroupResult In groups - UserDataSet.TBLOCAL_ADGROUPS.AddTBLOCAL_ADGROUPSRow(group.SAMAccountName) + For Each oGroup As ADGroup In oGroups + UserDataSet.TBLOCAL_ADGROUPS.AddTBLOCAL_ADGROUPSRow(oGroup.SAMAccountName) Next lbGroupsCount.Text = String.Format(lbGroupsCount.Text, UserDataSet.TBLOCAL_ADGROUPS.Rows.Count) diff --git a/DDUserManager/DDUserManager/frmADImport_Users.vb b/DDUserManager/DDUserManager/frmADImport_Users.vb index d425640..e93fc28 100644 --- a/DDUserManager/DDUserManager/frmADImport_Users.vb +++ b/DDUserManager/DDUserManager/frmADImport_Users.vb @@ -1,23 +1,24 @@ Imports DDUserManager.UserDataSet Imports DevExpress.XtraGrid.Views.Grid +Imports DigitalData.Modules.Interfaces Imports DigitalData.Modules.Logging Public Class frmADImport_Users Private logger As Logger Private data As ClassData + Private activeDirectory As ActiveDirectoryInterface Private Sub frmADImport_Load(sender As Object, e As EventArgs) Handles MyBase.Load Try logger = MyLogConfig.GetLogger() data = New ClassData(MyLogConfig, MyDatabase) + activeDirectory = New ActiveDirectoryInterface(MyLogConfig, MyConfig.Config.AdRootPath) - Dim groups = ClassActiveDirectory.GetActiveDirectoryGroups(My.Settings.AD_GROUP_QUERY) + Dim oGroups = activeDirectory.ListGroups(MyConfig.Config.AdGroupFilter) - gridAD_Groups.DataSource = groups.Select(Of String)(Function(g) - Return g.SAMAccountName - End Function) + gridAD_Groups.DataSource = oGroups.Select(Function(g) g.SAMAccountName) viewAD_Groups.Columns.Item(0).Caption = "Gruppe" Catch ex As Exception logger.Error(ex, $"Error while loading initial groups") @@ -29,16 +30,16 @@ Public Class frmADImport_Users Dim groupName As String = viewAD_Groups.GetRow(e.FocusedRowHandle) Try - Dim usersForGroup As List(Of ClassActiveDirectory.ADUser) = ClassActiveDirectory.GetActiveDirectoryUsersForGroup(groupName) + Dim oUsers = activeDirectory.ListUsers(groupName, MyConfig.Config.AdUserFilter) UserDataSet.TBLOCAL_ADUSERS.Clear() - For Each user As ClassActiveDirectory.ADUser In usersForGroup + 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.Username + row.USERNAME = user.samAccountName row.EMAIL = user.Email UserDataSet.TBLOCAL_ADUSERS.AddTBLOCAL_ADUSERSRow(row) diff --git a/DDUserManager/DDUserManager/frmMain.Designer.vb b/DDUserManager/DDUserManager/frmMain.Designer.vb index 332d324..9d821aa 100644 --- a/DDUserManager/DDUserManager/frmMain.Designer.vb +++ b/DDUserManager/DDUserManager/frmMain.Designer.vb @@ -22,7 +22,6 @@ Partial Class frmMain 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. Private Sub InitializeComponent() - Me.components = New System.ComponentModel.Container() Dim GUIDLabel As System.Windows.Forms.Label Dim PRENAMELabel As System.Windows.Forms.Label Dim NAMELabel As System.Windows.Forms.Label @@ -63,7 +62,7 @@ Partial Class frmMain Me.Label8 = New System.Windows.Forms.Label() Me.Label4 = New System.Windows.Forms.Label() Me.LANGUAGEComboBox = New System.Windows.Forms.ComboBox() - Me.TBDD_USERBindingSource = New System.Windows.Forms.BindingSource(Me.components) + Me.TBDD_USERBindingSource = New System.Windows.Forms.BindingSource() Me.UserDataSet = New DDUserManager.UserDataSet() Me.DATE_FORMATComboBox = New System.Windows.Forms.ComboBox() Me.TextBox2 = New System.Windows.Forms.TextBox() @@ -80,12 +79,12 @@ Partial Class frmMain Me.Label12 = New System.Windows.Forms.Label() Me.Label1 = New System.Windows.Forms.Label() Me.listModules = New System.Windows.Forms.ListBox() - Me.TBDD_MODULESBindingSource = New System.Windows.Forms.BindingSource(Me.components) + Me.TBDD_MODULESBindingSource = New System.Windows.Forms.BindingSource() Me.listGroups = New System.Windows.Forms.ListBox() - Me.TBDD_GROUPSBindingSource = New System.Windows.Forms.BindingSource(Me.components) + Me.TBDD_GROUPSBindingSource = New System.Windows.Forms.BindingSource() Me.Label2 = New System.Windows.Forms.Label() Me.listClients = New System.Windows.Forms.ListBox() - Me.TBDD_CLIENTBindingSource = New System.Windows.Forms.BindingSource(Me.components) + Me.TBDD_CLIENTBindingSource = New System.Windows.Forms.BindingSource() Me.GridUsers = New DevExpress.XtraGrid.GridControl() Me.gvUsers = New DevExpress.XtraGrid.Views.Grid.GridView() Me.colPRENAME = New DevExpress.XtraGrid.Columns.GridColumn() @@ -117,7 +116,7 @@ Partial Class frmMain Me.labelGroups_AssignedUsers = New System.Windows.Forms.Label() Me.Panel1 = New System.Windows.Forms.Panel() Me.gridGroups_AllGroups = New DevExpress.XtraGrid.GridControl() - Me.TBDD_GROUPSBindingSource1 = New System.Windows.Forms.BindingSource(Me.components) + Me.TBDD_GROUPSBindingSource1 = New System.Windows.Forms.BindingSource() Me.DS_ChangeS = New DDUserManager.DS_ChangeS() Me.viewGroups_AllGroups = New DevExpress.XtraGrid.Views.Grid.GridView() Me.colNAME2 = New DevExpress.XtraGrid.Columns.GridColumn() @@ -178,7 +177,7 @@ Partial Class frmMain Me.GridColumn11 = New DevExpress.XtraGrid.Columns.GridColumn() Me.GridColumn12 = New DevExpress.XtraGrid.Columns.GridColumn() Me.Label9 = New System.Windows.Forms.Label() - Me.TBDD_USERBindingNavigator = New System.Windows.Forms.BindingNavigator(Me.components) + Me.TBDD_USERBindingNavigator = New System.Windows.Forms.BindingNavigator() Me.BindingNavigatorAddNewItem = New System.Windows.Forms.ToolStripButton() Me.BindingNavigatorCountItem = New System.Windows.Forms.ToolStripLabel() Me.BindingNavigatorMoveFirstItem = New System.Windows.Forms.ToolStripButton() @@ -257,7 +256,7 @@ Partial Class frmMain Me.colNAME10 = New DevExpress.XtraGrid.Columns.GridColumn() Me.colSHORT_NAME = New DevExpress.XtraGrid.Columns.GridColumn() Me.Label16 = New System.Windows.Forms.Label() - Me.TBDD_GROUPSBindingNavigator = New System.Windows.Forms.BindingNavigator(Me.components) + Me.TBDD_GROUPSBindingNavigator = New System.Windows.Forms.BindingNavigator() Me.BindingNavigatorCountItem1 = New System.Windows.Forms.ToolStripLabel() Me.BindingNavigatorDeleteItem1 = New System.Windows.Forms.ToolStripButton() Me.BindingNavigatorMoveFirstItem1 = New System.Windows.Forms.ToolStripButton() @@ -288,7 +287,7 @@ Partial Class frmMain Me.GridColumn1 = New DevExpress.XtraGrid.Columns.GridColumn() Me.GridColumn7 = New DevExpress.XtraGrid.Columns.GridColumn() Me.GridColumn6 = New DevExpress.XtraGrid.Columns.GridColumn() - Me.TBDD_CLIENTBindingNavigator = New System.Windows.Forms.BindingNavigator(Me.components) + Me.TBDD_CLIENTBindingNavigator = New System.Windows.Forms.BindingNavigator() Me.BindingNavigatorAddNewItem2 = New System.Windows.Forms.ToolStripButton() Me.BindingNavigatorCountItem2 = New System.Windows.Forms.ToolStripLabel() Me.BindingNavigatorDeleteItem2 = New System.Windows.Forms.ToolStripButton() @@ -313,7 +312,7 @@ Partial Class frmMain Me.GridColumn8 = New DevExpress.XtraGrid.Columns.GridColumn() Me.GridColumn9 = New DevExpress.XtraGrid.Columns.GridColumn() Me.GridColumn10 = New DevExpress.XtraGrid.Columns.GridColumn() - Me.TBDD_MODULESBindingNavigator = New System.Windows.Forms.BindingNavigator(Me.components) + Me.TBDD_MODULESBindingNavigator = New System.Windows.Forms.BindingNavigator() Me.BindingNavigatorCountItem3 = New System.Windows.Forms.ToolStripLabel() Me.BindingNavigatorMoveFirstItem3 = New System.Windows.Forms.ToolStripButton() Me.BindingNavigatorMovePreviousItem3 = New System.Windows.Forms.ToolStripButton() @@ -326,7 +325,12 @@ Partial Class frmMain Me.tabPageRights = New DevExpress.XtraTab.XtraTabPage() Me.tabPageSettings = New DevExpress.XtraTab.XtraTabPage() Me.Button2 = New System.Windows.Forms.Button() + Me.GroupBox3 = New System.Windows.Forms.GroupBox() + Me.Label20 = New System.Windows.Forms.Label() + Me.Button4 = New System.Windows.Forms.Button() + Me.txtLDAPUserQuery = New System.Windows.Forms.TextBox() Me.GroupBox2 = New System.Windows.Forms.GroupBox() + Me.Button3 = New System.Windows.Forms.Button() Me.btnDebugGroupQuery = New System.Windows.Forms.Button() Me.txtLDAPGroupQuery = New System.Windows.Forms.TextBox() Me.GroupBox1 = New System.Windows.Forms.GroupBox() @@ -336,14 +340,14 @@ Partial Class frmMain Me.btnOpenLogDir = New System.Windows.Forms.Button() Me.btnOpenConfigDir = New System.Windows.Forms.Button() Me.btnConfigConnections = New System.Windows.Forms.Button() - Me.TBDD_GROUPS_USERBindingSource = New System.Windows.Forms.BindingSource(Me.components) + Me.TBDD_GROUPS_USERBindingSource = New System.Windows.Forms.BindingSource() Me.TBDD_USERTableAdapter = New DDUserManager.UserDataSetTableAdapters.TBDD_USERTableAdapter() Me.TableAdapterManager = New DDUserManager.UserDataSetTableAdapters.TableAdapterManager() - Me.TBDD_CLIENT_USERBindingSource = New System.Windows.Forms.BindingSource(Me.components) + Me.TBDD_CLIENT_USERBindingSource = New System.Windows.Forms.BindingSource() Me.TBDD_CLIENT_USERTableAdapter = New DDUserManager.UserDataSetTableAdapters.TBDD_CLIENT_USERTableAdapter() Me.TBDD_CLIENTTableAdapter = New DDUserManager.UserDataSetTableAdapters.TBDD_CLIENTTableAdapter() Me.TBDD_MODULESTableAdapter = New DDUserManager.UserDataSetTableAdapters.TBDD_MODULESTableAdapter() - Me.TBDD_USER_MODULESBindingSource = New System.Windows.Forms.BindingSource(Me.components) + Me.TBDD_USER_MODULESBindingSource = New System.Windows.Forms.BindingSource() Me.TBDD_USER_MODULESTableAdapter = New DDUserManager.UserDataSetTableAdapters.TBDD_USER_MODULESTableAdapter() Me.StatusStrip1 = New System.Windows.Forms.StatusStrip() Me.tsLabelUser = New System.Windows.Forms.ToolStripStatusLabel() @@ -356,11 +360,6 @@ Partial Class frmMain Me.TableAdapterManager1 = New DDUserManager.DS_ChangeSTableAdapters.TableAdapterManager() Me.TBDD_GROUPS_USERTableAdapter = New DDUserManager.UserDataSetTableAdapters.TBDD_GROUPS_USERTableAdapter() Me.QueriesTableAdapter1 = New DDUserManager.UserDataSetTableAdapters.QueriesTableAdapter() - Me.Button3 = New System.Windows.Forms.Button() - Me.GroupBox3 = New System.Windows.Forms.GroupBox() - Me.Button4 = New System.Windows.Forms.Button() - Me.txtLDAPUserQuery = New System.Windows.Forms.TextBox() - Me.Button5 = New System.Windows.Forms.Button() GUIDLabel = New System.Windows.Forms.Label() PRENAMELabel = New System.Windows.Forms.Label() NAMELabel = New System.Windows.Forms.Label() @@ -516,13 +515,13 @@ Partial Class frmMain CType(Me.TBDD_MODULESBindingNavigator, System.ComponentModel.ISupportInitialize).BeginInit() Me.TBDD_MODULESBindingNavigator.SuspendLayout() Me.tabPageSettings.SuspendLayout() + Me.GroupBox3.SuspendLayout() Me.GroupBox2.SuspendLayout() Me.GroupBox1.SuspendLayout() CType(Me.TBDD_GROUPS_USERBindingSource, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.TBDD_CLIENT_USERBindingSource, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.TBDD_USER_MODULESBindingSource, System.ComponentModel.ISupportInitialize).BeginInit() Me.StatusStrip1.SuspendLayout() - Me.GroupBox3.SuspendLayout() Me.SuspendLayout() ' 'GUIDLabel @@ -833,7 +832,7 @@ Partial Class frmMain Me.tabPageUsers.AutoScroll = True Me.tabPageUsers.Controls.Add(Me.SplitContainer1) Me.tabPageUsers.Controls.Add(Me.TBDD_USERBindingNavigator) - Me.tabPageUsers.Image = Global.DDUserManager.My.Resources.Resources.user + Me.tabPageUsers.ImageOptions.Image = Global.DDUserManager.My.Resources.Resources.user Me.tabPageUsers.Name = "tabPageUsers" Me.tabPageUsers.Size = New System.Drawing.Size(1193, 784) Me.tabPageUsers.Text = "Benutzer" @@ -1199,7 +1198,7 @@ Partial Class frmMain 'tabGroupAssign ' Me.tabGroupAssign.Controls.Add(Me.SplitContainerUserGroups1) - Me.tabGroupAssign.Image = Global.DDUserManager.My.Resources.Resources.group + Me.tabGroupAssign.ImageOptions.Image = Global.DDUserManager.My.Resources.Resources.group Me.tabGroupAssign.Name = "tabGroupAssign" Me.tabGroupAssign.Size = New System.Drawing.Size(1187, 349) Me.tabGroupAssign.Text = "Gruppen Zuordnung" @@ -1498,7 +1497,7 @@ Partial Class frmMain 'tabClientAssign ' Me.tabClientAssign.Controls.Add(Me.SplitContainer4) - Me.tabClientAssign.Image = Global.DDUserManager.My.Resources.Resources.book + Me.tabClientAssign.ImageOptions.Image = Global.DDUserManager.My.Resources.Resources.book Me.tabClientAssign.Name = "tabClientAssign" Me.tabClientAssign.Size = New System.Drawing.Size(1187, 349) Me.tabClientAssign.Text = "Mandanten Zuordnung" @@ -1779,7 +1778,7 @@ Partial Class frmMain 'tabModuleAssign ' Me.tabModuleAssign.Controls.Add(Me.SplitContainer6) - Me.tabModuleAssign.Image = Global.DDUserManager.My.Resources.Resources.plugin + Me.tabModuleAssign.ImageOptions.Image = Global.DDUserManager.My.Resources.Resources.plugin Me.tabModuleAssign.Name = "tabModuleAssign" Me.tabModuleAssign.Size = New System.Drawing.Size(1187, 349) Me.tabModuleAssign.Text = "Modul Zuordnung" @@ -2194,7 +2193,7 @@ Partial Class frmMain ' Me.tabPageGroups.Controls.Add(Me.SplitContainer3) Me.tabPageGroups.Controls.Add(Me.TBDD_GROUPSBindingNavigator) - Me.tabPageGroups.Image = Global.DDUserManager.My.Resources.Resources.group + Me.tabPageGroups.ImageOptions.Image = Global.DDUserManager.My.Resources.Resources.group Me.tabPageGroups.Name = "tabPageGroups" Me.tabPageGroups.Size = New System.Drawing.Size(1193, 784) Me.tabPageGroups.Text = "Gruppen" @@ -2411,7 +2410,7 @@ Partial Class frmMain 'XtraTabPage1 ' Me.XtraTabPage1.Controls.Add(Me.SplitContainer5) - Me.XtraTabPage1.Image = Global.DDUserManager.My.Resources.Resources.book + Me.XtraTabPage1.ImageOptions.Image = Global.DDUserManager.My.Resources.Resources.book Me.XtraTabPage1.Name = "XtraTabPage1" Me.XtraTabPage1.Size = New System.Drawing.Size(1190, 349) Me.XtraTabPage1.Text = "Mandanten Zuordnung" @@ -2650,7 +2649,7 @@ Partial Class frmMain 'XtraTabPage2 ' Me.XtraTabPage2.Controls.Add(Me.SplitContainer7) - Me.XtraTabPage2.Image = Global.DDUserManager.My.Resources.Resources.plugin + Me.XtraTabPage2.ImageOptions.Image = Global.DDUserManager.My.Resources.Resources.plugin Me.XtraTabPage2.Name = "XtraTabPage2" Me.XtraTabPage2.Size = New System.Drawing.Size(1190, 349) Me.XtraTabPage2.Text = "Modul Zuordnung" @@ -3012,7 +3011,7 @@ Partial Class frmMain Me.tabPageClients.Controls.Add(Me.Panel17) Me.tabPageClients.Controls.Add(Me.gridClients) Me.tabPageClients.Controls.Add(Me.TBDD_CLIENTBindingNavigator) - Me.tabPageClients.Image = Global.DDUserManager.My.Resources.Resources.book + Me.tabPageClients.ImageOptions.Image = Global.DDUserManager.My.Resources.Resources.book Me.tabPageClients.Name = "tabPageClients" Me.tabPageClients.Size = New System.Drawing.Size(1193, 784) Me.tabPageClients.Text = "Mandanten" @@ -3295,7 +3294,7 @@ Partial Class frmMain Me.tabPageModules.Controls.Add(Me.Panel18) Me.tabPageModules.Controls.Add(Me.gridModules) Me.tabPageModules.Controls.Add(Me.TBDD_MODULESBindingNavigator) - Me.tabPageModules.Image = Global.DDUserManager.My.Resources.Resources.plugin + Me.tabPageModules.ImageOptions.Image = Global.DDUserManager.My.Resources.Resources.plugin Me.tabPageModules.Name = "tabPageModules" Me.tabPageModules.Size = New System.Drawing.Size(1193, 784) Me.tabPageModules.Text = "Module" @@ -3497,7 +3496,7 @@ Partial Class frmMain ' 'tabPageRights ' - Me.tabPageRights.Image = Global.DDUserManager.My.Resources.Resources.key + Me.tabPageRights.ImageOptions.Image = Global.DDUserManager.My.Resources.Resources.key Me.tabPageRights.Name = "tabPageRights" Me.tabPageRights.PageEnabled = False Me.tabPageRights.Size = New System.Drawing.Size(1193, 784) @@ -3512,7 +3511,7 @@ Partial Class frmMain Me.tabPageSettings.Controls.Add(Me.btnOpenLogDir) Me.tabPageSettings.Controls.Add(Me.btnOpenConfigDir) Me.tabPageSettings.Controls.Add(Me.btnConfigConnections) - Me.tabPageSettings.Image = Global.DDUserManager.My.Resources.Resources.cog + Me.tabPageSettings.ImageOptions.Image = Global.DDUserManager.My.Resources.Resources.cog Me.tabPageSettings.Name = "tabPageSettings" Me.tabPageSettings.Size = New System.Drawing.Size(1193, 784) Me.tabPageSettings.Text = "Einstellungen" @@ -3528,6 +3527,46 @@ Partial Class frmMain Me.Button2.Text = "Support Tool aufrufen" Me.Button2.UseVisualStyleBackColor = True ' + 'GroupBox3 + ' + Me.GroupBox3.Controls.Add(Me.Label20) + Me.GroupBox3.Controls.Add(Me.Button4) + Me.GroupBox3.Controls.Add(Me.txtLDAPUserQuery) + Me.GroupBox3.Location = New System.Drawing.Point(486, 239) + Me.GroupBox3.Name = "GroupBox3" + Me.GroupBox3.Size = New System.Drawing.Size(700, 200) + Me.GroupBox3.TabIndex = 5 + Me.GroupBox3.TabStop = False + Me.GroupBox3.Text = "LDAP Filter für Benutzerabfrage" + ' + 'Label20 + ' + Me.Label20.AutoSize = True + Me.Label20.Location = New System.Drawing.Point(6, 176) + Me.Label20.Name = "Label20" + Me.Label20.Size = New System.Drawing.Size(381, 13) + Me.Label20.TabIndex = 8 + Me.Label20.Text = "Benutzen Sie @SAMACCOUNTNAME als Platzhalter für den Aktuellen Benutzer" + ' + 'Button4 + ' + Me.Button4.Location = New System.Drawing.Point(582, 171) + Me.Button4.Name = "Button4" + Me.Button4.Size = New System.Drawing.Size(112, 23) + Me.Button4.TabIndex = 7 + Me.Button4.Text = "Speichern" + Me.Button4.UseVisualStyleBackColor = True + ' + 'txtLDAPUserQuery + ' + Me.txtLDAPUserQuery.Font = New System.Drawing.Font("Consolas", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtLDAPUserQuery.Location = New System.Drawing.Point(6, 20) + Me.txtLDAPUserQuery.Multiline = True + Me.txtLDAPUserQuery.Name = "txtLDAPUserQuery" + Me.txtLDAPUserQuery.ScrollBars = System.Windows.Forms.ScrollBars.Vertical + Me.txtLDAPUserQuery.Size = New System.Drawing.Size(688, 145) + Me.txtLDAPUserQuery.TabIndex = 2 + ' 'GroupBox2 ' Me.GroupBox2.Controls.Add(Me.Button3) @@ -3540,6 +3579,15 @@ Partial Class frmMain Me.GroupBox2.TabStop = False Me.GroupBox2.Text = "LDAP Filter für Gruppenabfrage" ' + 'Button3 + ' + Me.Button3.Location = New System.Drawing.Point(438, 171) + Me.Button3.Name = "Button3" + Me.Button3.Size = New System.Drawing.Size(112, 23) + Me.Button3.TabIndex = 7 + Me.Button3.Text = "Speichern" + Me.Button3.UseVisualStyleBackColor = True + ' 'btnDebugGroupQuery ' Me.btnDebugGroupQuery.Location = New System.Drawing.Point(556, 171) @@ -3551,13 +3599,13 @@ Partial Class frmMain ' 'txtLDAPGroupQuery ' + Me.txtLDAPGroupQuery.Font = New System.Drawing.Font("Consolas", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.txtLDAPGroupQuery.Location = New System.Drawing.Point(6, 20) Me.txtLDAPGroupQuery.Multiline = True Me.txtLDAPGroupQuery.Name = "txtLDAPGroupQuery" Me.txtLDAPGroupQuery.ScrollBars = System.Windows.Forms.ScrollBars.Vertical Me.txtLDAPGroupQuery.Size = New System.Drawing.Size(688, 145) Me.txtLDAPGroupQuery.TabIndex = 2 - Me.txtLDAPGroupQuery.Text = "(&(objectClass=group) (samAccountName=*))" ' 'GroupBox1 ' @@ -3738,55 +3786,6 @@ Partial Class frmMain ' Me.TBDD_GROUPS_USERTableAdapter.ClearBeforeFill = True ' - 'Button3 - ' - Me.Button3.Location = New System.Drawing.Point(438, 171) - Me.Button3.Name = "Button3" - Me.Button3.Size = New System.Drawing.Size(112, 23) - Me.Button3.TabIndex = 7 - Me.Button3.Text = "Speichern" - Me.Button3.UseVisualStyleBackColor = True - ' - 'GroupBox3 - ' - Me.GroupBox3.Controls.Add(Me.Button4) - Me.GroupBox3.Controls.Add(Me.Button5) - Me.GroupBox3.Controls.Add(Me.txtLDAPUserQuery) - Me.GroupBox3.Location = New System.Drawing.Point(486, 239) - Me.GroupBox3.Name = "GroupBox3" - Me.GroupBox3.Size = New System.Drawing.Size(700, 200) - Me.GroupBox3.TabIndex = 5 - Me.GroupBox3.TabStop = False - Me.GroupBox3.Text = "LDAP Filter für Benutzerabfrage" - ' - 'Button4 - ' - Me.Button4.Location = New System.Drawing.Point(438, 171) - Me.Button4.Name = "Button4" - Me.Button4.Size = New System.Drawing.Size(112, 23) - Me.Button4.TabIndex = 7 - Me.Button4.Text = "Speichern" - Me.Button4.UseVisualStyleBackColor = True - ' - 'txtLDAPUserQuery - ' - Me.txtLDAPUserQuery.Location = New System.Drawing.Point(6, 20) - Me.txtLDAPUserQuery.Multiline = True - Me.txtLDAPUserQuery.Name = "txtLDAPUserQuery" - Me.txtLDAPUserQuery.ScrollBars = System.Windows.Forms.ScrollBars.Vertical - Me.txtLDAPUserQuery.Size = New System.Drawing.Size(688, 145) - Me.txtLDAPUserQuery.TabIndex = 2 - Me.txtLDAPUserQuery.Text = "(&(objectClass=group) (samAccountName=*))" - ' - 'Button5 - ' - Me.Button5.Location = New System.Drawing.Point(556, 171) - Me.Button5.Name = "Button5" - Me.Button5.Size = New System.Drawing.Size(138, 23) - Me.Button5.TabIndex = 6 - Me.Button5.Text = "Abfrage starten" - Me.Button5.UseVisualStyleBackColor = True - ' 'frmMain ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -3932,6 +3931,8 @@ Partial Class frmMain Me.TBDD_MODULESBindingNavigator.ResumeLayout(False) Me.TBDD_MODULESBindingNavigator.PerformLayout() Me.tabPageSettings.ResumeLayout(False) + Me.GroupBox3.ResumeLayout(False) + Me.GroupBox3.PerformLayout() Me.GroupBox2.ResumeLayout(False) Me.GroupBox2.PerformLayout() Me.GroupBox1.ResumeLayout(False) @@ -3941,8 +3942,6 @@ Partial Class frmMain CType(Me.TBDD_USER_MODULESBindingSource, System.ComponentModel.ISupportInitialize).EndInit() Me.StatusStrip1.ResumeLayout(False) Me.StatusStrip1.PerformLayout() - Me.GroupBox3.ResumeLayout(False) - Me.GroupBox3.PerformLayout() Me.ResumeLayout(False) Me.PerformLayout() @@ -4252,5 +4251,5 @@ Partial Class frmMain Friend WithEvents GroupBox3 As GroupBox Friend WithEvents Button4 As Button Friend WithEvents txtLDAPUserQuery As TextBox - Friend WithEvents Button5 As Button + Friend WithEvents Label20 As Label End Class diff --git a/DDUserManager/DDUserManager/frmMain.vb b/DDUserManager/DDUserManager/frmMain.vb index 3cf53d9..cbc083f 100644 --- a/DDUserManager/DDUserManager/frmMain.vb +++ b/DDUserManager/DDUserManager/frmMain.vb @@ -5,6 +5,7 @@ Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Config Imports System.Reflection Imports DigitalData.Modules.Filesystem +Imports DigitalData.Modules.Interfaces ''' ''' Anmerkungen: @@ -160,7 +161,7 @@ Public Class frmMain End If LogErrorsOnly = MyConfig.Config.LogErrorsOnly - ActiveDirectoryRootNode = MyConfig.Config.ActiveDirectoryRootNode + ActiveDirectoryRootNode = MyConfig.Config.AdRootPath End Sub Private Sub btnImportUsers_Click(sender As Object, e As EventArgs) Handles btnImportUsers.Click @@ -1075,19 +1076,19 @@ Public Class frmMain End Sub Private Sub txtADRootNode_Leave(sender As Object, e As EventArgs) Handles txtADRootNode.Leave, txtLDAPGroupQuery.Leave, txtLDAPUserQuery.Leave - MyConfig.Config.ActiveDirectoryRootNode = txtADRootNode.Text + MyConfig.Config.AdRootPath = txtADRootNode.Text MyConfig.Save() End Sub Private Sub btnADConnectionTest_Click(sender As Object, e As EventArgs) Handles btnADConnectionTest.Click Dim ldapPAth = IIf(txtADRootNode.Text = String.Empty, ActiveDirectoryRootNode, txtADRootNode.Text) + Dim oActiveDirectory As New ActiveDirectoryInterface(MyLogConfig, ldapPAth) - - If ClassActiveDirectory.ConnectionTest(txtADRootNode.Text) Then + If oActiveDirectory.Authenticate() Then MsgBox("Verbindung erfolgreich aufgebaut!", MsgBoxStyle.Information) - MyConfig.Config.ActiveDirectoryRootNode = txtADRootNode.Text + MyConfig.Config.AdRootPath = txtADRootNode.Text MyConfig.Save() MyLogger.Info($"New ActiveDirectory Path saved: {txtADRootNode.Text}") @@ -1098,13 +1099,15 @@ Public Class frmMain Process.Start("https://didalog.de/support") End Sub - Private Async Sub btnDebugQuery_Click(sender As Object, e As EventArgs) Handles btnDebugGroupQuery.Click, Button5.Click + Private Async Sub btnDebugQuery_Click(sender As Object, e As EventArgs) Handles btnDebugGroupQuery.Click btnDebugGroupQuery.Text = "Abfrage läuft..." btnDebugGroupQuery.Enabled = False + Dim oActiveDirectory As New ActiveDirectoryInterface(MyLogConfig, MyConfig.Config.AdRootPath) + Await Task.Run(Sub() - Dim groups = ClassActiveDirectory.GetActiveDirectoryGroups(txtLDAPGroupQuery.Text) - Dim frm As New frmADDebug() + Dim groups = oActiveDirectory.ListGroups(MyConfig.Config.AdGroupFilter) + Dim frm As New frmADDebug_Groups() frm.DebugData = groups frm.ShowDialog() @@ -1138,7 +1141,7 @@ Public Class frmMain Private Sub XtraTabControl1_SelectedPageChanged(sender As Object, e As DevExpress.XtraTab.TabPageChangedEventArgs) Handles XtraTabControl1.SelectedPageChanged If e.Page.Name = tabPageSettings.Name Then - txtADRootNode.Text = MyConfig.Config.ActiveDirectoryRootNode + txtADRootNode.Text = MyConfig.Config.AdRootPath txtLDAPGroupQuery.Text = MyConfig.Config.AdGroupFilter txtLDAPUserQuery.Text = MyConfig.Config.AdUserFilter End If