Files
AVISO/Aviso/frmLogin.vb
2019-09-10 14:15:44 +02:00

474 lines
18 KiB
VB.net

Imports System.IO
Imports System.Windows.Forms
Imports VERAG_PROG_ALLGEMEIN
Imports System.Reflection
Imports System.DirectoryServices
Public Class frmLogin
Public AnmeldungOK As Boolean = False
' Public USRBER As String
'Public USRNAME As String
' Public USRID As String
Private ADMIN As New cADMIN
Public firma As String = "VERAG"
Public Sub New()
InitializeComponent()
Icon = cMeineFunktionenAVISO.GetProgrammIcon
End Sub
Dim TESTSYSTEM As Boolean = False
Private Sub frmLogin_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
If e.Modifiers = Keys.Control And e.KeyCode = Keys.T Then
TESTSYSTEM = Not TESTSYSTEM
initstart()
If Environment.MachineName = "YLPS023046" Then
txtSachbear.Text = "ADMIN"
txtKennwort.Text = "verag#2"
End If
End If
If e.Modifiers = Keys.Control And e.KeyCode = Keys.A Then
firma = If(firma = "VERAG", "ATILLA", If(firma = "ATILLA", "IMEX", "VERAG"))
initstart()
If Environment.MachineName = "YLPS023046" Then
txtSachbear.Text = "ADMIN"
txtKennwort.Text = "verag#2"
End If
End If
End Sub
Private Sub frmAnmeldung_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
lblVersion.Text = "Version " & Application.ProductVersion
lblVersion.ContextMenuStrip = ctxUpdate
If Application.ProductVersion.StartsWith("0") Then lblVersion.Text += " BETA"
Dim pfadDatei As String = Application.StartupPath & "\Standort.txt"
firma = "VERAG"
VERAG_PROG_ALLGEMEIN.cAllgemein.PROGNAME = "AVISO_NEW"
VERAG_PROG_ALLGEMEIN.cAllgemein.PROGID = 16
VERAG_PROG_ALLGEMEIN.cAllgemein.PROGVERSION = Application.ProductVersion
If File.Exists(pfadDatei) Then
Dim fs As New FileStream(pfadDatei, FileMode.Open, FileAccess.Read)
Dim strmReader As New StreamReader(fs)
firma = strmReader.ReadLine
If firma = "SBG" Then firma = "VERAG"
If firma = "WAI" Then firma = "VERAG"
If firma = "NKD" Then firma = "VERAG"
If firma = "NEU" Then firma = "VERAG"
If firma = "SUB" Then firma = "VERAG"
End If
' Me.Visible = False
' Me.Hide()
'STARTPARAMETER - DP
Dim PARAM = ""
Dim parameter() As String = Environment.GetCommandLineArgs().ToArray
If (parameter.Count - 1) >= 1 Then 'Höher als 1 weil der index 0 der Pfad zum programm ist
PARAM = parameter(1)
End If
If PARAM = "DIENSTPLAN" Then
Me.ShowInTaskbar = False
VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "VERAG"
VERAG_PROG_ALLGEMEIN.cAllgemein.ABTEILUNG = "SUB"
Dim fdp As New SDL.frmDienstplan
AddHandler fdp.FormClosed, Sub()
Application.Exit()
End Sub
fdp.Show()
Me.Visible = False
Me.Hide()
Me.WindowState = FormWindowState.Minimized
Exit Sub
ElseIf PARAM = "FORMULARMANAGER" Then
Me.ShowInTaskbar = False
VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "IMEX"
VERAG_PROG_ALLGEMEIN.cAllgemein.ABTEILUNG = "SUB"
Dim fdp As New SDL.frmFormulare
AddHandler fdp.FormClosed, Sub()
Application.Exit()
End Sub
fdp.Show()
Me.Visible = False
Me.Hide()
Me.WindowState = FormWindowState.Minimized
Exit Sub
End If
initstart()
Try
Using myGraphics As Graphics = Me.CreateGraphics()
VERAG_PROG_ALLGEMEIN.cAllgemein.dpi = myGraphics.DpiX
End Using
Catch ex As Exception
End Try
End Sub
Sub initstart()
Select Case firma
Case "VERAG"
' cGlobal.ConnStrFMZOLL = VERAG_PROG_ALLGEMEIN.My.MySettings.Default.FMZOLL_PRODConnectionString
' cGlobal.ConnStr = VERAG_PROG_ALLGEMEIN.My.MySettings.Default.AVISOConnectionString
' cGlobal.ConnStrADMIN = VERAG_PROG_ALLGEMEIN.My.MySettings.Default.ADMINConnectionString
picLogin.Image = My.Resources.Verag_AG_Logopng
' If TESTSYSTEM Then cGlobal.ConnStr = VERAG_PROG_ALLGEMEIN.My.MySettings.Default.AVISOConnectionStringTEST
Case "ATILLA"
' cGlobal.ConnStrFMZOLL = VERAG_PROG_ALLGEMEIN.My.MySettings.Default.FMZOLL_PRODConnectionString
' cGlobal.ConnStr = VERAG_PROG_ALLGEMEIN.My.MySettings.Default.AVISO_ATILLAConnectionString
' cGlobal.ConnStrADMIN = VERAG_PROG_ALLGEMEIN.My.MySettings.Default.ADMINConnectionString
picLogin.Image = My.Resources.Atilla
' If TESTSYSTEM Then cGlobal.ConnStr = VERAG_PROG_ALLGEMEIN.My.MySettings.Default.AVISOConnectionStringTEST
Case "IMEX"
' cGlobal.ConnStrFMZOLL = VERAG_PROG_ALLGEMEIN.My.MySettings.Default.FMZOLL_PRODConnectionString
' cGlobal.ConnStr = VERAG_PROG_ALLGEMEIN.My.MySettings.Default.AVISO_ATILLAConnectionString
' cGlobal.ConnStrADMIN = VERAG_PROG_ALLGEMEIN.My.MySettings.Default.ADMINConnectionString
picLogin.Image = My.Resources.IMEX_LOGO_simple
' If TESTSYSTEM Then cGlobal.ConnStr = VERAG_PROG_ALLGEMEIN.My.MySettings.Default.AVISOConnectionStringTEST
End Select
'DEV FMZOLL
If TESTSYSTEM Then
' cGlobal.ConnStrFMZOLL = VERAG_PROG_ALLGEMEIN.My.MySettings.Default.FMZOLLConnectionString
lblTESTSYSTEM.Visible = True
Else
lblTESTSYSTEM.Visible = False
End If
VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = firma
VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = TESTSYSTEM
' txtSachbear.Text = ""
'txtKennwort.Text = ""
txtSachbear.Text = SystemInformation.UserName
txtSachbear.Focus()
Try
Dim WI = System.Security.Principal.WindowsIdentity.GetCurrent().Name
If WI.Contains("\") Then
Dim Split() = WI.Split("\")
Dim UsernameTMP = ADMIN.getUstName_ByAD(Split(0), Split(1))
If UsernameTMP <> "" Then
txtSachbear.Text = UsernameTMP
End If
End If
Catch ex As Exception
'MsgBox(ex.Message)
End Try
End Sub
Private Sub btnOK_Click(sender As System.Object, e As System.EventArgs) Handles btnOK.Click
If firma = "ATILLA" Then
Dim büroDatei As String = "C:\VERAG\büro.txt"
If File.Exists(büroDatei) Then
Dim l = IO.File.ReadAllLines(büroDatei, System.Text.Encoding.Default)
If l.Count > 0 Then
If l(0) <> "" Then VERAG_PROG_ALLGEMEIN.cAllgemein.BÜRO = l(0)
End If
End If
Dim büroDatei2 As String = "C:\VERAG\büro"
If File.Exists(büroDatei2) Then
Dim l = IO.File.ReadAllLines(büroDatei2, System.Text.Encoding.Default)
If l.Count > 0 Then
If l(0) <> "" Then VERAG_PROG_ALLGEMEIN.cAllgemein.BÜRO = l(0)
End If
End If
End If
''hier erfolgt die Anmelde-Prüfung
'ADMIN-Login
If txtSachbear.Text.Trim = "ADMIN" And txtKennwort.Text = My.Resources.ADMIN_pwd Then
AdminLoginOK()
Exit Sub
End If
' normaler Login
If CBool(ADMIN.checkLogin(txtSachbear.Text.Trim, txtKennwort.Text, firma)) Then
loginOK()
Else
' MsgBox("Benutzername oder Kennwort ist falsch!", MsgBoxStyle.Exclamation, "Fehler bei Anmeldung")
lblAlertTxt.Visible = True
End If
Exit Sub
'AUS
If txtSachbear.Text = "" Then
MsgBox("Bitte das Mitarbeiter-Kürzel eingeben.", MsgBoxStyle.Exclamation, "Fehler bei Anmeldung")
txtSachbear.Focus()
Exit Sub
End If
'Mitarbeiterdaten laden
'Dim myMitarbeiter As New cMitarbeiterDAL
' cGlobal.AktiverMitarbeiter = myMitarbeiter.LesenMitarbeiter(0, txtSachbear.Text.Trim)
If IsNothing(cGlobal.AktiverMitarbeiter) Then
MsgBox("Mitarbeiter unbekannt!", MsgBoxStyle.Exclamation, "Fehler bei Anmeldung")
txtSachbear.Focus()
Exit Sub
End If
If VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG = "" Then VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG = "???"
If txtKennwort.Text <> cGlobal.AktiverMitarbeiter.KW Then
MsgBox("Ungültiges Kennwort!", MsgBoxStyle.Exclamation, "Fehler bei Anmeldung")
txtKennwort.Text = ""
txtKennwort.Focus()
Exit Sub
End If
''jetzt noch Optionen laden
'Dim OptionenDAL As New cOptionenDAL
'cGlobal.Optionen = OptionenDAL.LesenOptionen()
'If IsNothing(cGlobal.Optionen) Then
' MsgBox("Fehler beim Laden der Optionen. Das Zeit-Programm kann nicht gestartet werden.", vbCritical)
' Me.Close()
'End If
'Hauptfenster starten, sobald Logon erfolgreich
cGlobal.AngemeldeterUser = txtSachbear.Text.Trim
cGlobal.AngemeldeterUserPwd = txtKennwort.Text.Trim
AnmeldungOK = True
'Anmeldefenster schließen
' Me.Close()
Me.Hide()
End Sub
Private Sub loginOK()
'Prüfen, ob Passwort erneuert werden muss
If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_PasswortChanged Is Nothing Then
Dim f As New frmChangePWD(VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER)
f.txtPwdOld.Text = txtKennwort.Text
f.txtPwdNew1.Focus()
If f.ShowDialog() <> Windows.Forms.DialogResult.OK Then
Exit Sub
End If
End If
VERAG_PROG_ALLGEMEIN.cAllgemein.PROGNAME = "AVISO"
VERAG_PROG_ALLGEMEIN.cAllgemein.PROGVERSION = My.Resources.Version
VERAG_PROG_ALLGEMEIN.cAllgemein.SESSION.LOGIN()
frmHauptfenster.Show()
frmHauptfenster.Visible = True
frmHauptfenster.WindowState = FormWindowState.Maximized
cGlobal.AktiverMitarbeiter = ADMIN.cMitarbeiterAVISO
'Me.Close()
Me.Hide()
cGlobal.AngemeldeterUser = cGlobal.AktiverMitarbeiter.Mitarbeiter
AnmeldungOK = True
End Sub
Private Sub AdminLoginOK()
Dim cMitarbeiter As New cMitarbeiterAVISO
cMitarbeiter.MitarbeiterID = 0
' VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG = "SUB"
cMitarbeiter.Mitarbeiter = "PROGRAMM_ADMIN"
cMitarbeiter.Mitarbeitername = "Programm_administrator"
cMitarbeiter.KW = My.Resources.ADMIN_pwd
'cMitarbeiter.Sicherheitsstufe = 0
cMitarbeiter.Info = ""
cGlobal.AktiverMitarbeiter = cMitarbeiter
'Me.Close()
Me.Hide()
cGlobal.AngemeldeterUser = cGlobal.AktiverMitarbeiter.Mitarbeiter
AnmeldungOK = True
End Sub
Private Sub btnAbbruch_Click(sender As System.Object, e As System.EventArgs)
Me.Close()
Application.Exit()
End Sub
Private Sub frmAnmeldung_Shown(sender As Object, e As EventArgs) Handles Me.Shown
' UPDATEUpdater
If cProgramFunctions.updateUpdater() Then
MsgBox("Der Aviso-Updater wurde aktualisiert. Es muss ein Update durchgeführt werden.")
UpdateAVISO()
End If
Dim cUpdateUpdater As New cUpdateUpdater
If cUpdateUpdater.UpdateUpdater() = False Then
MsgBox("Probleme mit dem Updater")
End If
'auf UPDATES prüfen:
Dim DB As New cADMIN
If CInt(DB.getAktuelleVersion().Replace(".", "")) > CInt(My.Resources.Version.Replace(".", "")) Then
Me.Enabled = False
If vbYes = MsgBox("Es ist eine neue Programm-Version verfügbar. Das Programm muss aktualisiert werden, bevor Sie es weiter verwenden können. " & vbNewLine & vbNewLine & "Update jetzt durchführen?", CType(vbQuestion + vbYesNo, MsgBoxStyle), "Update verfügbar") Then
UpdateAVISO()
Else
Application.Exit()
'frmMain.Dispose()
'frmHauptfenster.Dispose()
End If
End If
txtSachbear.Focus()
If Environment.MachineName = "YLPS023046" Then
txtSachbear.Text = "ADMIN"
txtKennwort.Text = "verag#2"
' If MsgBox("AUTO-LOGIN?", vbYesNoCancel) = vbYes Then btnOK.PerformClick()
End If
End Sub
Private Sub lblVersion_OnClick(sender As Object, e As MouseEventArgs) Handles lblVersion.MouseClick
ctxUpdate.Show(lblVersion, e.Location)
End Sub
Private Sub UpdateToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles UpdateToolStripMenuItem.Click
UpdateAVISO()
End Sub
Public Sub UpdateAVISO()
'Zuerst den Updater Prüfen:
cProgramFunctions.updateUpdater()
If Not System.IO.File.Exists(AppDomain.CurrentDomain.BaseDirectory & "AVISOUPDATER.exe") Then
MsgBox("ERROR_UPDATE: Update konnte nicht fortgesetzt werden." & vbNewLine & vbNewLine & "Update-Datei existiert nicht.", vbCritical)
Else
Application.Exit()
Process.Start("AVISOUPDATER.exe")
End If
End Sub
' Private WithEvents T As New Timers.Timer With {.Interval = 500, .Enabled = True, .AutoReset = True}
Private FormCount As Integer = 1
Private Sub SomeForm_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
If e.KeyData = Keys.PrintScreen Then
Dim TheForm = DirectCast(DirectCast(sender, Control).TopLevelControl, Form)
If Not TheForm Is Nothing Then
Dim c As New cProgramFunctions
c.screenshot()
End If
End If
End Sub
Private Sub HookControls(ByVal f As Control)
For Each Control As Control In f.Controls
AddHandler Control.KeyUp, AddressOf SomeForm_KeyUp
If Control.Controls.Count <> 0 Then
HookControls(Control)
End If
Next
End Sub
Dim lastCheckedForm As String = ""
Private Sub T_Elapsed(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs) 'Handles T.Elapsed
If False Then
Try
Dim F2 As Form = My.Application.OpenForms.Item(My.Application.OpenForms.Count - 1)
Dim app = F2.GetType.Module.Name.Replace(".exe", "")
' MsgBox(lastCheckedForm & " _ " & app & F2.Name)
' If lastCheckedForm <> (app & F2.Name) Then
'MsgBox("W1")
' MsgBox(app & F2.Name)
Dim ber As Integer = VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG(app, F2.Name)
'MsgBox(ber)
If ber >= 99 Then
MsgBox("Zugriff verweigert. Sie haben keine Berechtigung. " & vbNewLine & F2.Name)
F2.Close()
F2.Dispose()
End If
lastCheckedForm = app & F2.Name
'End If
' AddHandler My.Application.
Catch ex As Exception
' MsgBox(ex.Message)
End Try
Exit Sub
End If
If FormCount = 0 Then FormCount = 1
Dim FormOpened As Integer = My.Application.OpenForms.Count
If FormCount <> FormOpened Then
If FormOpened > FormCount Then
For x As Integer = 1 To (FormOpened - FormCount)
Dim F As Form = My.Application.OpenForms.Item(FormOpened - x)
AddHandler F.KeyDown, AddressOf SomeForm_KeyUp
HookControls(F)
FormCount = My.Application.OpenForms.Count
Next
Else
FormCount = My.Application.OpenForms.Count
End If
End If
End Sub
Private Sub FlatButton1_Click(sender As Object, e As EventArgs) Handles FlatButton1.Click
Me.Hide()
Application.Exit()
End Sub
Private Sub VERAGToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles VERAGToolStripMenuItem.Click
firma = "VERAG"
initstart()
End Sub
Private Sub ATILLAToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ATILLAToolStripMenuItem.Click
firma = "ATILLA"
initstart()
End Sub
Private Sub PRODUKTIVToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PRODUKTIVToolStripMenuItem.Click
TESTSYSTEM = False
initstart()
End Sub
Private Sub TESTSYSTEMToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles TESTSYSTEMToolStripMenuItem1.Click
TESTSYSTEM = True
initstart()
End Sub
Private Sub FlatButton2_MouseClick(sender As Object, e As MouseEventArgs) Handles FlatButton2.MouseClick
ContextMenuStrip2.Show(lblVersion, e.Location)
End Sub
Private Sub UpdateToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles UpdateToolStripMenuItem1.Click
UpdateAVISO()
End Sub
Private Sub IMEXToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles IMEXToolStripMenuItem.Click
firma = "IMEX"
initstart()
End Sub
Private Sub Panel1_Paint(sender As Object, e As PaintEventArgs) Handles Panel1.Paint
End Sub
End Class