diff --git a/cla-backend-go/go.sum b/cla-backend-go/go.sum index 9f4b4ebe8..a29cdd858 100644 --- a/cla-backend-go/go.sum +++ b/cla-backend-go/go.sum @@ -98,6 +98,7 @@ github.com/communitybridge/easycla v1.0.135 h1:Dvn8jX+7BAnpmA+jvdK0n5ajWP8SoH5vv github.com/communitybridge/easycla v1.0.145 h1:ikhBSsOeEL2u3/EoyDsufh/j3HkjfFTiXAk1d61GoS8= github.com/communitybridge/easycla v2.0.10+incompatible h1:6eRJ5fxrMxRZHBkg8piYo+zHTcSowMrP85nZXzp5mpA= github.com/communitybridge/easycla v2.0.16+incompatible h1:I0hEApDh4IvlwRPyHV1LOsSYlSPbqBsGszjSTHwkdak= +github.com/communitybridge/easycla v2.0.19+incompatible h1:HLaNt3jGDXPh3Au+rW/HKbJNkQf3daboVIrP9G6WYQ4= github.com/coreos/bbolt v1.3.2 h1:wZwiHHUieZCquLkDL0B8UhzreNWsPHooDAG3q34zk0s= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.13+incompatible h1:8F3hqu9fGYLBifCmRCJsicFqDx/D68Rt3q1JMazcgBQ= diff --git a/cla-backend-go/signatures/repository.go b/cla-backend-go/signatures/repository.go index 95ae6caa3..69e6c882a 100644 --- a/cla-backend-go/signatures/repository.go +++ b/cla-backend-go/signatures/repository.go @@ -2113,6 +2113,27 @@ func (repo repository) UpdateApprovalList(ctx context.Context, claManager *model repo.eventsService.LogEventWithContext(ctx, eventArgs) + // invalidate icla + log.WithFields(f).Debugf("invalidating icla for user: %s...", email) + claUser, userErr := repo.usersRepo.GetUserByEmail(email) + if userErr != nil { + log.WithFields(f).Debugf("error getting user by email: %s ", email) + } + + if claUser != nil { + icla, iclaErr := repo.GetIndividualSignature(ctx, projectID, claUser.UserID) + if iclaErr != nil { + log.WithFields(f).Debugf("unable to get icla signature for user: %s ", email) + } + if icla != nil { + note := fmt.Sprintf("Signature invalidated (approved set to false) by %s due to %s removal ", utils.GetBestUsername(claManager), email) + err := repo.InvalidateProjectRecord(ctx, icla.SignatureID, note) + if err != nil { + log.WithFields(f).Warnf("unable to invalidate record for user:%s ", email) + } + } + } + //update gerrit permissions gerritUser, err := repo.getGerritUserByEmail(ctx, email, gerritICLAECLAs) if err != nil || gerritUser == nil {