From 6cb541c8b878f6d7da8191f5f747354d99a847b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Gryglicki?= Date: Tue, 21 Jul 2026 09:14:38 +0200 Subject: [PATCH 1/4] Update sanctioned message MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Łukasz Gryglicki Assisted by [OpenAI](https://platform.openai.com/) Assisted by [GitHub Copilot](https://github.com/features/copilot) Assisted by [Claude](https://claude.ai) --- cla-backend-go/v2/sign/handlers.go | 4 ++-- cla-backend-legacy/internal/api/handlers.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cla-backend-go/v2/sign/handlers.go b/cla-backend-go/v2/sign/handlers.go index 7028f7bea..786e9639b 100644 --- a/cla-backend-go/v2/sign/handlers.go +++ b/cla-backend-go/v2/sign/handlers.go @@ -135,8 +135,8 @@ func Configure(api *operations.EasyclaAPI, service Service, userService users.Se if strings.Contains(err.Error(), "internal server error") { return sign.NewRequestCorporateSignatureInternalServerError().WithPayload(errorResponse(reqID, err)) } - if strings.Contains(err.Error(), "is sanctioned") { - desc := "We’re sorry, but you are currently unable to sign the Corporate Contributor License Agreement (CCLA). If you believe this may be an error, please reach out to support" + if strings.Contains(err.Error(), "requires further review for trade compliance") { + desc := "We're sorry, but this organization requires additional trade compliance review, so the Contributor License Agreement (CLA) cannot be completed at this time. If you believe this is an error, please contact EasyCLA Support via the chat widget." return sign.NewRequestCorporateSignatureForbidden().WithPayload(errorResponseWithDesc(reqID, err, desc)) } if err == projects_cla_groups.ErrProjectNotAssociatedWithClaGroup { diff --git a/cla-backend-legacy/internal/api/handlers.go b/cla-backend-legacy/internal/api/handlers.go index 042c13768..9cf0be915 100644 --- a/cla-backend-legacy/internal/api/handlers.go +++ b/cla-backend-legacy/internal/api/handlers.go @@ -8897,8 +8897,8 @@ func (h *Handlers) employeeSignaturePrecheck(ctx context.Context, projectID, com if blocked { fn := "employeeSignaturePrecheck" sanctioned := map[string]any{ - "sanctioned": fmt.Sprintf("%s - user %s, company %s is sanctioned", fn, userID, companyID), - "description": "We’re sorry, but you are currently unable to sign the Employee Contributor License Agreement (ECLA). If you believe this may be an error, please reach out to support", + "sanctioned": fmt.Sprintf("%s - user %s, company %s requires additional trade compliance review", fn, userID, companyID), + "description": "We're sorry, but this organization requires additional trade compliance review, so the Contributor License Agreement (CLA) cannot be completed at this time. If you believe this is an error, please contact EasyCLA Support via the chat widget.", "user_id": userID, "company_id": companyID, } From f18ce4ac62a13369c69f928738e136e9510b10b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Gryglicki?= Date: Tue, 21 Jul 2026 09:40:58 +0200 Subject: [PATCH 2/4] Address AI feedback MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Łukasz Gryglicki Assisted by [OpenAI](https://platform.openai.com/) Assisted by [GitHub Copilot](https://github.com/features/copilot) Assisted by [Claude](https://claude.ai) --- cla-backend-go/v2/sign/handlers.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cla-backend-go/v2/sign/handlers.go b/cla-backend-go/v2/sign/handlers.go index 786e9639b..c7a3124ea 100644 --- a/cla-backend-go/v2/sign/handlers.go +++ b/cla-backend-go/v2/sign/handlers.go @@ -135,7 +135,7 @@ func Configure(api *operations.EasyclaAPI, service Service, userService users.Se if strings.Contains(err.Error(), "internal server error") { return sign.NewRequestCorporateSignatureInternalServerError().WithPayload(errorResponse(reqID, err)) } - if strings.Contains(err.Error(), "requires further review for trade compliance") { + if strings.Contains(err.Error(), "is sanctioned") || strings.Contains(err.Error(), "requires further review for trade compliance") { desc := "We're sorry, but this organization requires additional trade compliance review, so the Contributor License Agreement (CLA) cannot be completed at this time. If you believe this is an error, please contact EasyCLA Support via the chat widget." return sign.NewRequestCorporateSignatureForbidden().WithPayload(errorResponseWithDesc(reqID, err, desc)) } From 6f9f46bd4c98ae1c05f4b874a2006fc249b0f4bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Gryglicki?= Date: Tue, 21 Jul 2026 10:14:50 +0200 Subject: [PATCH 3/4] One more wording update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Łukasz Gryglicki Assisted by [OpenAI](https://platform.openai.com/) Assisted by [GitHub Copilot](https://github.com/features/copilot) Assisted by [Claude](https://claude.ai) --- cla-backend-go/v2/sign/service.go | 12 ++++++------ cla-backend-legacy/internal/api/handlers.go | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cla-backend-go/v2/sign/service.go b/cla-backend-go/v2/sign/service.go index 4f016f1e4..b43e9ea70 100644 --- a/cla-backend-go/v2/sign/service.go +++ b/cla-backend-go/v2/sign/service.go @@ -278,11 +278,11 @@ func (s *service) RequestCorporateSignature(ctx context.Context, lfUsername stri } if sanctioned { if input.CompanySfid != nil { - err = fmt.Errorf("company %s is sanctioned", *input.CompanySfid) + err = fmt.Errorf("company %s requires further review for trade compliance", *input.CompanySfid) } else { - err = fmt.Errorf("company is sanctioned") + err = fmt.Errorf("company requires further review for trade compliance") } - log.WithFields(f).WithError(err).Error("company is sanctioned") + log.WithFields(f).WithError(err).Error("company requires further review for trade compliance") return nil, err } @@ -1226,8 +1226,8 @@ func (s *service) SignedCorporateCallback(ctx context.Context, payload []byte, c log.WithFields(f).WithError(complianceErr).Warnf("company compliance check failed in corporate callback for company %s; not finalizing CCLA", companyID) return complianceErr } else if sanctioned { - log.WithFields(f).Warnf("company %s is sanctioned; refusing to finalize corporate CLA in callback", companyID) - return fmt.Errorf("company %s is sanctioned; corporate CLA cannot be finalized", companyID) + log.WithFields(f).Warnf("company %s requires further review for trade compliance; refusing to finalize corporate CLA in callback", companyID) + return fmt.Errorf("company %s requires further review for trade compliance; corporate CLA cannot be finalized", companyID) } _, currentTime := utils.CurrentTime() @@ -2996,7 +2996,7 @@ func (s *service) checkCompanyCompliance(ctx context.Context, company *v1Models. "companyExternalID": company.CompanyExternalID, "sssMode": sssMode, } - log.WithFields(f).Debugf("starting company sanctions screening (mode=%s)", sssMode) + log.WithFields(f).Debugf("starting company trade compliance screening (mode=%s)", sssMode) // Short-circuit for manually/admin-set blocks (sanction_origin != "sss" or no origin). // SSS-origin blocks fall through so a now-clean result can clear them. diff --git a/cla-backend-legacy/internal/api/handlers.go b/cla-backend-legacy/internal/api/handlers.go index 9cf0be915..100e07858 100644 --- a/cla-backend-legacy/internal/api/handlers.go +++ b/cla-backend-legacy/internal/api/handlers.go @@ -8897,7 +8897,7 @@ func (h *Handlers) employeeSignaturePrecheck(ctx context.Context, projectID, com if blocked { fn := "employeeSignaturePrecheck" sanctioned := map[string]any{ - "sanctioned": fmt.Sprintf("%s - user %s, company %s requires additional trade compliance review", fn, userID, companyID), + "sanctioned": fmt.Sprintf("%s - user %s, company %s requires further review for trade compliance", fn, userID, companyID), "description": "We're sorry, but this organization requires additional trade compliance review, so the Contributor License Agreement (CLA) cannot be completed at this time. If you believe this is an error, please contact EasyCLA Support via the chat widget.", "user_id": userID, "company_id": companyID, From 9b7c7f17ef62dd9d793cb37d2da1fa56c638bbda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Gryglicki?= Date: Tue, 21 Jul 2026 10:59:13 +0200 Subject: [PATCH 4/4] Address AI feedback MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Łukasz Gryglicki Assisted by [OpenAI](https://platform.openai.com/) Assisted by [GitHub Copilot](https://github.com/features/copilot) Assisted by [Claude](https://claude.ai) --- cla-backend-go/v2/sign/handlers.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cla-backend-go/v2/sign/handlers.go b/cla-backend-go/v2/sign/handlers.go index c7a3124ea..786e9639b 100644 --- a/cla-backend-go/v2/sign/handlers.go +++ b/cla-backend-go/v2/sign/handlers.go @@ -135,7 +135,7 @@ func Configure(api *operations.EasyclaAPI, service Service, userService users.Se if strings.Contains(err.Error(), "internal server error") { return sign.NewRequestCorporateSignatureInternalServerError().WithPayload(errorResponse(reqID, err)) } - if strings.Contains(err.Error(), "is sanctioned") || strings.Contains(err.Error(), "requires further review for trade compliance") { + if strings.Contains(err.Error(), "requires further review for trade compliance") { desc := "We're sorry, but this organization requires additional trade compliance review, so the Contributor License Agreement (CLA) cannot be completed at this time. If you believe this is an error, please contact EasyCLA Support via the chat widget." return sign.NewRequestCorporateSignatureForbidden().WithPayload(errorResponseWithDesc(reqID, err, desc)) }