@@ -4,6 +4,10 @@ Class WebTerminal.Installer Extends %Projection.AbstractProjection [ DependsOn =
44
55Parameter DispatchClass = " WebTerminal.Router" ;
66
7+ Parameter ResourceName = " %WebTerminal" ;
8+
9+ Parameter RoleName = " WebTerminal" ;
10+
711Projection Reference As Installer ;
812
913Parameter VERSION = " <!-- @echo package.version -->" ;
@@ -93,6 +97,17 @@ ClassMethod CreateProjection(cls As %String, ByRef params) As %Status
9397 write !, " WebTerminal package successfully mapped into all namespaces."
9498 do ##class (WebTerminal.Analytics ).ReportInstallStatus (1 )
9599 }
100+
101+ if (##class (Security.Resources ).Exists (..#ResourceName) = 0 ) {
102+ set st = ##class (Security.Resources ).Create (..#ResourceName,
103+ " Grants access to WebTerminal if set up." , " " )
104+ }
105+
106+ if (##class (Security.Roles ).Exists (..#RoleName) = 0 ) {
107+ set st = ##class (Security.Roles ).Create (..#RoleName,
108+ " WebTerminal user role which may grant access to WebTerminal application if set up." ,
109+ " %WebTerminal:RWU" )
110+ }
96111
97112 return st
98113}
@@ -102,7 +117,7 @@ ClassMethod RemoveProjection(cls As %String, ByRef params, recompile As %Boolean
102117{
103118 new $Namespace
104119
105- write :(recompile ) !, " Recompiling WebTerminal..."
120+ write :(recompile ) !, " Recompiling WebTerminal, skipping the deletion ..."
106121 return :(recompile ) $$$OK
107122
108123 set ns = $get (^WebTerminal (" HomeNamespace" ), $Namespace )
@@ -114,6 +129,16 @@ ClassMethod RemoveProjection(cls As %String, ByRef params, recompile As %Boolean
114129 set st = ..RemoveWebApplication (" /terminalsocket" )
115130 do :($$$ISERR(st )) ##class (WebTerminal.Analytics ).ReportInstallStatus (st )
116131 return :($$$ISERR(st )) st
132+ if (##class (Security.Resources ).Exists (..#ResourceName) = 1 ) {
133+ set st = ##class (Security.Resources ).Delete (..#ResourceName)
134+ do :($$$ISERR(st )) ##class (WebTerminal.Analytics ).ReportInstallStatus (st )
135+ return :($$$ISERR(st )) st
136+ }
137+ if (##class (Security.Roles ).Exists (..#RoleName) = 1 ) {
138+ set st = ##class (Security.Roles ).Delete (..#RoleName)
139+ do :($$$ISERR(st )) ##class (WebTerminal.Analytics ).ReportInstallStatus (st )
140+ return :($$$ISERR(st )) st
141+ }
117142
118143 kill :st ^WebTerminal
119144 write !, " Global ^WebTerminal removed."
0 commit comments