mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
fix: populate default created_by and add not-null constraint in templates (#2290)
This commit is contained in:
@@ -88,7 +88,7 @@ func TestDiff(t *testing.T) {
|
||||
ActiveVersionID: uuid.UUID{3},
|
||||
MaxTtl: int64(time.Hour),
|
||||
MinAutostartInterval: int64(time.Minute),
|
||||
CreatedBy: uuid.NullUUID{UUID: uuid.UUID{4}, Valid: true},
|
||||
CreatedBy: uuid.UUID{4},
|
||||
},
|
||||
exp: audit.Map{
|
||||
"id": uuid.UUID{1}.String(),
|
||||
|
||||
Generated
+1
-1
@@ -249,7 +249,7 @@ CREATE TABLE templates (
|
||||
description character varying(128) DEFAULT ''::character varying NOT NULL,
|
||||
max_ttl bigint DEFAULT '604800000000000'::bigint NOT NULL,
|
||||
min_autostart_interval bigint DEFAULT '3600000000000'::bigint NOT NULL,
|
||||
created_by uuid
|
||||
created_by uuid NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE users (
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
ALTER TABLE ONLY templates ALTER COLUMN created_by DROP NOT NULL;
|
||||
@@ -0,0 +1,14 @@
|
||||
UPDATE
|
||||
templates
|
||||
SET
|
||||
created_by = (
|
||||
SELECT user_id FROM organization_members
|
||||
WHERE organization_members.organization_id = templates.organization_id
|
||||
ORDER BY created_at
|
||||
LIMIT 1
|
||||
)
|
||||
WHERE
|
||||
created_by IS NULL;
|
||||
|
||||
|
||||
ALTER TABLE ONLY templates ALTER COLUMN created_by SET NOT NULL;
|
||||
@@ -438,7 +438,7 @@ type Template struct {
|
||||
Description string `db:"description" json:"description"`
|
||||
MaxTtl int64 `db:"max_ttl" json:"max_ttl"`
|
||||
MinAutostartInterval int64 `db:"min_autostart_interval" json:"min_autostart_interval"`
|
||||
CreatedBy uuid.NullUUID `db:"created_by" json:"created_by"`
|
||||
CreatedBy uuid.UUID `db:"created_by" json:"created_by"`
|
||||
}
|
||||
|
||||
type TemplateVersion struct {
|
||||
|
||||
@@ -1797,7 +1797,7 @@ type InsertTemplateParams struct {
|
||||
Description string `db:"description" json:"description"`
|
||||
MaxTtl int64 `db:"max_ttl" json:"max_ttl"`
|
||||
MinAutostartInterval int64 `db:"min_autostart_interval" json:"min_autostart_interval"`
|
||||
CreatedBy uuid.NullUUID `db:"created_by" json:"created_by"`
|
||||
CreatedBy uuid.UUID `db:"created_by" json:"created_by"`
|
||||
}
|
||||
|
||||
func (q *sqlQuerier) InsertTemplate(ctx context.Context, arg InsertTemplateParams) (Template, error) {
|
||||
|
||||
+5
-12
@@ -186,10 +186,7 @@ func (api *API) postTemplateByOrganization(rw http.ResponseWriter, r *http.Reque
|
||||
Description: createTemplate.Description,
|
||||
MaxTtl: int64(maxTTL),
|
||||
MinAutostartInterval: int64(minAutostartInterval),
|
||||
CreatedBy: uuid.NullUUID{
|
||||
UUID: apiKey.UserID,
|
||||
Valid: true,
|
||||
},
|
||||
CreatedBy: apiKey.UserID,
|
||||
})
|
||||
if err != nil {
|
||||
return xerrors.Errorf("insert template: %s", err)
|
||||
@@ -453,15 +450,11 @@ func (api *API) patchTemplateMeta(rw http.ResponseWriter, r *http.Request) {
|
||||
func getCreatedByNamesByTemplateIDs(ctx context.Context, db database.Store, templates []database.Template) (map[string]string, error) {
|
||||
creators := make(map[string]string, len(templates))
|
||||
for _, template := range templates {
|
||||
if template.CreatedBy.Valid {
|
||||
creator, err := db.GetUserByID(ctx, template.CreatedBy.UUID)
|
||||
if err != nil {
|
||||
return map[string]string{}, err
|
||||
}
|
||||
creators[template.ID.String()] = creator.Username
|
||||
} else {
|
||||
creators[template.ID.String()] = ""
|
||||
creator, err := db.GetUserByID(ctx, template.CreatedBy)
|
||||
if err != nil {
|
||||
return map[string]string{}, err
|
||||
}
|
||||
creators[template.ID.String()] = creator.Username
|
||||
}
|
||||
return creators, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user