@@ -473,6 +473,9 @@ public virtual async Task ReplaceCredential(User user, Credential credential)
473473 {
474474 await ReplaceCredentialInternal ( user , credential ) ;
475475 await Entities . SaveChangesAsync ( ) ;
476+
477+ await Auditing . SaveAuditRecordAsync ( new UserAuditRecord (
478+ user , AuditedUserAction . AddCredential , credential ) ) ;
476479 }
477480
478481 public virtual async Task < Credential > ResetPasswordWithToken ( string username , string token , string newPassword )
@@ -501,6 +504,10 @@ public virtual async Task<Credential> ResetPasswordWithToken(string username, st
501504 user . FailedLoginCount = 0 ;
502505 user . LastFailedLoginUtc = null ;
503506 await Entities . SaveChangesAsync ( ) ;
507+
508+ await Auditing . SaveAuditRecordAsync ( new UserAuditRecord (
509+ user , AuditedUserAction . AddCredential , cred ) ) ;
510+
504511 return cred ;
505512 }
506513
@@ -590,6 +597,10 @@ public virtual async Task<bool> ChangePassword(User user, string oldPassword, st
590597
591598 // Save changes
592599 await Entities . SaveChangesAsync ( ) ;
600+
601+ await Auditing . SaveAuditRecordAsync ( new UserAuditRecord (
602+ user , AuditedUserAction . AddCredential , passwordCredential ) ) ;
603+
593604 return true ;
594605 }
595606
@@ -623,10 +634,10 @@ public virtual async Task AddCredential(User user, Credential credential)
623634 throw new InvalidOperationException ( ServicesStrings . OrganizationsCannotCreateCredentials ) ;
624635 }
625636
626- await Auditing . SaveAuditRecordAsync ( new UserAuditRecord ( user , AuditedUserAction . AddCredential , credential ) ) ;
627637 user . Credentials . Add ( credential ) ;
628638 await Entities . SaveChangesAsync ( ) ;
629639
640+ await Auditing . SaveAuditRecordAsync ( new UserAuditRecord ( user , AuditedUserAction . AddCredential , credential ) ) ;
630641 _telemetryService . TrackNewCredentialCreated ( user , credential ) ;
631642 }
632643
@@ -838,9 +849,6 @@ await Auditing.SaveAuditRecordAsync(new UserAuditRecord(
838849 }
839850
840851 user . Credentials . Add ( credential ) ;
841-
842- await Auditing . SaveAuditRecordAsync ( new UserAuditRecord (
843- user , AuditedUserAction . AddCredential , credential ) ) ;
844852 }
845853
846854 private static CredentialKind GetCredentialKind ( string type )
@@ -1024,15 +1032,20 @@ private async Task MigrateCredentials(User user, List<Credential> creds, string
10241032 await Auditing . SaveAuditRecordAsync ( new UserAuditRecord ( user , AuditedUserAction . RemoveCredential , toRemove ) ) ;
10251033
10261034 // Now add one if there are no credentials left
1035+ Credential newCred = null ;
10271036 if ( creds . Count == 0 )
10281037 {
1029- var newCred = _credentialBuilder . CreatePasswordCredential ( password ) ;
1030- await Auditing . SaveAuditRecordAsync ( new UserAuditRecord ( user , AuditedUserAction . AddCredential , newCred ) ) ;
1038+ newCred = _credentialBuilder . CreatePasswordCredential ( password ) ;
10311039 user . Credentials . Add ( newCred ) ;
10321040 }
10331041
10341042 // Save changes, if any
10351043 await Entities . SaveChangesAsync ( ) ;
1044+
1045+ if ( newCred != null )
1046+ {
1047+ await Auditing . SaveAuditRecordAsync ( new UserAuditRecord ( user , AuditedUserAction . AddCredential , newCred ) ) ;
1048+ }
10361049 }
10371050 }
10381051}
0 commit comments