From 42a3aad5e21f26e07ab65a1d28c4846da3a766f9 Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Tue, 22 Oct 2019 15:53:08 +0200 Subject: [PATCH] check group membership when loading profiles --- app/DD_Clipboard_Searcher/ClassInit.vb | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/app/DD_Clipboard_Searcher/ClassInit.vb b/app/DD_Clipboard_Searcher/ClassInit.vb index ac51081..357b333 100644 --- a/app/DD_Clipboard_Searcher/ClassInit.vb +++ b/app/DD_Clipboard_Searcher/ClassInit.vb @@ -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)