File tree Expand file tree Collapse file tree 3 files changed +17
-1
lines changed
src/main/kotlin/com/coder/gateway/util Expand file tree Collapse file tree 3 files changed +17
-1
lines changed Original file line number Diff line number Diff line change 44
55## Unreleased
66
7+ ### Added
8+
9+ - Support an "owner" parameter when launching an IDE from the dashboard. This
10+ makes it possible to reliably connect to the right workspace in the case where
11+ multiple users are using the same workspace name and the workspace filter is
12+ configured to show multiple users' workspaces. This requires an updated
13+ Gateway module that includes the new "owner" parameter.
14+
715## 2.15.0 - 2024-10-04
816
917### Added
Original file line number Diff line number Diff line change @@ -52,10 +52,15 @@ open class LinkHandler(
5252 // TODO: Show a dropdown and ask for the workspace if missing.
5353 val workspaceName = parameters.workspace() ? : throw MissingArgumentException (" Query parameter \" $WORKSPACE \" is missing" )
5454
55+ // The owner was added to support getting into another user's workspace
56+ // but may not exist if the Coder Gateway module is out of date. If no
57+ // owner is included, assume the current user.
58+ val owner = (parameters.owner() ? : client.me.username).ifBlank { client.me.username }
59+
5560 val workspaces = client.workspaces()
5661 val workspace =
5762 workspaces.firstOrNull {
58- it.name == workspaceName
63+ it.ownerName == owner && it. name == workspaceName
5964 } ? : throw IllegalArgumentException (" The workspace $workspaceName does not exist" )
6065
6166 when (workspace.latestBuild.status) {
Original file line number Diff line number Diff line change @@ -5,6 +5,7 @@ private const val TYPE = "type"
55const val URL = " url"
66const val TOKEN = " token"
77const val WORKSPACE = " workspace"
8+ const val OWNER = " owner"
89const val AGENT_NAME = " agent"
910const val AGENT_ID = " agent_id"
1011private const val FOLDER = " folder"
@@ -24,6 +25,8 @@ fun Map<String, String>.token() = this[TOKEN]
2425
2526fun Map <String , String >.workspace () = this [WORKSPACE ]
2627
28+ fun Map <String , String >.owner () = this [OWNER ]
29+
2730fun Map <String , String ?>.agentName () = this [AGENT_NAME ]
2831
2932fun Map <String , String ?>.agentID () = this [AGENT_ID ]
You can’t perform that action at this time.
0 commit comments