Skip to content

Commit 78d37a4

Browse files
authored
Merge pull request #396 from intersystems/developer-sourcecontrol-select-privileges
Developer sourcecontrol select privileges
2 parents 59aff2d + 50526e4 commit 78d37a4

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2626
- Menu items names are properly translated from internal name in VSCode, Management Portal (#372)
2727
- Now has proper locking behavior in `##class(SourceControl.Git.WebUIDriver).HandleRequest()`(#385)
2828
- Git operations from the WebUI now don't unlock the session if they aren't read-only
29+
- WebUI works properly for users with %Developer without needing to add further SQL privileges (#365)
2930

3031
## [2.3.1] - 2024-04-30
3132

cls/SourceControl/Git/Change.cls

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,17 +83,24 @@ ClassMethod GetOtherDeveloperChanges() As %Boolean
8383
{
8484
set numEntries = 0
8585
set fileToOtherDevelopers = {}
86-
set query = "Select ItemFile, ChangedBy FROM SourceControl_Git.Change WHERE CHARINDEX('SourceControl.Git', Name)>0 AND Committed = '0' AND ChangedBy <> ?"
86+
set query = "Select ItemFile, ChangedBy FROM SourceControl_Git.Change WHERE Committed = '0' AND ChangedBy <> ?"
8787
set statement = ##class(%SQL.Statement).%New()
88-
set status = statement.%Prepare(query)
88+
set status = statement.%Prepare(query, 0)
8989
$$$ThrowOnError(status)
9090
set rset = statement.%Execute($username)
9191
if (rset.%SQLCODE < 0) {
9292
throw ##class(%Exception.SQL).CreateFromSQLCODE(rset.%SQLCODE,rset.%Message)
9393
}
94+
set tempFolder = ##class(SourceControl.Git.Utils).TempFolder()
9495
while rset.%Next(.sc) {
9596
$$$ThrowOnError(sc)
96-
set filePath = "cls\"_$EXTRACT(rset.ItemFile, $FIND(rset.ItemFile,"cls\"),$LENGTH(rset.ItemFile))
97+
98+
if $FIND(rset.ItemFile, tempFolder) {
99+
set filePath = $PIECE(rset.ItemFile, tempFolder, 2)
100+
} else {
101+
continue
102+
}
103+
97104
set otherDevelopers = fileToOtherDevelopers.%Get(filePath, [])
98105
do otherDevelopers.%Push(rset.ChangedBy)
99106
do fileToOtherDevelopers.%Set(filePath, otherDevelopers)

0 commit comments

Comments
 (0)