Create audit logs for partner and oidc provider

This commit is contained in:
Abin Simon
2022-04-08 17:42:26 +05:30
parent 34c48c5892
commit 08db221239
3 changed files with 52 additions and 1 deletions
+40 -1
View File
@@ -247,6 +247,25 @@ func CreateProjectAuditEvent(ctx context.Context, al *zap.Logger, action string,
}
}
func CreatePartnerAuditEvent(ctx context.Context, al *zap.Logger, action string, name string, id uuid.UUID) {
sd, ok := GetSessionDataFromContext(ctx)
if !ok {
_log.Warn("unable to create audit event: could not fetch info from context")
return
}
detail := &audit.EventDetail{
Message: fmt.Sprintf("Partner %s %sd", name, action),
Meta: map[string]string{
"partner_id": id.String(),
"partner_name": name,
},
}
if err := audit.CreateV1Event(al, sd, detail, fmt.Sprintf("partner.%s.success", action), id.String()); err != nil {
_log.Warn("unable to create audit event", err)
}
}
func CreateOrganizationAuditEvent(ctx context.Context, al *zap.Logger, action string, name string, id uuid.UUID, settingsBefore, settingsAfter *systemv3.OrganizationSettings) {
sd, ok := GetSessionDataFromContext(ctx)
if !ok {
@@ -341,12 +360,32 @@ func CreateIdpAuditEvent(ctx context.Context, al *zap.Logger, action string, nam
"idp_name": name,
},
}
// TODO: it is idp.config.created in rcloud
// idp.create.success is idp.config.created in rcloud
if err := audit.CreateV1Event(al, sd, detail, fmt.Sprintf("idp.%s.success", action), ""); err != nil {
_log.Warn("unable to create audit event", err)
}
}
func CreateOidcAuditEvent(ctx context.Context, al *zap.Logger, action string, name string, id uuid.UUID) {
sd, ok := GetSessionDataFromContext(ctx)
if !ok {
_log.Warn("unable to create audit event: could not fetch info from context")
return
}
detail := &audit.EventDetail{
Message: fmt.Sprintf("Oidc %s %sd", name, action),
Meta: map[string]string{
"oidc_id": id.String(),
"oidc_name": name,
},
}
if err := audit.CreateV1Event(al, sd, detail, fmt.Sprintf("oidc.%s.success", action), ""); err != nil {
_log.Warn("unable to create audit event", err)
}
}
func CreateApiKeyAuditEvent(ctx context.Context, al *zap.Logger, action string, id string) {
sd, ok := GetSessionDataFromContext(ctx)
if !ok {
+6
View File
@@ -154,6 +154,8 @@ func (s *oidcProvider) Create(ctx context.Context, provider *systemv3.OIDCProvid
CallbackUrl: generateCallbackUrl(entity.Id.String(), s.kratosUrl),
},
}
CreateOidcAuditEvent(ctx, s.al, AuditActionCreate, rv.GetMetadata().GetName(), entity.Id)
return rv, nil
}
@@ -376,6 +378,8 @@ func (s *oidcProvider) Update(ctx context.Context, provider *systemv3.OIDCProvid
CallbackUrl: generateCallbackUrl(provider.GetMetadata().GetId(), s.kratosUrl),
},
}
CreateOidcAuditEvent(ctx, s.al, AuditActionUpdate, rv.GetMetadata().GetName(), entity.Id)
return rv, nil
}
@@ -394,5 +398,7 @@ func (s *oidcProvider) Delete(ctx context.Context, provider *systemv3.OIDCProvid
if err != nil {
return err
}
CreateOidcAuditEvent(ctx, s.al, AuditActionDelete, name, entity.Id)
return nil
}
+6
View File
@@ -78,6 +78,8 @@ func (s *partnerService) Create(ctx context.Context, partner *systemv3.Partner)
//update v3 spec
partner.Metadata.Id = createdPartner.ID.String()
partner.Metadata.ModifiedAt = timestamppb.New(createdPartner.ModifiedAt)
CreatePartnerAuditEvent(ctx, s.al, AuditActionCreate, partner.GetMetadata().GetName(), createdPartner.ID)
}
return partner, nil
@@ -244,6 +246,8 @@ func (s *partnerService) Update(ctx context.Context, partner *systemv3.Partner)
//update metadata and status
partner.Metadata.ModifiedAt = timestamppb.New(part.ModifiedAt)
CreatePartnerAuditEvent(ctx, s.al, AuditActionUpdate, partner.GetMetadata().GetName(), part.ID)
}
return partner, nil
@@ -260,6 +264,8 @@ func (s *partnerService) Delete(ctx context.Context, partner *systemv3.Partner)
if err != nil {
return &systemv3.Partner{}, err
}
CreatePartnerAuditEvent(ctx, s.al, AuditActionDelete, partner.GetMetadata().GetName(), part.ID)
return partner, nil
}