Gruppen_UserStruktur

This commit is contained in:
Digital Data - Marlon Schreiber 2018-05-18 14:39:15 +02:00
parent 1a9254630f
commit a3d87f3f8c
4 changed files with 74 additions and 24 deletions

Binary file not shown.

View File

@ -84,43 +84,31 @@ Public Class ClassInit
ClassLogger.Add(">> Username: " & USER_USERNAME, False)
CURRENT_USERID = ClassDatabase.Execute_Scalar(sql, MyConnectionString, True)
Dim userexists As Boolean = True
If IsDBNull(CURRENT_USERID) Or IsNothing(CURRENT_USERID) Then
userexists = False
USER_EXISTS = False
Else
USER_EXISTS = True
End If
If userexists = False Then
If USER_EXISTS = False Then
ClassLogger.Add("User '" & USER_USERNAME & "' not configured in Useradministration! (DBNull)", True)
'MsgBox("Achtung: Sie sind nicht in der Userverwaltung hinterlegt." & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!", MsgBoxStyle.Critical, "Achtung:")
'Me.Close()
ERROR_STATE = "NO USER"
' Throw New Exception("You are not configured in the Useradministration." & vbNewLine & "Please contact the system administrator!")
MsgBox("You are not configured in the Useradministration." & vbNewLine & "Please contact the system administrator!",MsgBoxStyle.Exclamation)
MsgBox("You are not configured in the Useradministration." & vbNewLine & "Please contact the system administrator!", MsgBoxStyle.Exclamation)
Else
If LogErrorsOnly = False Then ClassLogger.Add(" >> User exists....", False)
'Am System anmelden
Refresh_Licence()
Dim sql1 = "SELECT COUNT(GUID) FROM TBPM_PROFILE"
Dim anz = ClassDatabase.Execute_Scalar(sql1, MyConnectionString, True)
If anz > LICENSE_PROFILES Then
MsgBox("Your amount of configurable profiles is limited to " & LICENSE_PROFILES.ToString & " profiles. You can not add more profiles!" & vbNewLine & "Please contact Digital Data for further licensedetails", MsgBoxStyle.Information)
End If
Check_User_Exists_in_PMGroups()
ClassAllgemeineFunktionen.LoginOut("LOGIN")
sql = String.Format("SELECT COUNT(*) AS Expr1 FROM TBDD_USER_MODULE_LOG_IN WHERE UPPER(MODULE) = UPPER('Process-Manager') AND CLIENT_ID = {0}", 1)
USERCOUNT_LOGGED_IN = ClassDatabase.Execute_Scalar(sql, MyConnectionString, True)
sql = String.Format("SELECT * FROM TBDD_USER_MODULES T, TBDD_MODULES T1 WHERE T.MODULE_ID = T1.GUID AND UPPER(T1.SHORT_NAME) = UPPER('PM') AND T.USER_ID = {0}", CURRENT_USERID)
DT_USER2MODULE = ClassDatabase.Return_Datatable(sql)
If Not IsNothing(DT_USER2MODULE) Then
If DT_USER2MODULE.Rows.Count = 1 Then
USER_IS_ADMIN = DT_USER2MODULE.Rows(0).Item("IS_ADMIN")
End If
End If
sql = String.Format("SELECT COUNT(*) AS Expr1 FROM TBDD_USER_MODULE_LOG_IN WHERE UPPER(MODULE) = UPPER('Process-Manager') AND CLIENT_ID = {0}", 1)
USERCOUNT_LOGGED_IN = ClassDatabase.Execute_Scalar(sql, MyConnectionString, True)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Count Users logged in: " & USERCOUNT_LOGGED_IN.ToString, False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Count Users logged in: " & USERCOUNT_LOGGED_IN.ToString, False)
If LICENSE_COUNT < USERCOUNT_LOGGED_IN And LICENSE_EXPIRED = False Then
MsgBox("Die Anzahl der aktuell angemeldeten User (" & USERCOUNT_LOGGED_IN.ToString & ") überschreitet die Anzahl der aktuellen Lizenzen!" & vbNewLine & "Anzahl der Lizenzen: " & LICENSE_COUNT.ToString & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!", MsgBoxStyle.Critical, "Achtung:")
ClassLogger.Add(" >> Die Anzahl der aktuell angemeldeten User (" & USERCOUNT_LOGGED_IN.ToString & ") überschreitet die Anzahl der Lizenzen (" & LICENSE_COUNT & ") für Process Manager!", False)
@ -133,7 +121,10 @@ Public Class ClassInit
'Alles OK bis hierhin...nun die FolderwatchKonfig laden
If LogErrorsOnly = False Then ClassLogger.Add(" >> Init Userlogin successfull completed....", False)
End If
End If
Catch ex As Exception
ClassLogger.Add("Unexpected Error in InitUserLogin: " & ex.Message, True)
ERROR_STATE = "START INCOMPLETE"
@ -149,4 +140,56 @@ Public Class ClassInit
ERROR_STATE = "Basics not initialized"
End Try
End Sub
Private Function Check_User_Exists_in_Group(ByVal Groupname As String)
Try
Dim sel = String.Format("select T1.* from TBDD_GROUPS T, TBDD_GROUPS_USER T1 WHERE T.GUID = T1.GROUP_ID AND T1.USER_ID = {0} AND UPPER(T.NAME) = '{1}'", CURRENT_USERID, Groupname)
Dim DT As DataTable = ClassDatabase.Return_Datatable(sel)
If Not IsNothing(DT) Then
If DT.Rows.Count = 1 Then
Return True
Else
Return False
End If
Else
Return False
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in CheckUserExistsinGroup:")
Return False
End Try
End Function
Private Function Check_User_Exists_in_PMGroups()
Try
Dim sel = String.Format("select T1.* from TBDD_GROUPS T, TBDD_GROUPS_USER T1 WHERE T.GUID = T1.GROUP_ID AND T1.USER_ID = {0} AND UPPER(T.NAME) = 'PM_USER'", CURRENT_USERID)
Dim DT As DataTable = ClassDatabase.Return_Datatable(sel)
If Not IsNothing(DT) Then
If DT.Rows.Count = 1 Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> User is in PM_USER-Group....", False)
USER_IN_MODULE = True
Else
sel = String.Format("select T.* from TBDD_USER_MODULES T WHERE T.USER_ID = {0} AND T.MODULE_ID = 3", CURRENT_USERID)
DT = ClassDatabase.Return_Datatable(sel)
If Not IsNothing(DT) Then
If DT.Rows.Count = 1 Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Singe User-relation defined for user....", False)
USER_IN_MODULE = True
End If
End If
End If
End If
sel = String.Format("select T1.* from TBDD_GROUPS T, TBDD_GROUPS_USER T1 WHERE T.GUID = T1.GROUP_ID AND T1.USER_ID = {0} AND UPPER(T.NAME) = 'PM_ADMINS'", CURRENT_USERID)
DT = ClassDatabase.Return_Datatable(sel)
If Not IsNothing(DT) Then
If DT.Rows.Count = 1 Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> User is in PM_ADMINS-Group....", False)
USER_IS_ADMIN = True
USER_IN_MODULE = True
End If
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in Check_User_Exists_in_PMGroups:")
End Try
End Function
End Class

View File

@ -16,6 +16,8 @@
Public DT_USER2MODULE As DataTable
Public CURRENT_USERID
Public USER_EXISTS = False
Public USER_IN_MODULE = False
Public LICENSE_COUNT As Integer = 0
Public LICENSE_EXPIRED As Boolean = False
Public LICENSE_PROFILES As Integer = 0

View File

@ -91,8 +91,13 @@ Public Class frmMain
tslblLicenses.Text = "Anzahl Lizenzen: " & LICENSE_COUNT
If LogErrorsOnly = False Then ClassLogger.Add(" >> Initializing MainForm....", False)
If ERROR_STATE = "NO USER" Then
MsgBox("Achtung: Sie sind nicht für die Nutzung von ProcessManager freigegeben!" & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!", MsgBoxStyle.Critical, "Achtung:")
MsgBox("Achtung: Sie sind nicht in der Userverwaltung hinterlegt!" & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!", MsgBoxStyle.Critical, "Achtung:")
Me.Close()
ElseIf USER_IN_MODULE = False Then
If USER_IS_ADMIN = False Then
MsgBox("Achtung: Sie sind nicht für die Nutzung von ProcessManager freigegeben!" & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!", MsgBoxStyle.Critical, "Achtung:")
Me.Close()
End If
Else
ClassLogger.Add(">> Username: " & Environment.UserName, False)
'Wenn license abgelaufen und der User nicht admin ist!