(ctx context.Context, arg database.ClaimPrebuiltWorkspaceParams)
| 1733 | } |
| 1734 | |
| 1735 | func (q *querier) ClaimPrebuiltWorkspace(ctx context.Context, arg database.ClaimPrebuiltWorkspaceParams) (database.ClaimPrebuiltWorkspaceRow, error) { |
| 1736 | empty := database.ClaimPrebuiltWorkspaceRow{} |
| 1737 | |
| 1738 | preset, err := q.db.GetPresetByID(ctx, arg.PresetID) |
| 1739 | if err != nil { |
| 1740 | return empty, err |
| 1741 | } |
| 1742 | |
| 1743 | workspaceObject := rbac.ResourceWorkspace.WithOwner(arg.NewUserID.String()).InOrg(preset.OrganizationID) |
| 1744 | err = q.authorizeContext(ctx, policy.ActionCreate, workspaceObject.RBACObject()) |
| 1745 | if err != nil { |
| 1746 | return empty, err |
| 1747 | } |
| 1748 | |
| 1749 | tpl, err := q.GetTemplateByID(ctx, preset.TemplateID.UUID) |
| 1750 | if err != nil { |
| 1751 | return empty, xerrors.Errorf("verify template by id: %w", err) |
| 1752 | } |
| 1753 | if err := q.authorizeContext(ctx, policy.ActionUse, tpl); err != nil { |
| 1754 | return empty, xerrors.Errorf("use template for workspace: %w", err) |
| 1755 | } |
| 1756 | |
| 1757 | return q.db.ClaimPrebuiltWorkspace(ctx, arg) |
| 1758 | } |
| 1759 | |
| 1760 | func (q *querier) CleanTailnetCoordinators(ctx context.Context) error { |
| 1761 | if err := q.authorizeContext(ctx, policy.ActionDelete, rbac.ResourceTailnetCoordinator); err != nil { |
nothing calls this directly
no test coverage detected