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 | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/server/system/service/role.go b/server/system/service/role.go index b0313cdc7..2b96faaba 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) - - if !svc.ac.CanDeleteRole(ctx, r) { - return RoleErrNotAllowedToDelete() - } - - r.DeletedAt = nil - - if err = store.UpdateRole(ctx, svc.store, r); err != nil { + upd = r.Clone() + if err = svc.eventbus.WaitFor(ctx, event.RoleBeforeUpdate(upd, r)); err != nil { return } + raProps.setRole(upd) + + if !svc.ac.CanDeleteRole(ctx, upd) { + return RoleErrNotAllowedToDelete() + } + + upd.DeletedAt = nil + if err = store.UpdateRole(ctx, svc.store, upd); err != nil { + return + } + + svc.eventbus.Dispatch(ctx, event.RoleAfterUpdate(upd, r)) return nil }()