From 6558efcaf197cb4d95c624559068386362ba6013 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toma=C5=BE=20Jerman?= Date: Fri, 30 Jun 2023 13:36:42 +0200 Subject: [PATCH] Make role undelete dispatch event buss events This makes it consistent with other resource updaters. --- server/system/service/role.go | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/server/system/service/role.go b/server/system/service/role.go index b0313cdc72..2b96faabaa 100644 --- a/server/system/service/role.go +++ b/server/system/service/role.go @@ -506,7 +506,7 @@ func (svc role) Delete(ctx context.Context, roleID uint64) (err error) { func (svc role) Undelete(ctx context.Context, roleID uint64) (err error) { var ( - r *types.Role + r, upd *types.Role raProps = &roleActionProps{role: &types.Role{ID: roleID}} ) @@ -519,18 +519,23 @@ func (svc role) Undelete(ctx context.Context, roleID uint64) (err error) { return RoleErrNotAllowedToUndelete() } - raProps.setRole(r) + upd = r.Clone() + if err = svc.eventbus.WaitFor(ctx, event.RoleBeforeUpdate(upd, r)); err != nil { + return + } - if !svc.ac.CanDeleteRole(ctx, r) { + raProps.setRole(upd) + + if !svc.ac.CanDeleteRole(ctx, upd) { return RoleErrNotAllowedToDelete() } - r.DeletedAt = nil - - if err = store.UpdateRole(ctx, svc.store, r); err != nil { + upd.DeletedAt = nil + if err = store.UpdateRole(ctx, svc.store, upd); err != nil { return } + svc.eventbus.Dispatch(ctx, event.RoleAfterUpdate(upd, r)) return nil }()