From 73bdbb031b3f19db7f56321c3f9e1b3983dfb8ab Mon Sep 17 00:00:00 2001 From: Harshvardhan Karn Date: Wed, 29 Nov 2023 08:30:16 +0000 Subject: [PATCH 1/2] for new installtion show message in UI --- deepfence_server/handler/auth.go | 11 +++++++++++ deepfence_server/model/user.go | 15 +++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/deepfence_server/handler/auth.go b/deepfence_server/handler/auth.go index 424cd408d0..5db4a6774f 100644 --- a/deepfence_server/handler/auth.go +++ b/deepfence_server/handler/auth.go @@ -149,6 +149,17 @@ func (h *Handler) LoginHandler(w http.ResponseWriter, r *http.Request) { } loginRequest.Email = strings.ToLower(loginRequest.Email) ctx := directory.NewContextWithNameSpace(directory.FetchNamespace(loginRequest.Email)) + + // if it is a fresh setup, there won't be any users in the system + freshSetup, err := model.IsFreshSetup(ctx) + if err != nil { + h.respondError(err, w) + return + } + if freshSetup { + h.respondError(&NotFoundError{errors.New("For a new console installation, registration by the user is required")}, w) + return + } u, statusCode, pgClient, err := model.GetUserByEmail(ctx, loginRequest.Email) if err != nil { h.respondWithErrorCode(err, w, statusCode) diff --git a/deepfence_server/model/user.go b/deepfence_server/model/user.go index cda7f02376..8dcaf984c7 100644 --- a/deepfence_server/model/user.go +++ b/deepfence_server/model/user.go @@ -350,6 +350,21 @@ func GetUserByEmail(ctx context.Context, email string) (*User, int, *postgresqlD return &user, http.StatusOK, pgClient, nil } +func IsFreshSetup(ctx context.Context) (bool, error) { + pgClient, err := directory.PostgresClient(ctx) + if err != nil { + return false, err + } + _, err = pgClient.GetUsers(ctx) + if err != nil { + if errors.Is(err, sql.ErrNoRows) { + return true, nil + } + return false, err + } + return false, nil +} + func (u *User) LoadFromDbByEmail(ctx context.Context, pgClient *postgresqlDb.Queries) error { // Set email field and load other fields from db var err error From f52c3e209253a179e6913cfd85cc40b8d563b304 Mon Sep 17 00:00:00 2001 From: Harshvardhan Karn Date: Thu, 30 Nov 2023 10:59:02 +0000 Subject: [PATCH 2/2] use CountUser to get the user count --- deepfence_server/model/user.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/deepfence_server/model/user.go b/deepfence_server/model/user.go index 8dcaf984c7..dbd549de7b 100644 --- a/deepfence_server/model/user.go +++ b/deepfence_server/model/user.go @@ -355,13 +355,13 @@ func IsFreshSetup(ctx context.Context) (bool, error) { if err != nil { return false, err } - _, err = pgClient.GetUsers(ctx) + uc, err := pgClient.CountUsers(ctx) if err != nil { - if errors.Is(err, sql.ErrNoRows) { - return true, nil - } return false, err } + if uc == 0 { + return true, nil + } return false, nil }