From 323061faa7f57e341d2fb8ae9b61f2ede6a5861c Mon Sep 17 00:00:00 2001 From: Harold Wanyama Date: Thu, 16 Nov 2023 12:04:04 +0300 Subject: [PATCH] Bug/ICLA signature - fixed create signature with null signature reference name attribute being None Signed-off-by: Harold Wanyama --- cla-backend-go/v2/sign/service.go | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/cla-backend-go/v2/sign/service.go b/cla-backend-go/v2/sign/service.go index b84fe5dd0..8bfc3797f 100644 --- a/cla-backend-go/v2/sign/service.go +++ b/cla-backend-go/v2/sign/service.go @@ -517,7 +517,7 @@ func (s *service) RequestIndividualSignature(ctx context.Context, input *models. SignatureDocumentMajorVersion: document.DocumentMajorVersion, SignatureDocumentMinorVersion: document.DocumentMinorVersion, SignatureReferenceID: *input.UserID, - SignatureReferenceName: user.Username, + SignatureReferenceName: getUserName(user), SignatureType: utils.SignatureTypeCLA, SignatureReturnURLType: input.ReturnURLType, SignatureProjectID: *input.ProjectID, @@ -527,7 +527,7 @@ func (s *service) RequestIndividualSignature(ctx context.Context, input *models. SignatureACL: []string{acl}, SigtypeSignedApprovedID: fmt.Sprintf("%s#%v#%v#%s", utils.ClaTypeICLA, signed, approved, signatureID), SignatureUserCompanyID: user.CompanyID, - SignatureReferenceNameLower: strings.ToLower(user.Username), + SignatureReferenceNameLower: strings.ToLower(getUserName(user)), } // 10. Populate sign url @@ -548,6 +548,24 @@ func (s *service) RequestIndividualSignature(ctx context.Context, input *models. }, nil } +func getUserName(user *v1Models.User) string { + + if user.Username != "" { + return user.Username + } + if user.LfUsername != "" { + return user.LfUsername + } + + if user.GithubUsername != "" { + return user.GithubUsername + } + if user.GitlabUsername != "" { + return user.GitlabUsername + } + return "" +} + func (s *service) getIndividualSignatureCallbackURLGitlab(ctx context.Context, userID string, metadata map[string]interface{}) (string, error) { f := logrus.Fields{ "functionName": "sign.getIndividualSignatureCallbackURLGitlab", @@ -664,7 +682,9 @@ func (s *service) populateSignURL(ctx context.Context, defaultValues map[string]interface{}, preferredEmail string) (string, error) { f := logrus.Fields{ - "functionName": "sign.populateSignURL", + "functionName": "sign.populateSignURL", + "authorityOrSignatoryName": authorityOrSignatoryName, + "authorityOrSignatoryEmail": authorityOrSignatoryEmail, } log.WithFields(f).Debugf("populating sign url...") signatureReferenceType := latestSignature.SignatureReferenceType @@ -1425,6 +1445,7 @@ func (s *service) requestCorporateSignature(ctx context.Context, apiURL string, SignatureSigned: false, SignatureApproved: true, SigtypeSignedApprovedID: fmt.Sprintf("%s#%v#%v#%s", utils.SignatureTypeCCLA, signed, approved, signatureID), + SignatureReferenceNameLower: strings.ToLower(comp.CompanyName), } }