MCPcopy Index your code
hub / github.com/coder/coder / sharedWorkspaceActors

Function sharedWorkspaceActors

coderd/workspaces.go:2895–2937  ·  view source on GitHub ↗
(
	ctx context.Context,
	logger slog.Logger,
	workspace database.Workspace,
)

Source from the content-addressed store, hash-verified

2893}
2894
2895func sharedWorkspaceActors(
2896 ctx context.Context,
2897 logger slog.Logger,
2898 workspace database.Workspace,
2899) []codersdk.SharedWorkspaceActor {
2900 out := make([]codersdk.SharedWorkspaceActor, 0, len(workspace.UserACL)+len(workspace.GroupACL))
2901
2902 // Users
2903 for id, aclEntry := range workspace.UserACL {
2904 userID, err := uuid.Parse(id)
2905 if err != nil {
2906 logger.Warn(ctx, "found invalid user uuid in workspace acl", slog.Error(err), slog.F("workspace_id", workspace.ID))
2907 continue
2908 }
2909
2910 out = append(out, codersdk.SharedWorkspaceActor{
2911 ID: userID,
2912 ActorType: codersdk.SharedWorkspaceActorTypeUser,
2913 Roles: []codersdk.WorkspaceRole{convertToWorkspaceRole(aclEntry.Permissions)},
2914 Name: workspace.UserACLDisplayInfo[id].Name,
2915 AvatarURL: workspace.UserACLDisplayInfo[id].AvatarURL,
2916 })
2917 }
2918
2919 // Groups
2920 for id, aclEntry := range workspace.GroupACL {
2921 groupID, err := uuid.Parse(id)
2922 if err != nil {
2923 logger.Warn(ctx, "found invalid group uuid in workspace acl", slog.Error(err), slog.F("workspace_id", workspace.ID))
2924 continue
2925 }
2926
2927 out = append(out, codersdk.SharedWorkspaceActor{
2928 ID: groupID,
2929 ActorType: codersdk.SharedWorkspaceActorTypeGroup,
2930 Roles: []codersdk.WorkspaceRole{convertToWorkspaceRole(aclEntry.Permissions)},
2931 Name: workspace.GroupACLDisplayInfo[id].Name,
2932 AvatarURL: workspace.GroupACLDisplayInfo[id].AvatarURL,
2933 })
2934 }
2935
2936 return out
2937}
2938
2939func convertWorkspaceTTLMillis(i sql.NullInt64) *int64 {
2940 if !i.Valid {

Callers 1

convertWorkspaceFunction · 0.85

Calls 3

convertToWorkspaceRoleFunction · 0.85
ParseMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected