Skip to content

Commit ed4f6b2

Browse files
Default WebTerminal resource and role add
1 parent 2ebdb1b commit ed4f6b2

2 files changed

Lines changed: 27 additions & 2 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"printableName": "Cache Web Terminal",
66
"description": "Web-based terminal emulator for Caché administering.",
77
"author": "ZitRo",
8-
"version": "4.0.0-beta.15",
8+
"version": "4.0.0-beta.16",
99
"gaID": "UA-83005064-2",
1010
"releaseNumber": 26,
1111
"scripts": {

src/cls/WebTerminal/Installer.cls

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ Class WebTerminal.Installer Extends %Projection.AbstractProjection [ DependsOn =
44

55
Parameter DispatchClass = "WebTerminal.Router";
66

7+
Parameter ResourceName = "%WebTerminal";
8+
9+
Parameter RoleName = "WebTerminal";
10+
711
Projection Reference As Installer;
812

913
Parameter 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

Comments
 (0)