From 46a9991b2a6edeca4e58fdfa1e530f3d8de7b836 Mon Sep 17 00:00:00 2001 From: ms Date: Wed, 8 Jan 2020 14:32:30 +0100 Subject: [PATCH] Diverses --- Dokumentation/Classes/Class1.vb | 8 +- Dokumentation/Classes/cDomUser.vb | 226 +++++++++++ Dokumentation/Classes/cSQL.vb | 25 +- Dokumentation/Dokumentation.vbproj | 22 + Dokumentation/Main.Designer.vb | 51 ++- Dokumentation/Main.resx | 3 + Dokumentation/Main.vb | 69 +++- .../My Project/Resources.Designer.vb | 32 +- Dokumentation/My Project/Resources.resx | 23 +- Dokumentation/Resources/Admin.PNG | Bin 0 -> 20832 bytes Dokumentation/Resources/Admin20.png | Bin 0 -> 536 bytes Dokumentation/Resources/ico_putty_exe0001.bmp | Bin 0 -> 4150 bytes Dokumentation/frmHostBearbeiten.Designer.vb | 43 +- Dokumentation/frmHostBearbeiten.vb | 6 + Dokumentation/uscntr_DomUser.Designer.vb | 376 ++++++++++++++++++ Dokumentation/uscntr_DomUser.resx | 120 ++++++ Dokumentation/uscntr_DomUser.vb | 99 +++++ Dokumentation/uscntr_DomUserList.Designer.vb | 227 +++++++++++ Dokumentation/uscntr_DomUserList.resx | 126 ++++++ Dokumentation/uscntr_DomUserList.vb | 139 +++++++ Dokumentation/uscntr_TSSitzungen.Designer.vb | 20 +- Dokumentation/uscntr_TSSitzungen.vb | 36 ++ 22 files changed, 1579 insertions(+), 72 deletions(-) create mode 100644 Dokumentation/Classes/cDomUser.vb create mode 100644 Dokumentation/Resources/Admin.PNG create mode 100644 Dokumentation/Resources/Admin20.png create mode 100644 Dokumentation/Resources/ico_putty_exe0001.bmp create mode 100644 Dokumentation/uscntr_DomUser.Designer.vb create mode 100644 Dokumentation/uscntr_DomUser.resx create mode 100644 Dokumentation/uscntr_DomUser.vb create mode 100644 Dokumentation/uscntr_DomUserList.Designer.vb create mode 100644 Dokumentation/uscntr_DomUserList.resx create mode 100644 Dokumentation/uscntr_DomUserList.vb diff --git a/Dokumentation/Classes/Class1.vb b/Dokumentation/Classes/Class1.vb index 7c1286f..98d5eb7 100644 --- a/Dokumentation/Classes/Class1.vb +++ b/Dokumentation/Classes/Class1.vb @@ -7,7 +7,9 @@ Public Class Class1 'Public Shared DBConString As String = "Server=NBMIESENBECK\SPIELWIESE;Initial Catalog=Doku;User ID=sa;Password=verag#3;Connection Timeout=5;" Public Shared DBConString As String Public Shared DBConstringDev As String = "Server=DEVELOPER.verag.ost.dmn\DEVSQL;Initial Catalog=Doku;User ID=sa;Password=BmWr501956;Connection Timeout=5;" - Public Shared DBADMINBuchhaltung As String = "Data Source=192.168.0.94\SQLEXPRESS;Initial Catalog=ADMIN;Integrated Security=false;User ID=sa;Password=BmWr501956;" + Public Shared DBADMINBuchhaltung As String = "Data Source=BUCHHALTUNG.verag.ost.dmn\SQLEXPRESS;Initial Catalog=ADMIN;Integrated Security=false;User ID=sa;Password=BmWr501956;" + Public Shared DBDoku As String = "Server=buchhaltung.verag.ost.dmn\SQLEXPRESS;Initial Catalog=Doku;User ID=sa;Password=BmWr501956;Connection Timeout=5;" + Public Shared DBDokuTest As String = "Server=DEVELOPER.verag.ost.dmn\DEVSQL;Initial Catalog=Doku;User ID=sa;Password=BmWr501956;Connection Timeout=5;" 'Public Shared FilePath As String = "\\192.168.0.253\backup\temp_Sebastian\Spielwiese\Doku" Public Shared FilePath As String ' = "\\192.168.0.90\f\EDV-Wartung\Dokumentation" Public Shared Absender As String = "Absender Standard" @@ -51,10 +53,10 @@ Public Class Class1 If (Main.sAppPath Like "*\bin\Debug" Or Startparameter = "debug") And Debugoverride = False Then DebugMode = True - Class1.DBConString = "Server=DEVELOPER.verag.ost.dmn\DEVSQL;Initial Catalog=Doku;User ID=sa;Password=BmWr501956;Connection Timeout=5;" + Class1.DBConString = DBDokuTest '"Server=DEVELOPER.verag.ost.dmn\DEVSQL;Initial Catalog=Doku;User ID=sa;Password=BmWr501956;Connection Timeout=5;" Class1.FilePath = "\\192.168.0.253\backup\temp_Sebastian\DokuTest" Else - Class1.DBConString = "Server=buchhaltung.verag.ost.dmn\SQLEXPRESS;Initial Catalog=Doku;User ID=sa;Password=BmWr501956;Connection Timeout=5;" + Class1.DBConString = DBDoku '"Server=buchhaltung.verag.ost.dmn\SQLEXPRESS;Initial Catalog=Doku;User ID=sa;Password=BmWr501956;Connection Timeout=5;" Class1.FilePath = "\\DEVELOPER.verag.ost.dmn\f\EDV-Wartung\Dokumentation" End If End Function diff --git a/Dokumentation/Classes/cDomUser.vb b/Dokumentation/Classes/cDomUser.vb new file mode 100644 index 0000000..45b52a0 --- /dev/null +++ b/Dokumentation/Classes/cDomUser.vb @@ -0,0 +1,226 @@ +Imports System.Reflection + +Public Class cDomUser + + Property du_ID As String = "" + Property du_Email_Activated As Boolean = False + Property du_EMail As String = "" + Property du_Vorname As String = "" + Property du_Nachname As String = "" + Property du_Abteilung As String = "" + Property du_TelNummer As String = "" + Property du_DW As String = "" + Property du_Kennwort As String = "" + Property du_Dom As String = "" + Property du_sAMAc As String = "" + Property du_Info As String = "" + Property mit_username As String = "" + Property mit_pwd As String = "" + '----------------------------------------- + Dim SelectItems As String = "" + Public Exist As Boolean = False + + Public Sub New() + SelectItems = Selectinator3000(getparameterlistMaster()) + ' MsgBox(SelectItems) + End Sub + + + Function getparameterlistMaster() As List(Of SQLVariable) + Dim list As New List(Of SQLVariable) + + list.Add(New SQLVariable("du_ID", du_ID)) + list.Add(New SQLVariable("du_Email_Activated", du_Email_Activated)) + list.Add(New SQLVariable("du_EMail", du_EMail)) + list.Add(New SQLVariable("du_Vorname", du_Vorname)) + list.Add(New SQLVariable("du_Nachname", du_Nachname)) + list.Add(New SQLVariable("du_Abteilung", du_Abteilung)) + list.Add(New SQLVariable("du_TelNummer", du_TelNummer)) + list.Add(New SQLVariable("du_DW", du_DW)) + list.Add(New SQLVariable("du_Kennwort", du_Kennwort)) + list.Add(New SQLVariable("du_Dom", du_Dom)) + list.Add(New SQLVariable("du_sAMAc", du_sAMAc)) + list.Add(New SQLVariable("du_Info", du_Info)) + list.Add(New SQLVariable("mit_username", mit_username)) + list.Add(New SQLVariable("mit_pwd", mit_pwd)) + Return list + End Function + + Public Function getDomUser(Filterspalte As String, Filterbegriff As String) + Dim ds As New DataSet + + cSQL.SQL2DS("select " & SelectItems & " from [Buchhaltung\sqlexpress].doku.dbo.tbl_domuser as Doku left join [Buchhaltung\sqlexpress].ADMIN.dbo.tblMitarbeiter on mit_AliasAD_Username = du_sAMAc where " & Filterspalte & "= '" & Filterbegriff & "'", ds) + + If ds.Tables(0).Rows.Count > 0 Then Exist = True + + For Each c As DataColumn In ds.Tables(0).Columns + Dim propInfo As PropertyInfo = Me.GetType.GetProperty(c.ColumnName) + If propInfo IsNot Nothing Then + If Not IsDBNull(c.Table.Rows(0).Item(c)) Then + propInfo.SetValue(Me, c.Table.Rows(0).Item(c)) + End If + End If + Next + ' MsgBox("hier") + End Function + + Public Function getDomUserByID(ID As String) + Dim ds As New DataSet + + cSQL.SQL2DS("select " & SelectItems & " from [Buchhaltung\sqlexpress].doku.dbo.tbl_domuser as Doku left join [Buchhaltung\sqlexpress].ADMIN.dbo.tblMitarbeiter on mit_AliasAD_Username = du_sAMAc WHERE du_ID = '" & ID & "'", ds) + + If ds.Tables(0).Rows.Count > 0 Then Exist = True + + For Each c As DataColumn In ds.Tables(0).Columns + Dim propInfo As PropertyInfo = Me.GetType.GetProperty(c.ColumnName) + If propInfo IsNot Nothing Then + If Not IsDBNull(c.Table.Rows(0).Item(c)) Then + propInfo.SetValue(Me, c.Table.Rows(0).Item(c)) + End If + End If + Next + ' MsgBox("hier") + End Function + + Public Function Save() + If du_sAMAc = "" Or du_Dom = "" Then + MsgBox("Domänen-Benutzer und Domäne sind Pflichtfelder!") : Exit Function + End If + + If CheckExist() = True Then + '-------------------------------------------------------------------------Update + Dim update, where As String + Dim list = getparameterlistMaster() + For Each i In list + If i.SQLText = "mit_pwd" Or i.SQLText = "mit_username" Then + ElseIf Not i.SQLText = "du_ID" Then + update &= "[" & i.SQLText & "]='" & i.SQLValue & "'," + Else + where &= "du_ID = '" & i.SQLValue & "'" + End If + Next + update = update.Substring(0, update.Length - 1) + cSQL.UpdateSQL("TbL_DomUser", update, where, Class1.DBDoku) + + ElseIf CheckExist() = -1 Then + Exit Function + Else + '-------------------------------------------------------------------------Insert + Dim Spalten As String = "" + Dim Werte As String = "" + Dim InsertString As String = "" + du_ID = Guid.NewGuid().ToString("N") + Dim List As List(Of SQLVariable) = getparameterlistMaster() + For Each i In List + If i.SQLText = "mit_pwd" Or i.SQLText = "mit_username" Then + Else + Spalten &= i.SQLText & "," + Werte &= "'" & i.SQLValue & "'," + End If + Next + Spalten = Spalten.Substring(0, Spalten.Length - 1) + Werte = Werte.Substring(0, Werte.Length - 1) + + cSQL.InsertSQL("TbL_DomUser", "(" & Spalten & ") VALUES (" & Werte & ")", Class1.DBDoku) + End If + + End Function + + Function CheckExist() As Boolean + Dim ds As New DataSet + cSQL.SQL2DS("select * from Doku.dbo.TbL_DomUser where du_ID = '" & du_ID & "'", ds, Class1.DBADMINBuchhaltung) + + If ds.Tables(0).Rows.Count > 0 Then + Return True + Else + Dim dsa As New DataSet + cSQL.SQL2DS("select * from Doku.dbo.TbL_DomUser where du_sAMAc = '" & du_sAMAc & "' AND du_Dom = '" & du_Dom & "'", dsa, Class1.DBADMINBuchhaltung) + If dsa.Tables(0).Rows.Count > 0 Then + If MsgBox("Achtung! Die Kombination aus Domäne und Benutzer existiert bereits! Trotzdem speichern?", MsgBoxStyle.YesNo, "Speichern...") = MsgBoxResult.No Then + Return -1 + Exit Function + End If + + End If + Return False + End If + End Function + Public Function getFromAvisoUser(Optional ByVal AvisoUser As String = "") + If AvisoUser = "" Then + AvisoUser = Me.mit_username + End If + + Dim ds As New DataSet + cSQL.SQL2DS("select * from ADMIN.dbo.tblMitarbeiter where mit_username = '" & AvisoUser & "'", ds, Class1.DBADMINBuchhaltung) + + If ds.Tables(0).Rows.Count = 0 Then MsgBox("Benutzer nicht gefunden.") : Exit Function + If ds.Tables(0).Rows.Count = 1 Then + du_EMail = Class1.DBNull2emptyString(ds.Tables(0).Rows(0).Item("mit_email")) + If du_EMail.Length > 1 Then du_Email_Activated = True + mit_username = Class1.DBNull2emptyString(ds.Tables(0).Rows(0).Item("mit_username")) + mit_pwd = Class1.DBNull2emptyString(ds.Tables(0).Rows(0).Item("mit_pwd")) + du_Vorname = Class1.DBNull2emptyString(ds.Tables(0).Rows(0).Item("mit_vname")) + du_Nachname = Class1.DBNull2emptyString(ds.Tables(0).Rows(0).Item("mit_nname")) + du_Abteilung = Class1.DBNull2emptyString(ds.Tables(0).Rows(0).Item("mit_abteilung")) + du_TelNummer = Class1.DBNull2emptyString(ds.Tables(0).Rows(0).Item("mit_mobiltel")) + du_DW = Class1.DBNull2emptyString(ds.Tables(0).Rows(0).Item("mit_durchwahl")) + du_Dom = Class1.DBNull2emptyString(ds.Tables(0).Rows(0).Item("mit_aliasad_domain")) + du_sAMAc = Class1.DBNull2emptyString(ds.Tables(0).Rows(0).Item("mit_aliasad_username")) + End If + + Exist = True + + ' MsgBox(du_EMail) + End Function + + Public Function getFromAvisoUserLIST(AvisoUser As String) + Dim ds As New DataSet + Dim AvisoUserList As New List(Of cDomUser) + cSQL.SQL2DS("select * from ADMIN.dbo.tblMitarbeiter where mit_username = '" & AvisoUser & "'", ds, Class1.DBADMINBuchhaltung) + For Each row As DataRow In ds.Tables(0).Rows + Dim tempdu As New cDomUser + tempdu.du_EMail = Class1.DBNull2emptyString(row.Item("mit_email")) + If tempdu.du_EMail.Length > 1 Then tempdu.du_Email_Activated = True + tempdu.mit_username = Class1.DBNull2emptyString(row.Item("mit_username")) + tempdu.mit_pwd = Class1.DBNull2emptyString(row.Item("mit_pwd")) + tempdu.du_Vorname = Class1.DBNull2emptyString(row.Item("mit_vname")) + tempdu.du_Nachname = Class1.DBNull2emptyString(row.Item("mit_nname")) + tempdu.du_Abteilung = Class1.DBNull2emptyString(row.Item("mit_abteilung")) + tempdu.du_TelNummer = Class1.DBNull2emptyString(row.Item("mit_mobiltel")) + tempdu.du_DW = Class1.DBNull2emptyString(row.Item("mit_durchwahl")) + tempdu.du_Dom = Class1.DBNull2emptyString(row.Item("mit_aliasad_domain")) + tempdu.du_sAMAc = Class1.DBNull2emptyString(row.Item("mit_aliasad_username")) + AvisoUserList.Add(tempdu) + Next + Return AvisoUserList + End Function + + Public Function Selectinator3000(varlist As List(Of SQLVariable)) As String + Dim Ding As String = "" + + For Each var In varlist + Ding &= var.SQLText & ", " + Next + Ding = Ding.Substring(0, (Ding.Length - 2)) + + Return Ding + End Function + + Public Function Delete() + If MsgBox("Benutzer " & du_Vorname & " " & du_Nachname & ", " & du_sAMAc & " löschen?", MsgBoxStyle.OkCancel, "Benutzer löschen?") = MsgBoxResult.Ok Then + cSQL.DeleteSQL("Doku.dbo.TbL_DomUser", "du_ID = '" & du_ID & "'", Class1.DBADMINBuchhaltung) + Else + Exit Function + End If + End Function + + Public Shared Function Delete(ID As String) + If MsgBox("Benutzer löschen?", MsgBoxStyle.OkCancel, "Benutzer löschen?") = MsgBoxResult.Ok Then + cSQL.DeleteSQL("Doku.dbo.TbL_DomUser", "du_ID = '" & ID & "'", Class1.DBADMINBuchhaltung) + Else + Exit Function + End If + End Function + + +End Class diff --git a/Dokumentation/Classes/cSQL.vb b/Dokumentation/Classes/cSQL.vb index 5d0a670..506bd91 100644 --- a/Dokumentation/Classes/cSQL.vb +++ b/Dokumentation/Classes/cSQL.vb @@ -2,10 +2,11 @@ Public Class cSQL - Public Shared Sub SQL2DS(ByRef selector As String, ByRef ds As DataSet) + Public Shared Sub SQL2DS(ByRef selector As String, ByRef ds As DataSet, Optional ByRef DBConnect As String = "") + If DBConnect = "" Then DBConnect = Class1.DBConString Dim con As New SqlConnection Dim cmd As New SqlCommand - con.ConnectionString = Class1.DBConString + con.ConnectionString = DBConnect 'Class1.DBConString cmd.Connection = con Dim dataadapter As New SqlDataAdapter(selector, con) @@ -14,10 +15,11 @@ Public Class cSQL con.Close() End Sub - Public Shared Sub UpdateSQL(ByRef table As String, ByRef values As String, ByRef where As String) + Public Shared Sub UpdateSQL(ByRef table As String, ByRef values As String, ByRef where As String, Optional ByRef DBConnect As String = "") + If DBConnect = "" Then DBConnect = Class1.DBConString Dim con As New SqlConnection Dim cmd As New SqlCommand - con.ConnectionString = Class1.DBConString + con.ConnectionString = DBConnect ' Class1.DBConString cmd.Connection = con con.Open() @@ -26,10 +28,11 @@ Public Class cSQL con.Close() End Sub - Public Shared Sub InsertSQL(ByRef table As String, ByRef insert As String) + Public Shared Sub InsertSQL(ByRef table As String, ByRef insert As String, Optional ByRef DBConnect As String = "") + If DBConnect = "" Then DBConnect = Class1.DBConString Dim con As New SqlConnection Dim cmd As New SqlCommand - con.ConnectionString = Class1.DBConString + con.ConnectionString = DBConnect ' Class1.DBConString cmd.Connection = con con.Open() @@ -38,10 +41,11 @@ Public Class cSQL con.Close() End Sub - Public Shared Sub DeleteSQL(ByRef table As String, ByRef where As String) + Public Shared Sub DeleteSQL(ByRef table As String, ByRef where As String, Optional ByRef DBConnect As String = "") + If DBConnect = "" Then DBConnect = Class1.DBConString Dim con As New SqlConnection Dim cmd As New SqlCommand - con.ConnectionString = Class1.DBConString + con.ConnectionString = DBConnect ' Class1.DBConString cmd.Connection = con con.Open() @@ -50,10 +54,11 @@ Public Class cSQL con.Close() End Sub - Public Shared Sub SQLCommand(command As String) + Public Shared Sub SQLCommand(command As String, Optional ByRef DBConnect As String = "") + If DBConnect = "" Then DBConnect = Class1.DBConString Dim con As New SqlConnection Dim cmd As New SqlCommand - con.ConnectionString = Class1.DBConString + con.ConnectionString = DBConnect ' Class1.DBConString cmd.Connection = con con.Open() diff --git a/Dokumentation/Dokumentation.vbproj b/Dokumentation/Dokumentation.vbproj index 3d83cf7..19965ad 100644 --- a/Dokumentation/Dokumentation.vbproj +++ b/Dokumentation/Dokumentation.vbproj @@ -153,15 +153,28 @@ Form + + + uscntr_DomUserList.vb + + + UserControl + frmAllgemeinEintrag.vb Form + + uscntr_DomUser.vb + + + UserControl + uscntr_TSSitzungen.vb @@ -349,6 +362,12 @@ frmAllgemeinEintrag.vb + + uscntr_DomUser.vb + + + uscntr_DomUserList.vb + uscntr_TSSitzungen.vb @@ -450,6 +469,9 @@ + + + diff --git a/Dokumentation/Main.Designer.vb b/Dokumentation/Main.Designer.vb index 3526c1e..fae766a 100644 --- a/Dokumentation/Main.Designer.vb +++ b/Dokumentation/Main.Designer.vb @@ -26,6 +26,7 @@ Partial Class Main Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Main)) Me.Panel2 = New System.Windows.Forms.Panel() Me.Panel4 = New System.Windows.Forms.Panel() + Me.btnBenutzerverwaltung = New System.Windows.Forms.Button() Me.LblDEBUGMODE = New System.Windows.Forms.Label() Me.LblVersion = New System.Windows.Forms.Label() Me.LblInfo = New System.Windows.Forms.Label() @@ -85,6 +86,7 @@ Partial Class Main Me.SMBToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.DgvMainContextMenuItemLink = New System.Windows.Forms.ToolStripMenuItem() Me.IPAdresseInZwischenablageToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.TeamviewerVerbindenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator() Me.ObjektLöschenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ToolStripSeparator2 = New System.Windows.Forms.ToolStripSeparator() @@ -103,7 +105,6 @@ Partial Class Main Me.TimerUpdate = New System.Windows.Forms.Timer(Me.components) Me.TimerWillkommen = New System.Windows.Forms.Timer(Me.components) Me.panTSSitzungen = New System.Windows.Forms.Panel() - Me.TeamviewerVerbindenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.Panel2.SuspendLayout() Me.Panel4.SuspendLayout() Me.PanType.SuspendLayout() @@ -149,6 +150,20 @@ Partial Class Main Me.Panel4.Size = New System.Drawing.Size(1309, 106) Me.Panel4.TabIndex = 14 ' + 'btnBenutzerverwaltung + ' + Me.btnBenutzerverwaltung.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.btnBenutzerverwaltung.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer)) + Me.btnBenutzerverwaltung.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnBenutzerverwaltung.Image = Global.Dokumentation.My.Resources.Resources.Admin20 + Me.btnBenutzerverwaltung.ImageAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnBenutzerverwaltung.Location = New System.Drawing.Point(25, 670) + Me.btnBenutzerverwaltung.Name = "btnBenutzerverwaltung" + Me.btnBenutzerverwaltung.Size = New System.Drawing.Size(151, 28) + Me.btnBenutzerverwaltung.TabIndex = 20 + Me.btnBenutzerverwaltung.Text = "Benutzerverwaltung" + Me.btnBenutzerverwaltung.UseVisualStyleBackColor = False + ' 'LblDEBUGMODE ' Me.LblDEBUGMODE.AutoSize = True @@ -408,6 +423,7 @@ Partial Class Main 'Panel3 ' Me.Panel3.BackColor = System.Drawing.SystemColors.GradientInactiveCaption + Me.Panel3.Controls.Add(Me.btnBenutzerverwaltung) Me.Panel3.Controls.Add(Me.chkTSSitzungen) Me.Panel3.Controls.Add(Me.lblCount) Me.Panel3.Controls.Add(Me.btnNeu) @@ -426,13 +442,13 @@ Partial Class Main Me.Panel3.Dock = System.Windows.Forms.DockStyle.Left Me.Panel3.Location = New System.Drawing.Point(0, 130) Me.Panel3.Name = "Panel3" - Me.Panel3.Size = New System.Drawing.Size(200, 790) + Me.Panel3.Size = New System.Drawing.Size(200, 854) Me.Panel3.TabIndex = 2 ' 'chkTSSitzungen ' Me.chkTSSitzungen.AutoSize = True - Me.chkTSSitzungen.Location = New System.Drawing.Point(25, 680) + Me.chkTSSitzungen.Location = New System.Drawing.Point(25, 744) Me.chkTSSitzungen.Name = "chkTSSitzungen" Me.chkTSSitzungen.Size = New System.Drawing.Size(157, 17) Me.chkTSSitzungen.TabIndex = 19 @@ -442,7 +458,7 @@ Partial Class Main 'lblCount ' Me.lblCount.AutoSize = True - Me.lblCount.Location = New System.Drawing.Point(12, 768) + Me.lblCount.Location = New System.Drawing.Point(12, 832) Me.lblCount.Name = "lblCount" Me.lblCount.Size = New System.Drawing.Size(45, 13) Me.lblCount.TabIndex = 18 @@ -573,7 +589,7 @@ Partial Class Main 'ChkTools ' Me.ChkTools.AutoSize = True - Me.ChkTools.Location = New System.Drawing.Point(25, 726) + Me.ChkTools.Location = New System.Drawing.Point(25, 790) Me.ChkTools.Name = "ChkTools" Me.ChkTools.Size = New System.Drawing.Size(107, 17) Me.ChkTools.TabIndex = 10 @@ -597,7 +613,7 @@ Partial Class Main 'ChKZugangsdaten ' Me.ChKZugangsdaten.AutoSize = True - Me.ChKZugangsdaten.Location = New System.Drawing.Point(25, 703) + Me.ChKZugangsdaten.Location = New System.Drawing.Point(25, 767) Me.ChKZugangsdaten.Name = "ChKZugangsdaten" Me.ChKZugangsdaten.Size = New System.Drawing.Size(141, 17) Me.ChKZugangsdaten.TabIndex = 4 @@ -665,14 +681,14 @@ Partial Class Main Me.DgVMain.Name = "DgVMain" Me.DgVMain.ReadOnly = True Me.DgVMain.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect - Me.DgVMain.Size = New System.Drawing.Size(1016, 690) + Me.DgVMain.Size = New System.Drawing.Size(1016, 754) Me.DgVMain.TabIndex = 3 ' 'DGVMainContext ' Me.DGVMainContext.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DgvMainContextMenuItemHost, Me.ErstellenToolStripMenuItem, Me.DateienToolStripMenuItem, Me.SMBToolStripMenuItem, Me.DgvMainContextMenuItemLink, Me.IPAdresseInZwischenablageToolStripMenuItem, Me.TeamviewerVerbindenToolStripMenuItem, Me.ToolStripSeparator3, Me.ObjektLöschenToolStripMenuItem, Me.ToolStripSeparator2, Me.NetzwerkdateienToolStripMenuItem, Me.ToolsToolStripMenuItem}) Me.DGVMainContext.Name = "ContextMenuStrip2" - Me.DGVMainContext.Size = New System.Drawing.Size(230, 258) + Me.DGVMainContext.Size = New System.Drawing.Size(230, 236) ' 'DgvMainContextMenuItemHost ' @@ -710,6 +726,12 @@ Partial Class Main Me.IPAdresseInZwischenablageToolStripMenuItem.Size = New System.Drawing.Size(229, 22) Me.IPAdresseInZwischenablageToolStripMenuItem.Text = "IP Adresse in Zwischenablage" ' + 'TeamviewerVerbindenToolStripMenuItem + ' + Me.TeamviewerVerbindenToolStripMenuItem.Name = "TeamviewerVerbindenToolStripMenuItem" + Me.TeamviewerVerbindenToolStripMenuItem.Size = New System.Drawing.Size(229, 22) + Me.TeamviewerVerbindenToolStripMenuItem.Text = "Teamviewer verbinden" + ' 'ToolStripSeparator3 ' Me.ToolStripSeparator3.Name = "ToolStripSeparator3" @@ -768,7 +790,7 @@ Partial Class Main Me.PanTools.Controls.Add(Me.CmdTest) Me.PanTools.Controls.Add(Me.CMdTest2) Me.PanTools.Dock = System.Windows.Forms.DockStyle.Bottom - Me.PanTools.Location = New System.Drawing.Point(200, 820) + Me.PanTools.Location = New System.Drawing.Point(200, 884) Me.PanTools.Name = "PanTools" Me.PanTools.Size = New System.Drawing.Size(1016, 100) Me.PanTools.TabIndex = 4 @@ -842,21 +864,15 @@ Partial Class Main Me.panTSSitzungen.Dock = System.Windows.Forms.DockStyle.Right Me.panTSSitzungen.Location = New System.Drawing.Point(1216, 130) Me.panTSSitzungen.Name = "panTSSitzungen" - Me.panTSSitzungen.Size = New System.Drawing.Size(365, 790) + Me.panTSSitzungen.Size = New System.Drawing.Size(365, 854) Me.panTSSitzungen.TabIndex = 5 Me.panTSSitzungen.Visible = False ' - 'TeamviewerVerbindenToolStripMenuItem - ' - Me.TeamviewerVerbindenToolStripMenuItem.Name = "TeamviewerVerbindenToolStripMenuItem" - Me.TeamviewerVerbindenToolStripMenuItem.Size = New System.Drawing.Size(229, 22) - Me.TeamviewerVerbindenToolStripMenuItem.Text = "Teamviewer verbinden" - ' 'Main ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(1581, 920) + Me.ClientSize = New System.Drawing.Size(1581, 984) Me.Controls.Add(Me.DgVMain) Me.Controls.Add(Me.PanTools) Me.Controls.Add(Me.panTSSitzungen) @@ -970,4 +986,5 @@ Partial Class Main Friend WithEvents panTSSitzungen As Panel Friend WithEvents chkTSSitzungen As CheckBox Friend WithEvents TeamviewerVerbindenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents btnBenutzerverwaltung As Button End Class diff --git a/Dokumentation/Main.resx b/Dokumentation/Main.resx index 0752b29..5be7f88 100644 --- a/Dokumentation/Main.resx +++ b/Dokumentation/Main.resx @@ -292,6 +292,9 @@ 788, 17 + + 59 + AAABAAEAgIAAAAAAGAAoyAAAFgAAACgAAACAAAAAAAEAAAEAGAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAA diff --git a/Dokumentation/Main.vb b/Dokumentation/Main.vb index ebcf49c..96db6a8 100644 --- a/Dokumentation/Main.vb +++ b/Dokumentation/Main.vb @@ -617,10 +617,8 @@ Public Class Main End Function - Private Sub CmdTest_Click(sender As Object, e As EventArgs) Handles CmdTest.Click - 'cFolder.netdelete("10.4.3.17") - End Sub + Function GetUsersInGroup(ByVal groupname As String, Optional ByVal LDAP As String = "LDAP://DC=VERAG,DC=OST,DC=DMN") As List(Of String) Dim Userlist As New List(Of String) @@ -637,10 +635,43 @@ Public Class Main Return Userlist End Function + Private Sub CmdTest_Click(sender As Object, e As EventArgs) Handles CmdTest.Click + Dim frm As New frmLeer + frm.Text = "Benutzerverwaltung" + Dim usrcntrl As New uscntr_DomUser + + usrcntrl.Dock = DockStyle.Fill : frm.PanMain.Controls.Add(usrcntrl) + frm.Size = usrcntrl.Size + frm.Show() + + AddHandler frm.FormClosing, Function() + + End Function + + + End Sub Private Sub CMdTest2_Click(sender As Object, e As EventArgs) Handles CMdTest2.Click - Dim test As New Object - Dim testuser As New cBenutzer - testuser.FillFromDC("CN=S-1-5-21-585332750-1805456821-3920631953-1235,CN=ForeignSecurityPrincipals,DC=verag,DC=ost,DC=dmn") + Dim testuser As New cDomUser + testuser.getDomUser("mit_email", "ms@verag.ag") + + Dim frm As New frmLeer + frm.Text = "Benutzerverwaltung" + Dim usrcntrl As New uscntr_DomUser + usrcntrl.DomUser = testuser + usrcntrl.Dock = DockStyle.Fill : frm.PanMain.Controls.Add(usrcntrl) + frm.Size = usrcntrl.Size + frm.Show() + + AddHandler frm.FormClosing, Function() + + End Function + + + End Sub + Private Sub btnTest3_Click(sender As Object, e As EventArgs) Handles btnTest3.Click + Dim test As New cDomUser + test.getDomUserByID("7a5ea2da4ec34c74b3145bf090b39631") + MsgBox(test.du_Nachname) End Sub Public Function GetDHCPClients(Netzwerk As String, DHCPServer As String, Fill As Boolean, ByRef ds As DataSet) @@ -1194,7 +1225,6 @@ Public Class Main Neu = True Dim frm As New frmAllgemeinEintrag frm.Text = "Neuer Eintrag" - 'Eintrag.Titel = Class1.DBNull2emptyString((DgVMain.CurrentRow.Cells("Titel").Value)) If Class1.DBNull2emptyString((DgVMain.CurrentRow.Cells("Rubrik").Value)) = "" Then frm.Eintrag.rubrik = Class1.DBNull2emptyString((DgVMain.Rows(0).Cells("Rubrik").Value)) Else @@ -1223,15 +1253,8 @@ Public Class Main frm.Show() End Sub - Private Sub btnTest3_Click(sender As Object, e As EventArgs) Handles btnTest3.Click - panTSSitzungen.Controls.Clear() - Dim dingsi As New uscntr_TSSitzungen - ' Threading.Thread.Sleep(2000) - panTSSitzungen.Controls.Add(dingsi) - End Sub - Private Sub ToolStripMenuItemINFO_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItemINFO.Click Dim frm As New frmLeer frm.Text = "INFO" @@ -1296,6 +1319,24 @@ Public Class Main End If End Sub + Private Sub btnBenutzerverwaltung_Click(sender As Object, e As EventArgs) Handles btnBenutzerverwaltung.Click + Dim frm As New frmLeer + frm.Text = "Benutzerverwaltung" + Dim usrcntrl As New uscntr_DomUserList + + usrcntrl.Dock = DockStyle.Fill : frm.PanMain.Controls.Add(usrcntrl) + frm.Size = usrcntrl.Size + frm.Show() + + AddHandler frm.FormClosing, Function() + + End Function + End Sub + + Private Sub DgVMain_CellContentClick_1(sender As Object, e As DataGridViewCellEventArgs) Handles DgVMain.CellContentClick + + End Sub + Private Sub ObjektLöschenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ObjektLöschenToolStripMenuItem.Click If Tabelle = "TbL_Netzwerkclients" Then Dim ds As New DataSet diff --git a/Dokumentation/My Project/Resources.Designer.vb b/Dokumentation/My Project/Resources.Designer.vb index a8b8540..95df627 100644 --- a/Dokumentation/My Project/Resources.Designer.vb +++ b/Dokumentation/My Project/Resources.Designer.vb @@ -60,6 +60,26 @@ Namespace My.Resources End Set End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + ''' + Friend ReadOnly Property Admin() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Admin", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + ''' + Friend ReadOnly Property Admin20() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Admin20", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + ''' ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. ''' @@ -80,6 +100,16 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + ''' + Friend ReadOnly Property ico_putty_exe0001() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("ico_putty_exe0001", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + ''' ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. ''' @@ -199,7 +229,7 @@ Namespace My.Resources End Property ''' - ''' Sucht eine lokalisierte Zeichenfolge, die 0.0.1.44 ähnelt. + ''' Sucht eine lokalisierte Zeichenfolge, die 0.0.1.47 ähnelt. ''' Friend ReadOnly Property Version() As String Get diff --git a/Dokumentation/My Project/Resources.resx b/Dokumentation/My Project/Resources.resx index a3cdcd6..a481caf 100644 --- a/Dokumentation/My Project/Resources.resx +++ b/Dokumentation/My Project/Resources.resx @@ -127,8 +127,14 @@ ..\Resources\Bearbeiten20.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\mail20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + - 0.0.1.44 + 0.0.1.47 + + + ..\Resources\Link.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Print20x20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -136,6 +142,9 @@ ..\Resources\Netzwerk20.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\ico_putty_exe0001.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + Dokumentation @@ -148,8 +157,8 @@ ..\Resources\pdf512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Link.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\msg.exe;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 DOKU @@ -157,10 +166,10 @@ ..\Resources\Link.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\mail20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Admin.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\msg.exe;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\Admin20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a \ No newline at end of file diff --git a/Dokumentation/Resources/Admin.PNG b/Dokumentation/Resources/Admin.PNG new file mode 100644 index 0000000000000000000000000000000000000000..6d11e916a5d223910e15146832ea21e8b2527f40 GIT binary patch literal 20832 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 0 Then @@ -375,4 +377,8 @@ Private Sub cmdTVConnect_Click(sender As Object, e As EventArgs) Handles cmdTVConnect.Click Ext_Programme.StartTeamviewer(txtTeamviewer.Text, txtTVKennwort.Text) End Sub + + Private Sub cmdPutty_Click(sender As Object, e As EventArgs) Handles cmdPutty.Click + Ext_Programme.startputty(Class1.MainHost(TxtIP.Text)) + End Sub End Class \ No newline at end of file diff --git a/Dokumentation/uscntr_DomUser.Designer.vb b/Dokumentation/uscntr_DomUser.Designer.vb new file mode 100644 index 0000000..9ca6fb2 --- /dev/null +++ b/Dokumentation/uscntr_DomUser.Designer.vb @@ -0,0 +1,376 @@ + _ +Partial Class uscntr_DomUser + Inherits System.Windows.Forms.UserControl + + 'UserControl ü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.cmdSave = New System.Windows.Forms.Button() + Me.TxtAvisoBenutzername = New System.Windows.Forms.TextBox() + Me.Label7 = New System.Windows.Forms.Label() + Me.TxtAvisoKennwort = New System.Windows.Forms.TextBox() + Me.Label6 = New System.Windows.Forms.Label() + Me.ChkKennwortAnzeigen = New System.Windows.Forms.CheckBox() + Me.txtDomKennwort = New System.Windows.Forms.TextBox() + Me.fu = New System.Windows.Forms.Label() + Me.CheckBox1 = New System.Windows.Forms.CheckBox() + Me.txtEMailAdresse = New System.Windows.Forms.TextBox() + Me.Label2 = New System.Windows.Forms.Label() + Me.txtVorname = New System.Windows.Forms.TextBox() + Me.Label3 = New System.Windows.Forms.Label() + Me.txtNachname = New System.Windows.Forms.TextBox() + Me.asdgdhfdehdh = New System.Windows.Forms.Label() + Me.txtDomaene = New System.Windows.Forms.TextBox() + Me.dsagg = New System.Windows.Forms.Label() + Me.txtBenutzer = New System.Windows.Forms.TextBox() + Me.Label9 = New System.Windows.Forms.Label() + Me.ddddd = New System.Windows.Forms.Label() + Me.chkEMailAktiv = New System.Windows.Forms.CheckBox() + Me.btnLoadFromAviso = New System.Windows.Forms.Button() + Me.txtInfo = New System.Windows.Forms.TextBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.ListDomUser = New System.Windows.Forms.ListBox() + Me.btnSchliessen = New System.Windows.Forms.Button() + Me.SuspendLayout() + ' + 'cmdSave + ' + Me.cmdSave.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.cmdSave.FlatAppearance.BorderColor = System.Drawing.Color.DimGray + Me.cmdSave.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.cmdSave.Location = New System.Drawing.Point(447, 219) + Me.cmdSave.Name = "cmdSave" + Me.cmdSave.Size = New System.Drawing.Size(96, 23) + Me.cmdSave.TabIndex = 15 + Me.cmdSave.Text = "Speichern" + Me.cmdSave.UseVisualStyleBackColor = False + ' + 'TxtAvisoBenutzername + ' + Me.TxtAvisoBenutzername.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest + Me.TxtAvisoBenutzername.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource + Me.TxtAvisoBenutzername.Location = New System.Drawing.Point(345, 37) + Me.TxtAvisoBenutzername.Margin = New System.Windows.Forms.Padding(8, 3, 8, 3) + Me.TxtAvisoBenutzername.Name = "TxtAvisoBenutzername" + Me.TxtAvisoBenutzername.Size = New System.Drawing.Size(222, 20) + Me.TxtAvisoBenutzername.TabIndex = 1 + ' + 'Label7 + ' + Me.Label7.AutoSize = True + Me.Label7.Location = New System.Drawing.Point(342, 21) + Me.Label7.Name = "Label7" + Me.Label7.Size = New System.Drawing.Size(104, 13) + Me.Label7.TabIndex = 140 + Me.Label7.Text = "Aviso-Benutzername" + ' + 'TxtAvisoKennwort + ' + Me.TxtAvisoKennwort.Location = New System.Drawing.Point(345, 76) + Me.TxtAvisoKennwort.Margin = New System.Windows.Forms.Padding(8, 3, 8, 3) + Me.TxtAvisoKennwort.Name = "TxtAvisoKennwort" + Me.TxtAvisoKennwort.PasswordChar = Global.Microsoft.VisualBasic.ChrW(42) + Me.TxtAvisoKennwort.Size = New System.Drawing.Size(300, 20) + Me.TxtAvisoKennwort.TabIndex = 3 + ' + 'Label6 + ' + Me.Label6.AutoSize = True + Me.Label6.Location = New System.Drawing.Point(342, 60) + Me.Label6.Name = "Label6" + Me.Label6.Size = New System.Drawing.Size(81, 13) + Me.Label6.TabIndex = 141 + Me.Label6.Text = "Aviso-Kennwort" + ' + 'ChkKennwortAnzeigen + ' + Me.ChkKennwortAnzeigen.AutoSize = True + Me.ChkKennwortAnzeigen.Location = New System.Drawing.Point(471, 59) + Me.ChkKennwortAnzeigen.Name = "ChkKennwortAnzeigen" + Me.ChkKennwortAnzeigen.Size = New System.Drawing.Size(70, 17) + Me.ChkKennwortAnzeigen.TabIndex = 138 + Me.ChkKennwortAnzeigen.Text = "Anzeigen" + Me.ChkKennwortAnzeigen.UseVisualStyleBackColor = True + ' + 'txtDomKennwort + ' + Me.txtDomKennwort.Location = New System.Drawing.Point(8, 193) + Me.txtDomKennwort.Margin = New System.Windows.Forms.Padding(8, 3, 8, 3) + Me.txtDomKennwort.Name = "txtDomKennwort" + Me.txtDomKennwort.PasswordChar = Global.Microsoft.VisualBasic.ChrW(42) + Me.txtDomKennwort.Size = New System.Drawing.Size(300, 20) + Me.txtDomKennwort.TabIndex = 11 + ' + 'fu + ' + Me.fu.AutoSize = True + Me.fu.Location = New System.Drawing.Point(5, 177) + Me.fu.Name = "fu" + Me.fu.Size = New System.Drawing.Size(52, 13) + Me.fu.TabIndex = 144 + Me.fu.Text = "Kennwort" + ' + 'CheckBox1 + ' + Me.CheckBox1.AutoSize = True + Me.CheckBox1.Location = New System.Drawing.Point(63, 176) + Me.CheckBox1.Name = "CheckBox1" + Me.CheckBox1.Size = New System.Drawing.Size(70, 17) + Me.CheckBox1.TabIndex = 10 + Me.CheckBox1.Text = "Anzeigen" + Me.CheckBox1.UseVisualStyleBackColor = True + ' + 'txtEMailAdresse + ' + Me.txtEMailAdresse.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest + Me.txtEMailAdresse.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource + Me.txtEMailAdresse.Enabled = False + Me.txtEMailAdresse.Location = New System.Drawing.Point(8, 36) + Me.txtEMailAdresse.Margin = New System.Windows.Forms.Padding(8, 3, 8, 3) + Me.txtEMailAdresse.Name = "txtEMailAdresse" + Me.txtEMailAdresse.Size = New System.Drawing.Size(244, 20) + Me.txtEMailAdresse.TabIndex = 5 + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(5, 21) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(77, 13) + Me.Label2.TabIndex = 146 + Me.Label2.Text = "E-Mail-Adresse" + ' + 'txtVorname + ' + Me.txtVorname.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest + Me.txtVorname.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource + Me.txtVorname.Location = New System.Drawing.Point(8, 76) + Me.txtVorname.Margin = New System.Windows.Forms.Padding(8, 3, 8, 3) + Me.txtVorname.Name = "txtVorname" + Me.txtVorname.Size = New System.Drawing.Size(300, 20) + Me.txtVorname.TabIndex = 6 + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Location = New System.Drawing.Point(5, 60) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(49, 13) + Me.Label3.TabIndex = 148 + Me.Label3.Text = "Vorname" + ' + 'txtNachname + ' + Me.txtNachname.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest + Me.txtNachname.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource + Me.txtNachname.Location = New System.Drawing.Point(8, 115) + Me.txtNachname.Margin = New System.Windows.Forms.Padding(8, 3, 8, 3) + Me.txtNachname.Name = "txtNachname" + Me.txtNachname.Size = New System.Drawing.Size(300, 20) + Me.txtNachname.TabIndex = 7 + ' + 'asdgdhfdehdh + ' + Me.asdgdhfdehdh.AutoSize = True + Me.asdgdhfdehdh.Location = New System.Drawing.Point(5, 99) + Me.asdgdhfdehdh.Name = "asdgdhfdehdh" + Me.asdgdhfdehdh.Size = New System.Drawing.Size(59, 13) + Me.asdgdhfdehdh.TabIndex = 150 + Me.asdgdhfdehdh.Text = "Nachname" + ' + 'txtDomaene + ' + Me.txtDomaene.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest + Me.txtDomaene.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource + Me.txtDomaene.Location = New System.Drawing.Point(8, 154) + Me.txtDomaene.Margin = New System.Windows.Forms.Padding(8, 3, 8, 3) + Me.txtDomaene.Name = "txtDomaene" + Me.txtDomaene.Size = New System.Drawing.Size(133, 20) + Me.txtDomaene.TabIndex = 8 + ' + 'dsagg + ' + Me.dsagg.AutoSize = True + Me.dsagg.Location = New System.Drawing.Point(5, 138) + Me.dsagg.Name = "dsagg" + Me.dsagg.Size = New System.Drawing.Size(47, 13) + Me.dsagg.TabIndex = 152 + Me.dsagg.Text = "Domäne" + ' + 'txtBenutzer + ' + Me.txtBenutzer.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest + Me.txtBenutzer.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource + Me.txtBenutzer.Location = New System.Drawing.Point(160, 154) + Me.txtBenutzer.Margin = New System.Windows.Forms.Padding(8, 3, 8, 3) + Me.txtBenutzer.Name = "txtBenutzer" + Me.txtBenutzer.Size = New System.Drawing.Size(148, 20) + Me.txtBenutzer.TabIndex = 9 + ' + 'Label9 + ' + Me.Label9.AutoSize = True + Me.Label9.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label9.Location = New System.Drawing.Point(144, 156) + Me.Label9.Name = "Label9" + Me.Label9.Size = New System.Drawing.Size(13, 16) + Me.Label9.TabIndex = 156 + Me.Label9.Text = "\" + ' + 'ddddd + ' + Me.ddddd.AutoSize = True + Me.ddddd.Location = New System.Drawing.Point(157, 138) + Me.ddddd.Name = "ddddd" + Me.ddddd.Size = New System.Drawing.Size(75, 13) + Me.ddddd.TabIndex = 157 + Me.ddddd.Text = "Benutzername" + ' + 'chkEMailAktiv + ' + Me.chkEMailAktiv.AutoSize = True + Me.chkEMailAktiv.Location = New System.Drawing.Point(258, 39) + Me.chkEMailAktiv.Name = "chkEMailAktiv" + Me.chkEMailAktiv.Size = New System.Drawing.Size(50, 17) + Me.chkEMailAktiv.TabIndex = 4 + Me.chkEMailAktiv.Text = "Aktiv" + Me.chkEMailAktiv.UseVisualStyleBackColor = True + ' + 'btnLoadFromAviso + ' + Me.btnLoadFromAviso.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.btnLoadFromAviso.FlatAppearance.BorderColor = System.Drawing.Color.DimGray + Me.btnLoadFromAviso.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnLoadFromAviso.Font = New System.Drawing.Font("Microsoft Sans Serif", 6.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnLoadFromAviso.Location = New System.Drawing.Point(573, 37) + Me.btnLoadFromAviso.Name = "btnLoadFromAviso" + Me.btnLoadFromAviso.Size = New System.Drawing.Size(72, 20) + Me.btnLoadFromAviso.TabIndex = 2 + Me.btnLoadFromAviso.Text = "Laden" + Me.btnLoadFromAviso.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText + Me.btnLoadFromAviso.UseVisualStyleBackColor = False + ' + 'txtInfo + ' + Me.txtInfo.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest + Me.txtInfo.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource + Me.txtInfo.Location = New System.Drawing.Point(345, 115) + Me.txtInfo.Margin = New System.Windows.Forms.Padding(8, 3, 8, 3) + Me.txtInfo.Multiline = True + Me.txtInfo.Name = "txtInfo" + Me.txtInfo.Size = New System.Drawing.Size(300, 98) + Me.txtInfo.TabIndex = 12 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(342, 99) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(28, 13) + Me.Label1.TabIndex = 161 + Me.Label1.Text = " Info" + ' + 'ListDomUser + ' + Me.ListDomUser.FormattingEnabled = True + Me.ListDomUser.Location = New System.Drawing.Point(345, 56) + Me.ListDomUser.Name = "ListDomUser" + Me.ListDomUser.Size = New System.Drawing.Size(222, 69) + Me.ListDomUser.TabIndex = 162 + Me.ListDomUser.Visible = False + ' + 'btnSchliessen + ' + Me.btnSchliessen.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.btnSchliessen.FlatAppearance.BorderColor = System.Drawing.Color.DimGray + Me.btnSchliessen.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnSchliessen.Location = New System.Drawing.Point(549, 219) + Me.btnSchliessen.Name = "btnSchliessen" + Me.btnSchliessen.Size = New System.Drawing.Size(96, 23) + Me.btnSchliessen.TabIndex = 163 + Me.btnSchliessen.Text = "Schließen" + Me.btnSchliessen.UseVisualStyleBackColor = False + ' + 'uscntr_DomUser + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.AutoSize = True + Me.BackColor = System.Drawing.SystemColors.GradientInactiveCaption + Me.Controls.Add(Me.btnSchliessen) + Me.Controls.Add(Me.ListDomUser) + Me.Controls.Add(Me.txtInfo) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.btnLoadFromAviso) + Me.Controls.Add(Me.chkEMailAktiv) + Me.Controls.Add(Me.ddddd) + Me.Controls.Add(Me.Label9) + Me.Controls.Add(Me.txtBenutzer) + Me.Controls.Add(Me.txtDomaene) + Me.Controls.Add(Me.dsagg) + Me.Controls.Add(Me.txtNachname) + Me.Controls.Add(Me.asdgdhfdehdh) + Me.Controls.Add(Me.txtVorname) + Me.Controls.Add(Me.Label3) + Me.Controls.Add(Me.txtEMailAdresse) + Me.Controls.Add(Me.Label2) + Me.Controls.Add(Me.txtDomKennwort) + Me.Controls.Add(Me.fu) + Me.Controls.Add(Me.CheckBox1) + Me.Controls.Add(Me.TxtAvisoBenutzername) + Me.Controls.Add(Me.Label7) + Me.Controls.Add(Me.TxtAvisoKennwort) + Me.Controls.Add(Me.Label6) + Me.Controls.Add(Me.ChkKennwortAnzeigen) + Me.Controls.Add(Me.cmdSave) + Me.Name = "uscntr_DomUser" + Me.Size = New System.Drawing.Size(678, 498) + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + + Friend WithEvents cmdSave As Button + Friend WithEvents TxtAvisoBenutzername As TextBox + Friend WithEvents Label7 As Label + Friend WithEvents TxtAvisoKennwort As TextBox + Friend WithEvents Label6 As Label + Friend WithEvents ChkKennwortAnzeigen As CheckBox + Friend WithEvents txtDomKennwort As TextBox + Friend WithEvents fu As Label + Friend WithEvents CheckBox1 As CheckBox + Friend WithEvents txtEMailAdresse As TextBox + Friend WithEvents Label2 As Label + Friend WithEvents txtVorname As TextBox + Friend WithEvents Label3 As Label + Friend WithEvents txtNachname As TextBox + Friend WithEvents asdgdhfdehdh As Label + Friend WithEvents dsagg As Label + Friend WithEvents txtBenutzer As TextBox + Friend WithEvents Label9 As Label + Friend WithEvents ddddd As Label + Friend WithEvents txtDomaene As TextBox + Friend WithEvents chkEMailAktiv As CheckBox + Friend WithEvents btnLoadFromAviso As Button + Friend WithEvents txtInfo As TextBox + Friend WithEvents Label1 As Label + Friend WithEvents ListDomUser As ListBox + Friend WithEvents btnSchliessen As Button +End Class diff --git a/Dokumentation/uscntr_DomUser.resx b/Dokumentation/uscntr_DomUser.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Dokumentation/uscntr_DomUser.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/Dokumentation/uscntr_DomUser.vb b/Dokumentation/uscntr_DomUser.vb new file mode 100644 index 0000000..1e47cbf --- /dev/null +++ b/Dokumentation/uscntr_DomUser.vb @@ -0,0 +1,99 @@ +Public Class uscntr_DomUser + + Dim DomList As New List(Of cDomUser) + Property DomUser As New cDomUser + + Private Sub uscntr_DomUser_Load(sender As Object, e As EventArgs) Handles Me.Load + FillForm() + End Sub + + Function FillForm() + If DomUser.Exist Then + TxtAvisoBenutzername.Text = DomUser.mit_username + TxtAvisoKennwort.Text = DomUser.mit_pwd + txtBenutzer.Text = DomUser.du_sAMAc + txtEMailAdresse.Text = DomUser.du_EMail + txtVorname.Text = DomUser.du_Vorname + txtNachname.Text = DomUser.du_Nachname + txtDomaene.Text = DomUser.du_Dom + chkEMailAktiv.Checked = DomUser.du_Email_Activated + txtInfo.Text = DomUser.du_Info + txtDomKennwort.Text = DomUser.du_Kennwort + + txtEMailAdresse.Enabled = DomUser.du_Email_Activated + End If + End Function + + Function FillDomUser() + DomUser.mit_username = TxtAvisoBenutzername.Text + DomUser.mit_pwd = TxtAvisoKennwort.Text + DomUser.du_sAMAc = txtBenutzer.Text + DomUser.du_Vorname = txtVorname.Text + DomUser.du_Nachname = txtNachname.Text + DomUser.du_Kennwort = txtDomKennwort.Text + DomUser.du_Dom = txtDomaene.Text + DomUser.du_Email_Activated = chkEMailAktiv.Checked + DomUser.du_EMail = txtEMailAdresse.Text + DomUser.du_Info = txtInfo.Text + End Function + + Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged + If CheckBox1.Checked Then + txtDomKennwort.PasswordChar = "" + Else + txtDomKennwort.PasswordChar = "*" + End If + + End Sub + + Private Sub ChkKennwortAnzeigen_CheckedChanged(sender As Object, e As EventArgs) Handles ChkKennwortAnzeigen.CheckedChanged + If ChkKennwortAnzeigen.Checked Then + TxtAvisoKennwort.PasswordChar = "" + Else + TxtAvisoKennwort.PasswordChar = "*" + End If + End Sub + + Private Sub chkEMailAktiv_CheckedChanged(sender As Object, e As EventArgs) Handles chkEMailAktiv.CheckedChanged + If chkEMailAktiv.Checked Then + txtEMailAdresse.Enabled = True + Else + txtEMailAdresse.Enabled = False + End If + End Sub + + Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnLoadFromAviso.Click + DomList.Clear() + DomUser = New cDomUser + DomUser.getFromAvisoUser(TxtAvisoBenutzername.Text) + DomList = DomUser.getFromAvisoUserLIST(TxtAvisoBenutzername.Text) + If DomList.Count = 1 Then + FillForm() + Else + ListDomUser.Items.Clear() + For Each domu As cDomUser In DomList + ListDomUser.Items.Add(domu.du_Dom & "\" & domu.du_sAMAc) + Next + ListDomUser.Visible = True + End If + + End Sub + + Private Sub cmdSave_Click(sender As Object, e As EventArgs) Handles cmdSave.Click + FillDomUser() + DomUser.Save() + End Sub + + Private Sub ListDomUser_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListDomUser.SelectedIndexChanged, ListDomUser.MouseClick + + DomUser = DomList.Item(ListDomUser.SelectedIndex) + DomUser.Exist = True + ListDomUser.Visible = False + FillForm() + End Sub + + Private Sub btnSchliessen_Click(sender As Object, e As EventArgs) Handles btnSchliessen.Click + cmdSave.PerformClick() + ParentForm.Close() + End Sub +End Class diff --git a/Dokumentation/uscntr_DomUserList.Designer.vb b/Dokumentation/uscntr_DomUserList.Designer.vb new file mode 100644 index 0000000..c261f4a --- /dev/null +++ b/Dokumentation/uscntr_DomUserList.Designer.vb @@ -0,0 +1,227 @@ + +Partial Class uscntr_DomUserList + Inherits System.Windows.Forms.UserControl + + 'UserControl ü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.components = New System.ComponentModel.Container() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.cmdNeu = New System.Windows.Forms.Button() + Me.cmdReset = New System.Windows.Forms.Button() + Me.CheckBox1 = New System.Windows.Forms.CheckBox() + Me.Label2 = New System.Windows.Forms.Label() + Me.TextBox1 = New System.Windows.Forms.TextBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.cbDomain = New System.Windows.Forms.ComboBox() + Me.Panel2 = New System.Windows.Forms.Panel() + Me.dgvListUser = New System.Windows.Forms.DataGridView() + Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.LöschenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.labAnzahl = New System.Windows.Forms.Label() + Me.ContextMenuStrip2 = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.ExportToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.Panel1.SuspendLayout() + Me.Panel2.SuspendLayout() + CType(Me.dgvListUser, System.ComponentModel.ISupportInitialize).BeginInit() + Me.ContextMenuStrip1.SuspendLayout() + Me.ContextMenuStrip2.SuspendLayout() + Me.SuspendLayout() + ' + 'Panel1 + ' + Me.Panel1.BackColor = System.Drawing.SystemColors.GradientInactiveCaption + Me.Panel1.ContextMenuStrip = Me.ContextMenuStrip2 + Me.Panel1.Controls.Add(Me.labAnzahl) + Me.Panel1.Controls.Add(Me.cmdNeu) + Me.Panel1.Controls.Add(Me.cmdReset) + Me.Panel1.Controls.Add(Me.CheckBox1) + Me.Panel1.Controls.Add(Me.Label2) + Me.Panel1.Controls.Add(Me.TextBox1) + Me.Panel1.Controls.Add(Me.Label1) + Me.Panel1.Controls.Add(Me.cbDomain) + Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel1.Location = New System.Drawing.Point(0, 0) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(678, 100) + Me.Panel1.TabIndex = 0 + ' + 'cmdNeu + ' + Me.cmdNeu.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.cmdNeu.FlatAppearance.BorderColor = System.Drawing.Color.DimGray + Me.cmdNeu.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.cmdNeu.Location = New System.Drawing.Point(501, 51) + Me.cmdNeu.Name = "cmdNeu" + Me.cmdNeu.Size = New System.Drawing.Size(96, 23) + Me.cmdNeu.TabIndex = 138 + Me.cmdNeu.Text = "Neu" + Me.cmdNeu.UseVisualStyleBackColor = False + ' + 'cmdReset + ' + Me.cmdReset.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.cmdReset.FlatAppearance.BorderColor = System.Drawing.Color.DimGray + Me.cmdReset.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.cmdReset.Location = New System.Drawing.Point(346, 51) + Me.cmdReset.Name = "cmdReset" + Me.cmdReset.Size = New System.Drawing.Size(96, 23) + Me.cmdReset.TabIndex = 137 + Me.cmdReset.Text = "Reset" + Me.cmdReset.UseVisualStyleBackColor = False + ' + 'CheckBox1 + ' + Me.CheckBox1.AutoSize = True + Me.CheckBox1.Location = New System.Drawing.Point(13, 57) + Me.CheckBox1.Name = "CheckBox1" + Me.CheckBox1.Size = New System.Drawing.Size(100, 17) + Me.CheckBox1.TabIndex = 4 + Me.CheckBox1.Text = "nur E-Mail Aktiv" + Me.CheckBox1.UseVisualStyleBackColor = True + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(10, 30) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(41, 13) + Me.Label2.TabIndex = 3 + Me.Label2.Text = "Suche:" + ' + 'TextBox1 + ' + Me.TextBox1.Location = New System.Drawing.Point(62, 27) + Me.TextBox1.Margin = New System.Windows.Forms.Padding(8) + Me.TextBox1.Name = "TextBox1" + Me.TextBox1.Size = New System.Drawing.Size(158, 20) + Me.TextBox1.TabIndex = 2 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(228, 10) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(50, 13) + Me.Label1.TabIndex = 1 + Me.Label1.Text = "Domäne:" + ' + 'cbDomain + ' + Me.cbDomain.FormattingEnabled = True + Me.cbDomain.Location = New System.Drawing.Point(231, 26) + Me.cbDomain.Name = "cbDomain" + Me.cbDomain.Size = New System.Drawing.Size(211, 21) + Me.cbDomain.TabIndex = 0 + ' + 'Panel2 + ' + Me.Panel2.Controls.Add(Me.dgvListUser) + Me.Panel2.Dock = System.Windows.Forms.DockStyle.Fill + Me.Panel2.Location = New System.Drawing.Point(0, 100) + Me.Panel2.Name = "Panel2" + Me.Panel2.Size = New System.Drawing.Size(678, 398) + Me.Panel2.TabIndex = 1 + ' + 'dgvListUser + ' + Me.dgvListUser.AllowUserToAddRows = False + Me.dgvListUser.AllowUserToDeleteRows = False + Me.dgvListUser.AllowUserToResizeRows = False + Me.dgvListUser.ContextMenuStrip = Me.ContextMenuStrip1 + Me.dgvListUser.Dock = System.Windows.Forms.DockStyle.Fill + Me.dgvListUser.Location = New System.Drawing.Point(0, 0) + Me.dgvListUser.MultiSelect = False + Me.dgvListUser.Name = "dgvListUser" + Me.dgvListUser.ReadOnly = True + Me.dgvListUser.RowHeadersVisible = False + Me.dgvListUser.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect + Me.dgvListUser.Size = New System.Drawing.Size(678, 398) + Me.dgvListUser.TabIndex = 0 + ' + 'ContextMenuStrip1 + ' + Me.ContextMenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.LöschenToolStripMenuItem}) + Me.ContextMenuStrip1.Name = "ContextMenuStrip1" + Me.ContextMenuStrip1.Size = New System.Drawing.Size(119, 26) + ' + 'LöschenToolStripMenuItem + ' + Me.LöschenToolStripMenuItem.Name = "LöschenToolStripMenuItem" + Me.LöschenToolStripMenuItem.Size = New System.Drawing.Size(118, 22) + Me.LöschenToolStripMenuItem.Text = "Löschen" + ' + 'labAnzahl + ' + Me.labAnzahl.AutoSize = True + Me.labAnzahl.Location = New System.Drawing.Point(535, 10) + Me.labAnzahl.Name = "labAnzahl" + Me.labAnzahl.Size = New System.Drawing.Size(39, 13) + Me.labAnzahl.TabIndex = 139 + Me.labAnzahl.Text = "Label3" + ' + 'ContextMenuStrip2 + ' + Me.ContextMenuStrip2.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ExportToolStripMenuItem}) + Me.ContextMenuStrip2.Name = "ContextMenuStrip2" + Me.ContextMenuStrip2.Size = New System.Drawing.Size(181, 48) + ' + 'ExportToolStripMenuItem + ' + Me.ExportToolStripMenuItem.Name = "ExportToolStripMenuItem" + Me.ExportToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.ExportToolStripMenuItem.Text = "Export" + ' + 'uscntr_DomUserList + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.AutoSize = True + Me.Controls.Add(Me.Panel2) + Me.Controls.Add(Me.Panel1) + Me.MinimumSize = New System.Drawing.Size(678, 498) + Me.Name = "uscntr_DomUserList" + Me.Size = New System.Drawing.Size(678, 498) + Me.Panel1.ResumeLayout(False) + Me.Panel1.PerformLayout() + Me.Panel2.ResumeLayout(False) + CType(Me.dgvListUser, System.ComponentModel.ISupportInitialize).EndInit() + Me.ContextMenuStrip1.ResumeLayout(False) + Me.ContextMenuStrip2.ResumeLayout(False) + Me.ResumeLayout(False) + + End Sub + + Friend WithEvents Panel1 As Panel + Friend WithEvents Panel2 As Panel + Friend WithEvents dgvListUser As DataGridView + Friend WithEvents Label1 As Label + Friend WithEvents cbDomain As ComboBox + Friend WithEvents Label2 As Label + Friend WithEvents TextBox1 As TextBox + Friend WithEvents CheckBox1 As CheckBox + Friend WithEvents cmdNeu As Button + Friend WithEvents cmdReset As Button + Friend WithEvents ContextMenuStrip1 As ContextMenuStrip + Friend WithEvents LöschenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents labAnzahl As Label + Friend WithEvents ContextMenuStrip2 As ContextMenuStrip + Friend WithEvents ExportToolStripMenuItem As ToolStripMenuItem +End Class diff --git a/Dokumentation/uscntr_DomUserList.resx b/Dokumentation/uscntr_DomUserList.resx new file mode 100644 index 0000000..fc9df5e --- /dev/null +++ b/Dokumentation/uscntr_DomUserList.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 174, 17 + + + 17, 17 + + \ No newline at end of file diff --git a/Dokumentation/uscntr_DomUserList.vb b/Dokumentation/uscntr_DomUserList.vb new file mode 100644 index 0000000..c81a39d --- /dev/null +++ b/Dokumentation/uscntr_DomUserList.vb @@ -0,0 +1,139 @@ +Imports System.Windows.Forms + +Public Class uscntr_DomUserList + Private Sub uscntr_DomUserList_Load(sender As Object, e As EventArgs) Handles Me.Load + Class1.EnableDoubleBuffered(dgvListUser) + LoadDomains() + LoadDGV() + End Sub + + Function LoadDomains() + Dim ds As New DataSet + cSQL.SQL2DS("select distinct du_dom from Doku.dbo.TbL_DomUser order by du_dom", ds, Class1.DBDoku) + cbDomain.Items.Add("*") + For Each row As DataRow In ds.Tables(0).Rows + cbDomain.Items.Add(row.Item(0).ToString) + Next + End Function + + + Function LoadDGV(Optional ByVal ReturnDataTable As Boolean = False) + + Dim ds As New DataSet + cSQL.SQL2DS("select * from Doku.dbo.TbL_DomUser " & ReturnOfTheWhere() & " ORDER BY du_nachname", ds, Class1.DBDoku) + + With dgvListUser + .DefaultCellStyle.BackColor = Color.White + .AlternatingRowsDefaultCellStyle.BackColor = Color.AliceBlue + .DataSource = ds.Tables(0) + + For Each col As DataGridViewColumn In dgvListUser.Columns + col.Visible = False + Next + + .Columns("du_Vorname").Visible = True + .Columns("du_Vorname").HeaderText = "Vorname" + + .Columns("du_Nachname").Visible = True + .Columns("du_Nachname").HeaderText = "Nachname" + + .Columns("du_email").Visible = True + .Columns("du_email").HeaderText = "E-Mail" + + .Columns("du_email_Activated").Visible = True + .Columns("du_email_Activated").HeaderText = "EA" + .Columns("du_email_Activated").Width = 40 + + .Columns("du_dom").Visible = True + .Columns("du_dom").HeaderText = "Domäne" + + .Columns("du_sAMAc").Visible = True + .Columns("du_sAMAc").HeaderText = "Benutzername" + + .Columns("du_Info").Visible = True + .Columns("du_Info").HeaderText = "Info" + .Columns("du_Info").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill + End With + + If ReturnDataTable = True Then Return ds.Tables(0) + labAnzahl.Text = "Anzahl der Einträge: " & dgvListUser.Rows.Count + + End Function + + Private Sub dgvListUser_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvListUser.CellDoubleClick 'dgvListUser.CellContentDoubleClick ', dgvListUser.CellDoubleClick + Dim testuser As New cDomUser + testuser.getDomUser("du_ID", dgvListUser.CurrentRow.Cells("du_ID").Value) + + If Application.OpenForms().OfType(Of uscntr_DomUser).Any Then Exit Sub + + Dim frm As New frmLeer + frm.Text = testuser.du_sAMAc + Dim usrcntrl As New uscntr_DomUser + usrcntrl.DomUser = testuser + usrcntrl.Dock = DockStyle.Fill : frm.PanMain.Controls.Add(usrcntrl) + frm.Size = usrcntrl.Size + Me.Parent.Enabled = False + + AddHandler frm.FormClosing, Function() + Me.Parent.Enabled = True + BringToFront() + LoadDGV() + End Function + + frm.ShowDialog() + + End Sub + + Function ReturnOfTheWhere() + Dim Dom As String = cbDomain.SelectedItem + If Dom = "*" Or Dom = "" Then Dom = "%%" + + Dim MailEn As String = "" + If CheckBox1.CheckState = CheckState.Checked Then + MailEn = "AND du_Email_Activated = 'True'" + ElseIf CheckBox1.CheckState = CheckState.Unchecked Then + MailEn = "" + End If + + Dim ding As String = "WHERE (du_Email LIKE '%{0}%' OR du_Vorname LIKE '%{0}%' OR du_Nachname LIKE '%{0}%' OR du_sAMAc LIKE '%{0}%' OR du_Info LIKE '%{0}%') AND du_Dom LIKE '%{1}%' {2}" + Return String.Format(ding, TextBox1.Text, Dom, MailEn) + End Function + + Private Sub cmdNeu_Click(sender As Object, e As EventArgs) Handles cmdNeu.Click + Dim frm As New frmLeer + frm.Text = "neuer Benutzer" + Dim usrcntrl As New uscntr_DomUser + usrcntrl.Dock = DockStyle.Fill : frm.PanMain.Controls.Add(usrcntrl) + frm.Size = usrcntrl.Size + + AddHandler frm.FormClosing, Function() + Me.Parent.Enabled = True + BringToFront() + LoadDGV() + End Function + + frm.ShowDialog() + End Sub + + Private Sub cbDomain_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbDomain.SelectedIndexChanged, TextBox1.TextChanged, CheckBox1.CheckedChanged + LoadDGV() + End Sub + + Private Sub cmdReset_Click(sender As Object, e As EventArgs) Handles cmdReset.Click + TextBox1.Text = "" + cbDomain.SelectedItem = "*" + End Sub + + Private Sub LöschenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles LöschenToolStripMenuItem.Click + Dim domdom As New cDomUser + domdom.getDomUserByID(dgvListUser.SelectedRows.Item(0).Cells(0).Value) '(dgvListUser.SelectedRows.Item("du_ID").ToString) + ' MsgBox(domdom.du_Nachname) + domdom.Delete() + + LoadDGV() + End Sub + + Private Sub ExportToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ExportToolStripMenuItem.Click + Class1.datatable_2_csv_export(LoadDGV(True)) + End Sub +End Class diff --git a/Dokumentation/uscntr_TSSitzungen.Designer.vb b/Dokumentation/uscntr_TSSitzungen.Designer.vb index a236a37..73c0b85 100644 --- a/Dokumentation/uscntr_TSSitzungen.Designer.vb +++ b/Dokumentation/uscntr_TSSitzungen.Designer.vb @@ -28,6 +28,7 @@ Partial Class uscntr_TSSitzungen Me.VerbindenMitTeamVToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.NachrichtSendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.UpdateToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ProfildatenÖffnenExplorerToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.Timer1 = New System.Windows.Forms.Timer(Me.components) Me.Panel1 = New System.Windows.Forms.Panel() Me.lblAnzahl = New System.Windows.Forms.Label() @@ -66,31 +67,37 @@ Partial Class uscntr_TSSitzungen ' 'ContextMenuStrip1 ' - Me.ContextMenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.VerbindenMitTeamVToolStripMenuItem, Me.NachrichtSendenToolStripMenuItem, Me.UpdateToolStripMenuItem}) + Me.ContextMenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.VerbindenMitTeamVToolStripMenuItem, Me.NachrichtSendenToolStripMenuItem, Me.UpdateToolStripMenuItem, Me.ProfildatenÖffnenExplorerToolStripMenuItem}) Me.ContextMenuStrip1.Name = "ContextMenuStrip1" - Me.ContextMenuStrip1.Size = New System.Drawing.Size(190, 70) + Me.ContextMenuStrip1.Size = New System.Drawing.Size(225, 92) ' 'VerbindenMitTeamVToolStripMenuItem ' Me.VerbindenMitTeamVToolStripMenuItem.Name = "VerbindenMitTeamVToolStripMenuItem" - Me.VerbindenMitTeamVToolStripMenuItem.Size = New System.Drawing.Size(189, 22) + Me.VerbindenMitTeamVToolStripMenuItem.Size = New System.Drawing.Size(224, 22) Me.VerbindenMitTeamVToolStripMenuItem.Text = "Verbinden mit TeamV." ' 'NachrichtSendenToolStripMenuItem ' Me.NachrichtSendenToolStripMenuItem.Name = "NachrichtSendenToolStripMenuItem" - Me.NachrichtSendenToolStripMenuItem.Size = New System.Drawing.Size(189, 22) + Me.NachrichtSendenToolStripMenuItem.Size = New System.Drawing.Size(224, 22) Me.NachrichtSendenToolStripMenuItem.Text = "Nachricht senden" ' 'UpdateToolStripMenuItem ' Me.UpdateToolStripMenuItem.Name = "UpdateToolStripMenuItem" - Me.UpdateToolStripMenuItem.Size = New System.Drawing.Size(189, 22) + Me.UpdateToolStripMenuItem.Size = New System.Drawing.Size(224, 22) Me.UpdateToolStripMenuItem.Text = "Update" ' + 'ProfildatenÖffnenExplorerToolStripMenuItem + ' + Me.ProfildatenÖffnenExplorerToolStripMenuItem.Name = "ProfildatenÖffnenExplorerToolStripMenuItem" + Me.ProfildatenÖffnenExplorerToolStripMenuItem.Size = New System.Drawing.Size(224, 22) + Me.ProfildatenÖffnenExplorerToolStripMenuItem.Text = "Profildaten öffnen (Explorer)" + ' 'Timer1 ' - Me.Timer1.Interval = 10000 + Me.Timer1.Interval = 600000 ' 'Panel1 ' @@ -277,4 +284,5 @@ Partial Class uscntr_TSSitzungen Friend WithEvents VerbindenMitTeamVToolStripMenuItem As ToolStripMenuItem Friend WithEvents btnClient As Button Friend WithEvents btnSitzung As Button + Friend WithEvents ProfildatenÖffnenExplorerToolStripMenuItem As ToolStripMenuItem End Class diff --git a/Dokumentation/uscntr_TSSitzungen.vb b/Dokumentation/uscntr_TSSitzungen.vb index 2456be1..c99359f 100644 --- a/Dokumentation/uscntr_TSSitzungen.vb +++ b/Dokumentation/uscntr_TSSitzungen.vb @@ -1,6 +1,8 @@ Public Class uscntr_TSSitzungen Dim Client As Boolean = False + Dim SelectedIndex As Integer = 0 + Dim StartIndex As Integer = 0 Private Sub uscntr_TSSitzungen_Load(sender As Object, e As EventArgs) Handles Me.Load Class1.EnableDoubleBuffered(dgvTSSitzungen) @@ -13,6 +15,8 @@ cSQL.SQL2DS("SELECT * FROM TbL_TSSitzungen WHERE Name LIKE '" & ReturnOfTheWhere() & "' OR TSServer LIKE '" & ReturnOfTheWhere() & "' ORDER BY NAME", ds) With dgvTSSitzungen + .DefaultCellStyle.BackColor = Color.White + .AlternatingRowsDefaultCellStyle.BackColor = Color.AliceBlue .RowHeadersVisible = False .DataSource = ds.Tables(0) .Columns("Domain").Visible = False @@ -50,6 +54,12 @@ End If + Try + dgvTSSitzungen.Rows(SelectedIndex).Selected = True + dgvTSSitzungen.FirstDisplayedScrollingRowIndex = StartIndex + Catch ex As Exception + MsgBox(ex.Message) + End Try End Function @@ -142,4 +152,30 @@ cmdNachricht.Enabled = Not Client Load2DGV() End Sub + + Private Sub ProfildatenÖffnenExplorerToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ProfildatenÖffnenExplorerToolStripMenuItem.Click + Dim Username As String = dgvTSSitzungen.CurrentRow.Cells("BenutzerAnmeldeName").Value + Dim Server As String = dgvTSSitzungen.CurrentRow.Cells("TSServer").Value & "." & dgvTSSitzungen.CurrentRow.Cells("Domain").Value + Dim temp As String = Username + Do Until temp.Substring(0, 1) = "\" + temp = temp.Substring(1, temp.Length - 1) + Loop + Username = temp.Substring(1, temp.Length - 1) + + Dim Path As String = "\\" & Server & "\C$\Users\" & Username + + IO.Directory.CreateDirectory(Path) + Process.Start(Path) + End Sub + + Private Sub dgvTSSitzungen_CellContentClick_1(sender As Object, e As DataGridViewCellEventArgs) Handles dgvTSSitzungen.CellContentClick, dgvTSSitzungen.CellClick + SelectIndexes() + End Sub + Private Sub DGVScroll() Handles dgvTSSitzungen.Scroll + SelectIndexes() + End Sub + Function SelectIndexes() + SelectedIndex = dgvTSSitzungen.CurrentRow.Index + StartIndex = dgvTSSitzungen.FirstDisplayedScrollingRowIndex + End Function End Class