Skip to content

Commit

Permalink
delete outdated userlog events
Browse files Browse the repository at this point in the history
Signed-off-by: jkoberg <jkoberg@owncloud.com>
  • Loading branch information
kobergj committed Oct 4, 2023
1 parent c513f02 commit 65e8aa5
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 0 deletions.
1 change: 1 addition & 0 deletions changelog/unreleased/bump-reva.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ https://github.com/owncloud/ocis/pull/7138
https://github.com/owncloud/ocis/pull/6427
https://github.com/owncloud/ocis/pull/7178
https://github.com/owncloud/ocis/pull/7217
https://github.com/owncloud/ocis/pull/7410
5 changes: 5 additions & 0 deletions changelog/unreleased/delete-outdated-userlog-events.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Bugfix: Delete outdated userlog events

Userlog will now delete events when the user has no longer access to the underlying resource

https://github.com/owncloud/ocis/pull/7410
15 changes: 15 additions & 0 deletions services/userlog/pkg/service/http.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ func (ul *UserlogService) HandleGetEvents(w http.ResponseWriter, r *http.Request

conv := NewConverter(ctx, r.Header.Get(HeaderAcceptLanguage), gwc, ul.cfg.Service.Name, ul.cfg.TranslationPath)

var outdatedEvents []string
resp := GetEventResponseOC10{}
for _, e := range evs {
etype, ok := ul.registeredEvents[e.Type]
Expand All @@ -77,13 +78,27 @@ func (ul *UserlogService) HandleGetEvents(w http.ResponseWriter, r *http.Request

noti, err := conv.ConvertEvent(e.Id, einterface)
if err != nil {
if utils.IsErrNotFound(err) || utils.IsErrPermissionDenied(err) {
outdatedEvents = append(outdatedEvents, e.Id)
continue
}
ul.log.Error().Err(err).Str("eventid", e.Id).Str("eventtype", e.Type).Msg("failed to convert event")
continue
}

resp.OCS.Data = append(resp.OCS.Data, noti)
}

// delete outdated events asynchronously
if len(outdatedEvents) > 0 {
go func() {
err := ul.DeleteEvents(u.GetId().GetOpaqueId(), outdatedEvents)
if err != nil {
ul.log.Error().Err(err).Msg("failed to delete events")
}
}()
}

glevs, err := ul.GetGlobalEvents(ctx)
if err != nil {
ul.log.Error().Err(err).Int("returned statuscode", http.StatusInternalServerError).Msg("get global events failed")
Expand Down

0 comments on commit 65e8aa5

Please sign in to comment.