From 6ccfa1c6c03f3b07b4d05142499e4726b142c50e Mon Sep 17 00:00:00 2001 From: Thomas Legris Date: Sat, 10 Dec 2022 11:10:59 +0900 Subject: [PATCH] Add company namespace on register #692 --- deepfence_server/handler/user.go | 8 +++++--- deepfence_server/model/user.go | 3 ++- deepfence_utils/postgresql/postgresql-db/queries.sql.go | 7 ++++--- deepfence_utils/postgresql/queries.sql | 4 ++-- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/deepfence_server/handler/user.go b/deepfence_server/handler/user.go index 1e9816b96d..929490bbd1 100644 --- a/deepfence_server/handler/user.go +++ b/deepfence_server/handler/user.go @@ -3,6 +3,9 @@ package handler import ( "context" "errors" + "net/http" + "reflect" + "github.com/deepfence/ThreatMapper/deepfence_server/model" "github.com/deepfence/ThreatMapper/deepfence_utils/directory" "github.com/deepfence/ThreatMapper/deepfence_utils/log" @@ -10,8 +13,6 @@ import ( "github.com/deepfence/ThreatMapper/deepfence_utils/utils" "github.com/go-chi/jwtauth/v5" httpext "github.com/go-playground/pkg/v5/net/http" - "net/http" - "reflect" ) const ( @@ -63,7 +64,8 @@ func (h *Handler) RegisterUser(w http.ResponseWriter, r *http.Request) { return } emailDomain, _ := utils.GetEmailDomain(registerRequest.Email) - c := model.Company{Name: registerRequest.Company, EmailDomain: emailDomain} + //TODO: SaaS namespace + c := model.Company{Name: registerRequest.Company, EmailDomain: emailDomain, Namespace: "default"} company, err := c.Create(ctx, pgClient) if err != nil { httpext.JSON(w, http.StatusInternalServerError, model.Response{Success: false, Message: err.Error()}) diff --git a/deepfence_server/model/user.go b/deepfence_server/model/user.go index a5dd8e9c3f..9adf8ffd65 100644 --- a/deepfence_server/model/user.go +++ b/deepfence_server/model/user.go @@ -89,10 +89,11 @@ type Company struct { ID int32 `json:"id"` Name string `json:"name"` EmailDomain string `json:"email_domain"` + Namespace string `json:"namespace"` } func (c *Company) Create(ctx context.Context, pgClient *postgresqlDb.Queries) (*postgresqlDb.Company, error) { - company, err := pgClient.CreateCompany(ctx, postgresqlDb.CreateCompanyParams{Name: c.Name, EmailDomain: c.EmailDomain}) + company, err := pgClient.CreateCompany(ctx, postgresqlDb.CreateCompanyParams{Name: c.Name, EmailDomain: c.EmailDomain, Namespace: c.Namespace}) if err != nil { return nil, err } diff --git a/deepfence_utils/postgresql/postgresql-db/queries.sql.go b/deepfence_utils/postgresql/postgresql-db/queries.sql.go index 45840a0aa4..405baddbdb 100644 --- a/deepfence_utils/postgresql/postgresql-db/queries.sql.go +++ b/deepfence_utils/postgresql/postgresql-db/queries.sql.go @@ -77,18 +77,19 @@ func (q *Queries) CreateApiToken(ctx context.Context, arg CreateApiTokenParams) } const createCompany = `-- name: CreateCompany :one -INSERT INTO company (name, email_domain) -VALUES ($1, $2) +INSERT INTO company (name, email_domain, namespace) +VALUES ($1, $2, $3) RETURNING id, name, email_domain, created_at, updated_at, namespace ` type CreateCompanyParams struct { Name string EmailDomain string + Namespace string } func (q *Queries) CreateCompany(ctx context.Context, arg CreateCompanyParams) (Company, error) { - row := q.db.QueryRowContext(ctx, createCompany, arg.Name, arg.EmailDomain) + row := q.db.QueryRowContext(ctx, createCompany, arg.Name, arg.EmailDomain, arg.Namespace) var i Company err := row.Scan( &i.ID, diff --git a/deepfence_utils/postgresql/queries.sql b/deepfence_utils/postgresql/queries.sql index 2749d84228..ad0fadfb8e 100644 --- a/deepfence_utils/postgresql/queries.sql +++ b/deepfence_utils/postgresql/queries.sql @@ -1,6 +1,6 @@ -- name: CreateCompany :one -INSERT INTO company (name, email_domain) -VALUES ($1, $2) +INSERT INTO company (name, email_domain, namespace) +VALUES ($1, $2, $3) RETURNING *; -- name: CountCompanies :one