forked from baron/baron-sso
backend: 일반 가입 시 임의의 개별 테넌트 신설 대신 이미 시드된 shared 'personal' 테넌트에 사용자 직접 할당 구현 (#1183)
This commit is contained in:
@@ -718,9 +718,13 @@ func (h *AuthHandler) Signup(c *fiber.Ctx) error {
|
|||||||
slog.Info("[Signup] Forcing AffiliationType to GENERAL (Default personal tenant signup policy)", "email", req.Email)
|
slog.Info("[Signup] Forcing AffiliationType to GENERAL (Default personal tenant signup policy)", "email", req.Email)
|
||||||
|
|
||||||
var tenantID *string
|
var tenantID *string
|
||||||
tenant, err := createPersonalTenantForUser(c.Context(), h.TenantService, req.Email)
|
tenant, err := h.TenantService.GetTenantBySlug(c.Context(), "personal")
|
||||||
|
if err != nil || tenant == nil {
|
||||||
|
// Fallback: 만약 시드된 personal 테넌트가 없을 경우 개인별 테넌트를 자동 생성합니다.
|
||||||
|
tenant, err = createPersonalTenantForUser(c.Context(), h.TenantService, req.Email)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errorJSON(c, fiber.StatusServiceUnavailable, "failed to create personal tenant")
|
return errorJSON(c, fiber.StatusServiceUnavailable, "failed to resolve personal tenant")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
tenantID = &tenant.ID
|
tenantID = &tenant.ID
|
||||||
|
|
||||||
|
|||||||
@@ -127,6 +127,7 @@ func TestSignup_TenantSlugValidation(t *testing.T) {
|
|||||||
body, _ := json.Marshal(reqBody)
|
body, _ := json.Marshal(reqBody)
|
||||||
|
|
||||||
validTenant := &domain.Tenant{ID: "personal-t1", Slug: "personal-slug", Status: domain.TenantStatusActive}
|
validTenant := &domain.Tenant{ID: "personal-t1", Slug: "personal-slug", Status: domain.TenantStatusActive}
|
||||||
|
mockTenantSvc.On("GetTenantBySlug", mock.Anything, "personal").Return((*domain.Tenant)(nil), assert.AnError).Once()
|
||||||
mockTenantSvc.On("RegisterTenant", mock.Anything, "Personal - user@hanmaceng.co.kr", mock.Anything, domain.TenantTypePersonal, "Automatically provisioned personal tenant", []string(nil), (*string)(nil), "").Return(validTenant, nil).Once()
|
mockTenantSvc.On("RegisterTenant", mock.Anything, "Personal - user@hanmaceng.co.kr", mock.Anything, domain.TenantTypePersonal, "Automatically provisioned personal tenant", []string(nil), (*string)(nil), "").Return(validTenant, nil).Once()
|
||||||
mockIdp.On("CreateUser", mock.Anything, mock.Anything).Return("user-id", nil).Once()
|
mockIdp.On("CreateUser", mock.Anything, mock.Anything).Return("user-id", nil).Once()
|
||||||
mockRedis.On("Delete", mock.Anything).Return(nil)
|
mockRedis.On("Delete", mock.Anything).Return(nil)
|
||||||
|
|||||||
Reference in New Issue
Block a user