Skip to content

Commit aba0de0

Browse files
authored
Add desktop session-related ACLs to Connect (#54031)
* Add desktop session-related ACLs to Connect * Add new fields to `makeAcl`
1 parent 5de5e97 commit aba0de0

File tree

5 files changed

+76
-20
lines changed

5 files changed

+76
-20
lines changed

gen/proto/go/teleport/lib/teleterm/v1/cluster.pb.go

Lines changed: 24 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gen/proto/ts/teleport/lib/teleterm/v1/cluster_pb.ts

Lines changed: 29 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/teleterm/clusters/cluster.go

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -198,20 +198,22 @@ func (c *Cluster) GetWithDetails(ctx context.Context, authClient authclient.Clie
198198
roleSet := services.NewRoleSet(roles...)
199199
userACL := services.NewUserACL(user, roleSet, *authPingResponse.ServerFeatures, false, false)
200200
acl := &api.ACL{
201-
RecordedSessions: convertToAPIResourceAccess(userACL.RecordedSessions),
202-
ActiveSessions: convertToAPIResourceAccess(userACL.ActiveSessions),
203-
AuthConnectors: convertToAPIResourceAccess(userACL.AuthConnectors),
204-
Roles: convertToAPIResourceAccess(userACL.Roles),
205-
Users: convertToAPIResourceAccess(userACL.Users),
206-
TrustedClusters: convertToAPIResourceAccess(userACL.TrustedClusters),
207-
Events: convertToAPIResourceAccess(userACL.Events),
208-
Tokens: convertToAPIResourceAccess(userACL.Tokens),
209-
Servers: convertToAPIResourceAccess(userACL.Nodes),
210-
Apps: convertToAPIResourceAccess(userACL.AppServers),
211-
Dbs: convertToAPIResourceAccess(userACL.DBServers),
212-
Kubeservers: convertToAPIResourceAccess(userACL.KubeServers),
213-
AccessRequests: convertToAPIResourceAccess(userACL.AccessRequests),
214-
ReviewRequests: userACL.ReviewRequests,
201+
RecordedSessions: convertToAPIResourceAccess(userACL.RecordedSessions),
202+
ActiveSessions: convertToAPIResourceAccess(userACL.ActiveSessions),
203+
AuthConnectors: convertToAPIResourceAccess(userACL.AuthConnectors),
204+
Roles: convertToAPIResourceAccess(userACL.Roles),
205+
Users: convertToAPIResourceAccess(userACL.Users),
206+
TrustedClusters: convertToAPIResourceAccess(userACL.TrustedClusters),
207+
Events: convertToAPIResourceAccess(userACL.Events),
208+
Tokens: convertToAPIResourceAccess(userACL.Tokens),
209+
Servers: convertToAPIResourceAccess(userACL.Nodes),
210+
Apps: convertToAPIResourceAccess(userACL.AppServers),
211+
Dbs: convertToAPIResourceAccess(userACL.DBServers),
212+
Kubeservers: convertToAPIResourceAccess(userACL.KubeServers),
213+
AccessRequests: convertToAPIResourceAccess(userACL.AccessRequests),
214+
ReviewRequests: userACL.ReviewRequests,
215+
DirectorySharingEnabled: userACL.DirectorySharing,
216+
ClipboardSharingEnabled: userACL.Clipboard,
215217
}
216218

217219
withDetails := &ClusterWithDetails{

proto/teleport/lib/teleterm/v1/cluster.proto

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,10 @@ message ACL {
143143
ResourceAccess active_sessions = 14;
144144
// review_requests defines the ability to review requests
145145
bool review_requests = 15;
146+
// Indicates whether the user can share a local directory with the remote machine during desktop sessions.
147+
bool directory_sharing_enabled = 16;
148+
// Indicates whether the user can share their clipboard with the remote machine during desktop sessions.
149+
bool clipboard_sharing_enabled = 17;
146150
}
147151

148152
// ResourceAccess describes access verbs

web/packages/teleterm/src/services/tshd/testHelpers.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ export const makeLeafCluster = (
135135
...props,
136136
});
137137

138-
export const makeAcl = (props: Partial<ACL> = {}) => ({
138+
export const makeAcl = (props: Partial<ACL> = {}): ACL => ({
139139
recordedSessions: {
140140
list: true,
141141
read: true,
@@ -241,6 +241,8 @@ export const makeAcl = (props: Partial<ACL> = {}) => ({
241241
use: true,
242242
},
243243
reviewRequests: true,
244+
directorySharingEnabled: true,
245+
clipboardSharingEnabled: true,
244246
...props,
245247
});
246248

0 commit comments

Comments
 (0)