Skip to content

Commit 14f8cba

Browse files
authored
Merge branch 'main' into fix-interop-deployment
2 parents 5926184 + 0bde722 commit 14f8cba

File tree

3 files changed

+30
-11
lines changed

3 files changed

+30
-11
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1212
- VSCode Web Views launch in external browser when connecting over unsecured connections (#227)
1313
- DTL/BPL editing through Studio reflected properly in source control (#241)
1414
- Plays nicely with interoperability "Deployment" features (#236)
15+
- `<PROTECT>` errors rendering menus as a user with limited privileges (%Developer + Ens*)
1516

1617
## [2.1.0] - 2023-01-23
1718

cls/SourceControl/Git/Settings.cls

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,19 @@ Method %Save() As %Status
4545
quit sc
4646
}
4747

48-
set sysStorage = ##class(SourceControl.Git.Utils).InstallNamespaceStorage()
4948
set storage = ##class(SourceControl.Git.Utils).#Storage
50-
kill @sysStorage@("%gitBinPath")
51-
if (..gitBinPath '= "") {
52-
set @sysStorage@("%gitBinPath") = ..gitBinPath
49+
try {
50+
set sysStorage = ##class(SourceControl.Git.Utils).%SYSNamespaceStorage()
51+
kill @sysStorage@("%gitBinPath")
52+
if (..gitBinPath '= "") {
53+
set @sysStorage@("%gitBinPath") = ..gitBinPath
54+
}
55+
56+
// Also put in local namespace storage to avoid permissions issues
57+
kill @storage@("settings","gitBinPath")
58+
set @storage@("settings","gitBinPath") = ..gitBinPath
59+
} catch e {
60+
// no-op; user might not have privileges.
5361
}
5462
kill ^||GitVersion
5563

@@ -63,7 +71,7 @@ Method %Save() As %Status
6371
set @storage@("settings","user",$username,"gitUserEmail") = ..gitUserEmail
6472
set @storage@("settings","ssh","privateKeyFile") = ..privateKeyFile
6573
set @storage@("settings","pullEventClass") = ..pullEventClass
66-
set @storage@("settings", "percentClassReplace") = ..percentClassReplace
74+
set @storage@("settings","percentClassReplace") = ..percentClassReplace
6775

6876
kill @##class(SourceControl.Git.Utils).MappingsNode()
6977
merge @##class(SourceControl.Git.Utils).MappingsNode() = ..Mappings

cls/SourceControl/Git/Utils.cls

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,21 @@ Parameter ImportAfterGitMenuItems = ",Commit,Pull,Fetch,Push,";
1616

1717
Parameter GitContextMenuItems = ",%Diff,%Blame,";
1818

19-
ClassMethod InstallNamespaceStorage() As %String [ CodeMode = expression ]
19+
ClassMethod %SYSNamespaceStorage() As %String [ CodeMode = expression ]
2020
{
2121
$Replace(..#Storage,"^","^["""_..#InstallNamespace_"""]")
2222
}
2323

2424
/// Returns root temp folder
25-
ClassMethod DefaultTemp() As %String [ CodeMode = expression ]
25+
ClassMethod DefaultTemp() As %String
2626
{
27-
$Get(@..InstallNamespaceStorage()@("%defaultTemp"), "c:\temp\")
27+
set defaultTemp = "c:\temp\"
28+
try {
29+
set defaultTemp = $Get(@..%SYSNamespaceStorage()@("%defaultTemp"), defaultTemp)
30+
} catch e {
31+
// no-op
32+
}
33+
quit defaultTemp
2834
}
2935

3036
ClassMethod MakeError(msg As %String) As %Status [ CodeMode = expression, Private ]
@@ -91,8 +97,13 @@ ClassMethod GitBinPath(Output isDefault) As %String
9197
{
9298
set isDefault = 0
9399
set binPath = "git"
94-
if '$data(@..InstallNamespaceStorage()@("%gitBinPath"),binPath)#2 {
95-
set isDefault = 1
100+
try {
101+
if '$data(@..%SYSNamespaceStorage()@("%gitBinPath"),binPath)#2 {
102+
set isDefault = 1
103+
}
104+
} catch e {
105+
// no-op; requires git to be on path in this case.
106+
// (can't easily change storage location for backward compatibility)
96107
}
97108
quit $case($extract(binPath),"""":binPath,:""""_binPath_"""")
98109
}
@@ -1907,4 +1918,3 @@ ClassMethod BuildCEInstallationPackage(ByRef destination As %String) As %Status
19071918
}
19081919

19091920
}
1910-

0 commit comments

Comments
 (0)