neue version
This commit is contained in:
@@ -0,0 +1,115 @@
|
||||
Public Class cBerechtignunen
|
||||
|
||||
|
||||
|
||||
Shared BER_LIST As New cBerechtigungsObjekte_List 'NEW = Laden
|
||||
|
||||
' Sub initBER()
|
||||
' BER_LIST = New cBerechtigungsObjekte_List
|
||||
' End Sub
|
||||
|
||||
Public Shared Function CHECK_BERECHTIGUNG(Form_Berechtigung As System.Windows.Forms.Form) As Integer ' Klärt die Berechtigungs-Zugriffs-Stufe des Mitarbeiters für das Object
|
||||
Return CHECK_BERECHTIGUNG(Form_Berechtigung.Name, Form_Berechtigung.GetType.Module.Name.Replace(".exe", ""))
|
||||
End Function
|
||||
|
||||
|
||||
Public Shared Function CHECK_BERECHTIGUNG(Berechtigung_Bezeichnung As String, ME_Form As System.Windows.Forms.Form) As Integer ' Klärt die Berechtigungs-Zugriffs-Stufe des Mitarbeiters für das Object
|
||||
Return CHECK_BERECHTIGUNG(Berechtigung_Bezeichnung, ME_Form.GetType.Module.Name.Replace(".exe", ""))
|
||||
End Function
|
||||
|
||||
Public Shared Function CHECK_BERECHTIGUNG_bool(Berechtigung_Bezeichnung As String, ME_Form As System.Windows.Forms.Form) As Boolean ' Klärt die Berechtigungs-Zugriffs-Stufe des Mitarbeiters für das Object
|
||||
Try
|
||||
|
||||
If ME_Form Is Nothing Then Return False
|
||||
Dim prog = ME_Form.GetType.Module.Name.Replace(".exe", "") 'FEHLER
|
||||
Return (CHECK_BERECHTIGUNG(Berechtigung_Bezeichnung, prog) = 0)
|
||||
Catch ex As Exception
|
||||
MsgBox("BERECHTIGUNGSERR: " & Berechtigung_Bezeichnung & vbNewLine & vbNewLine & ex.Message & vbNewLine & ex.StackTrace)
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Shared Function CHECK_BERECHTIGUNG_bool(Berechtigung_Bezeichnung As String, prog_Name As String) As Boolean ' Klärt die Berechtigungs-Zugriffs-Stufe des Mitarbeiters für das Object
|
||||
Try
|
||||
Return (CHECK_BERECHTIGUNG(Berechtigung_Bezeichnung, prog_Name) = 0)
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message & vbNewLine & ex.StackTrace)
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Shared Function CHECK_BERECHTIGUNG(Berechtigung_Bezeichnung As String, prog_Name As String) As Integer ' Klärt die Berechtigungs-Zugriffs-Stufe des Mitarbeiters für das Object
|
||||
Dim SQL As New SQL
|
||||
Dim prog_id = -1
|
||||
|
||||
Select Case prog_Name
|
||||
Case "AVISO"
|
||||
'If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" Then
|
||||
' prog_id = 13
|
||||
' Else
|
||||
prog_id = 5
|
||||
'End If
|
||||
Case "SDL"
|
||||
prog_id = 7
|
||||
Case Else
|
||||
' MsgBox("SELECT isnull([prog_id],0) FROM [tblProgramme] WHERe [prog_codename]='" & prog_Name & "'")
|
||||
prog_id = SQL.getValueTxtBySql("SELECT isnull([prog_id],0) FROM [tblProgramme] WHERe [prog_codename]='" & prog_Name & "'", "ADMIN")
|
||||
End Select
|
||||
|
||||
Return CHECK_BERECHTIGUNG(Berechtigung_Bezeichnung, prog_id)
|
||||
End Function
|
||||
|
||||
Public Shared Function CHECK_BERECHTIGUNG(ber_bez As String, prog_Id As Integer) As Integer ' Klärt die Berechtigungs-Zugriffs-Stufe des Mitarbeiters für das Object
|
||||
Try
|
||||
If VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME = "" Then Return 0
|
||||
|
||||
Dim berechtigungsstufe As Integer = 99
|
||||
Dim benutzerBer As cBerechtigungenBenutzerGruppenZuordnung_List = VERAG_PROG_ALLGEMEIN.cAllgemein.BENUTZER_BERECHTIGUNGS_GRUPPEN
|
||||
If benutzerBer Is Nothing Then
|
||||
MsgBox("Ihrem Benutzerkonto wurden keine Berechtigungen zugeordnet!")
|
||||
Return 0
|
||||
End If
|
||||
|
||||
Dim found = False
|
||||
For Each l In BER_LIST.LIST
|
||||
If l.bero_bezeichnung.ToUpper = ber_bez.ToUpper And l.bero_progId = prog_Id Then
|
||||
found = True : Exit For
|
||||
End If
|
||||
Next
|
||||
If Not found Then 'Die Berechtigungszuorgnung ist nicht gegeben --> Zugriff verwehrt
|
||||
MsgBox("Die Berechtigung '" & ber_bez & "' existiert nicht.")
|
||||
Return 99
|
||||
End If
|
||||
|
||||
For Each l In BER_LIST.LIST
|
||||
If l.bero_bezeichnung.ToUpper = ber_bez.ToUpper And l.bero_progId = prog_Id Then
|
||||
For Each ll In l.BER_OBJ_ZUORD 'Liste der BerechtignungGruppen im Berechtigungsonjekt
|
||||
For Each b In benutzerBer.LIST
|
||||
If b.berbgz_progId = prog_Id Then 'BenutzerProg = Prog
|
||||
|
||||
If ll.beroz_berechtigungsstufe >= 100 Then Return ll.beroz_berechtigungsstufe 'Größer als 3 stellen --> immer priorität
|
||||
|
||||
If ll.beroz_art = "G" And ll.beroz_bergrId = b.berbgz_bergrId Then 'GruppenBerchtigung
|
||||
'gefunden!
|
||||
If ll.beroz_berechtigungsstufe < berechtigungsstufe Then berechtigungsstufe = ll.beroz_berechtigungsstufe
|
||||
ElseIf ll.beroz_art = "N" And ll.Bezeichnung = VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG Then
|
||||
If ll.beroz_berechtigungsstufe < berechtigungsstufe Then berechtigungsstufe = ll.beroz_berechtigungsstufe
|
||||
ElseIf ll.beroz_art = "A" And ll.Bezeichnung = VERAG_PROG_ALLGEMEIN.cAllgemein.ABTEILUNG Then
|
||||
If ll.beroz_berechtigungsstufe < berechtigungsstufe Then berechtigungsstufe = ll.beroz_berechtigungsstufe
|
||||
ElseIf ll.beroz_art = "B" And ll.beroz_bergrId = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID Then
|
||||
Return ll.beroz_berechtigungsstufe 'Definitiv dem Benutzer zugeordnete Berechtigung!!!!
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
End If
|
||||
Next
|
||||
|
||||
Return berechtigungsstufe
|
||||
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message & ex.StackTrace)
|
||||
End Try
|
||||
Return 99
|
||||
End Function
|
||||
End Class
|
||||
Reference in New Issue
Block a user