check group membership when loading profiles

This commit is contained in:
Jonathan Jenne 2019-10-22 15:53:08 +02:00
parent a09cb40412
commit 42a3aad5e2

View File

@ -235,21 +235,24 @@ Public Class ClassInit
End Sub
Public Shared Sub Refresh_Profile_Links()
Dim oWhereClause = $"T1.USER_ID = {USER_ID} OR GROUP_ID IN (SELECT DISTINCT GUID FROM TBDD_GROUPS WHERE GUID IN (SELECT GROUP_ID FROM TBDD_GROUPS_USER WHERE USER_ID = {USER_ID}))"
Dim ProfileSQL As String = $"SELECT DISTINCT GUID, NAME,REGEX_EXPRESSION,COMMENT,PROC_NAME,PROFILE_TYPE FROM VWCW_USER_PROFILE T1 WHERE {oWhereClause}"
Dim oProcessSQL As String = $"SELECT DISTINCT T.GUID, T.PROFILE_ID,T.PROC_NAME FROM TBCW_PROFILE_PROCESS T, VWCW_USER_PROFILE T1 WHERE T.PROFILE_ID = T1.GUID AND ({oWhereClause})"
Dim oWindowSQL As String = $"SELECT DISTINCT * FROM VWCW_PROFILE_REL_WINDOW T, VWCW_USER_PROFILE T1 WHERE T.PROFILE_ID = T1.GUID AND ({oWhereClause})"
Dim oControlSQL As String = $"SELECT DISTINCT * FROM VWCW_PROFILE_REL_CONTROL T, VWCW_USER_PROFILE T1 WHERE T.PROFILE_ID = T1.GUID AND ({oWhereClause})"
Try
Dim oSql = String.Format("SELECT DISTINCT GUID, NAME,REGEX_EXPRESSION,COMMENT,PROC_NAME,PROFILE_TYPE FROM VWCW_USER_PROFILE WHERE USER_ID = {0} OR GROUP_ID IN (SELECT DISTINCT GUID FROM TBDD_GROUPS WHERE GUID IN (SELECT GROUP_ID FROM TBDD_GROUPS_USER WHERE USER_ID = {0}))", USER_ID)
DT_USER_PROFILES = Database.GetDatatable(oSql)
DT_USER_PROFILES = Database.GetDatatable(ProfileSQL)
If DT_USER_PROFILES Is Nothing OrElse DT_USER_PROFILES.Rows.Count = 0 Then
MsgBox("No profiles configured for this user so far!", MsgBoxStyle.Exclamation)
Else
oSql = $"SELECT DISTINCT T.GUID, T.PROFILE_ID,T.PROC_NAME FROM TBCW_PROFILE_PROCESS T, VWCW_USER_PROFILE T1 WHERE T.PROFILE_ID = T1.GUID AND T1.USER_ID = {USER_ID}"
DTPROFILE_REL_PROCESS = Database.GetDatatable(oSql)
oSql = $"SELECT * FROM VWCW_PROFILE_REL_WINDOW WHERE USER_ID = {USER_ID}"
DTPROFILE_REL_WINDOW = Database.GetDatatable(oSql)
oSql = $"SELECT * FROM VWCW_PROFILE_REL_CONTROL WHERE USER_ID = {USER_ID}"
DTPROFILE_REL_CONTROL = Database.GetDatatable(oSql)
Exit Sub
End If
DTPROFILE_REL_PROCESS = Database.GetDatatable(oProcessSQL)
DTPROFILE_REL_WINDOW = Database.GetDatatable(oWindowSQL)
DTPROFILE_REL_CONTROL = Database.GetDatatable(oControlSQL)
Catch ex As Exception
Logger.Error(ex)
MsgBox("Unexpected Error in Refresh_Profile_Links: " & ex.Message, MsgBoxStyle.Critical)