Skip to content

Commit 3b579d3

Browse files
authored
validate role actions on resource for updates (#230)
Validate role actions on the resource not the role type when updating a role. Signed-off-by: Mike Mason <[email protected]>
1 parent 8c2f94f commit 3b579d3

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

internal/query/relations.go

+14-4
Original file line numberDiff line numberDiff line change
@@ -405,10 +405,6 @@ func (e *engine) UpdateRole(ctx context.Context, actor, roleResource types.Resou
405405

406406
defer span.End()
407407

408-
if err := e.validateResourceActions(roleResource, newActions...); err != nil {
409-
return types.Role{}, err
410-
}
411-
412408
dbCtx, err := e.store.BeginContext(ctx)
413409
if err != nil {
414410
return types.Role{}, err
@@ -433,6 +429,20 @@ func (e *engine) UpdateRole(ctx context.Context, actor, roleResource types.Resou
433429
return types.Role{}, err
434430
}
435431

432+
res, err := e.NewResourceFromID(role.ResourceID)
433+
if err != nil {
434+
logRollbackErr(e.logger, e.store.RollbackContext(dbCtx))
435+
436+
return types.Role{}, err
437+
}
438+
439+
// Validate actions against role resource
440+
if err := e.validateResourceActions(res, newActions...); err != nil {
441+
logRollbackErr(e.logger, e.store.RollbackContext(dbCtx))
442+
443+
return types.Role{}, err
444+
}
445+
436446
newName = strings.TrimSpace(newName)
437447

438448
if newName == "" {

0 commit comments

Comments
 (0)