Skip to content

Commit d7cc947

Browse files
committed
Access control improvements.
1 parent e920f80 commit d7cc947

1 file changed

Lines changed: 19 additions & 2 deletions

File tree

MDX2JSON/Dashboard.cls.xml

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ Get SQL for folder, from which we get Dashboards. </Description>
2020
<FormalSpec>folderName:%String=..#folderName</FormalSpec>
2121
<ReturnType>%String</ReturnType>
2222
<Implementation><![CDATA[
23-
set basesql = "SELECT MDX2JSON.Dashboard_ResolveText(title) AS title, fullName AS path, MDX2JSON.Dashboard_GetDashCover(bookCover) AS Cover FROM %DeepSee_Dashboard.Definition "
24-
set basefilter = "WHERE (NOT (foldername %STARTSWITH '$TRASH' or foldername %STARTSWITH 'HIDDEN')) OR foldername IS NULL"
23+
set basesql = "SELECT MDX2JSON.Dashboard_ResolveText(title) AS title, fullName AS path, MDX2JSON.GetDashCover(bookCover) AS Cover FROM %DeepSee_Dashboard.Definition "
24+
set basefilter = "WHERE ((NOT (foldername %STARTSWITH '$TRASH' or foldername %STARTSWITH 'HIDDEN')) OR foldername IS NULL) AND (MDX2JSON.IsItemVisible(fullName) = 1) "
2525
return:folderName="" basesql _ basefilter
2626
set filter = "AND folderName %STARTSWITH '" _ folderName _"'"
2727
return basesql _ basefilter _ filter
@@ -35,6 +35,7 @@ Usage: Select MDX2JSON.Dashboard_GetDashCover(bookCover) FROM %DeepSee_Dashboard
3535
<ClassMethod>1</ClassMethod>
3636
<FormalSpec>bookCover:%String=""</FormalSpec>
3737
<ReturnType>%String</ReturnType>
38+
<SqlName>GetDashCover</SqlName>
3839
<SqlProc>1</SqlProc>
3940
<Implementation><![CDATA[
4041
do ##class(%ZEN.Auxiliary.jsonProvider).%ConvertJSONToObject(bookCover,,.obj,1)
@@ -43,6 +44,22 @@ Usage: Select MDX2JSON.Dashboard_GetDashCover(bookCover) FROM %DeepSee_Dashboard
4344
]]></Implementation>
4445
</Method>
4546

47+
<Method name="IsItemVisible">
48+
<Description><![CDATA[
49+
Check visibility of folder item to user.<br>
50+
Usage: Select fullname, MDX2JSON.IsItemVisible(fullname) FROM %DeepSee_Dashboard.Definition]]></Description>
51+
<ClassMethod>1</ClassMethod>
52+
<FormalSpec>fullName:%String=""</FormalSpec>
53+
<ReturnType>%String</ReturnType>
54+
<SqlName>IsItemVisible</SqlName>
55+
<SqlProc>1</SqlProc>
56+
<Implementation><![CDATA[
57+
set visible = ##class(%DeepSee.UserLibrary.Utils).%FolderItemExists(fullName)
58+
return:visible=1 1
59+
return 0
60+
]]></Implementation>
61+
</Method>
62+
4663
<Method name="ResolveText">
4764
<Description><![CDATA[
4865
Resolve a localized text string at run time.

0 commit comments

Comments
 (0)