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

Method auditLogResourceLink

coderd/audit.go:521–626  ·  view source on GitHub ↗
(ctx context.Context, alog database.GetAuditLogsOffsetRow, additionalFields audit.AdditionalFields)

Source from the content-addressed store, hash-verified

519}
520
521func (api *API) auditLogResourceLink(ctx context.Context, alog database.GetAuditLogsOffsetRow, additionalFields audit.AdditionalFields) string {
522 switch alog.AuditLog.ResourceType {
523 case database.ResourceTypeTemplate:
524 return fmt.Sprintf("/templates/%s",
525 alog.AuditLog.ResourceTarget)
526
527 case database.ResourceTypeUser:
528 return fmt.Sprintf("/users?filter=%s",
529 alog.AuditLog.ResourceTarget)
530
531 case database.ResourceTypeWorkspace:
532 workspace, getWorkspaceErr := api.Database.GetWorkspaceByID(ctx, alog.AuditLog.ResourceID)
533 if getWorkspaceErr != nil {
534 return ""
535 }
536 workspaceOwner, getWorkspaceOwnerErr := api.Database.GetUserByID(ctx, workspace.OwnerID)
537 if getWorkspaceOwnerErr != nil {
538 return ""
539 }
540 return fmt.Sprintf("/@%s/%s",
541 workspaceOwner.Username, alog.AuditLog.ResourceTarget)
542
543 case database.ResourceTypeWorkspaceBuild:
544 if len(additionalFields.WorkspaceName) == 0 || len(additionalFields.BuildNumber) == 0 {
545 return ""
546 }
547 workspaceBuild, getWorkspaceBuildErr := api.Database.GetWorkspaceBuildByID(ctx, alog.AuditLog.ResourceID)
548 if getWorkspaceBuildErr != nil {
549 return ""
550 }
551 workspace, getWorkspaceErr := api.Database.GetWorkspaceByID(ctx, workspaceBuild.WorkspaceID)
552 if getWorkspaceErr != nil {
553 return ""
554 }
555 workspaceOwner, getWorkspaceOwnerErr := api.Database.GetUserByID(ctx, workspace.OwnerID)
556 if getWorkspaceOwnerErr != nil {
557 return ""
558 }
559 return fmt.Sprintf("/@%s/%s/builds/%s",
560 workspaceOwner.Username, additionalFields.WorkspaceName, additionalFields.BuildNumber)
561
562 case database.ResourceTypeWorkspaceAgent:
563 if additionalFields.WorkspaceOwner != "" && additionalFields.WorkspaceName != "" {
564 return fmt.Sprintf("/@%s/%s", additionalFields.WorkspaceOwner, additionalFields.WorkspaceName)
565 }
566 workspace, getWorkspaceErr := api.Database.GetWorkspaceByAgentID(ctx, alog.AuditLog.ResourceID)
567 if getWorkspaceErr != nil {
568 return ""
569 }
570 return fmt.Sprintf("/@%s/%s", workspace.OwnerName, workspace.Name)
571
572 case database.ResourceTypeWorkspaceApp:
573 if additionalFields.WorkspaceOwner != "" && additionalFields.WorkspaceName != "" {
574 return fmt.Sprintf("/@%s/%s", additionalFields.WorkspaceOwner, additionalFields.WorkspaceName)
575 }
576 workspace, getWorkspaceErr := api.Database.GetWorkspaceByWorkspaceAppID(ctx, alog.AuditLog.ResourceID)
577 if getWorkspaceErr != nil {
578 return ""

Callers 1

convertAuditLogMethod · 0.95

Calls 9

GetWorkspaceByIDMethod · 0.65
GetUserByIDMethod · 0.65
GetWorkspaceBuildByIDMethod · 0.65
GetWorkspaceByAgentIDMethod · 0.65
GetTaskByIDMethod · 0.65
GetGroupByIDMethod · 0.65
GetOrganizationByIDMethod · 0.65

Tested by

no test coverage detected