3
0

Slight record resource RBAC tweaks

* Add canRead to record response
* Use existing record when evaluating record update ctx roles
This commit is contained in:
Tomaž Jerman
2021-09-29 14:26:19 +02:00
committed by Denis Arh
parent 951f6e9e17
commit 5155310ca0
2 changed files with 5 additions and 1 deletions
+4
View File
@@ -33,6 +33,7 @@ type (
Records types.RecordSet `json:"records,omitempty"`
CanUpdateRecord bool `json:"canUpdateRecord"`
CanReadRecord bool `json:"canReadRecord"`
CanDeleteRecord bool `json:"canDeleteRecord"`
CanGrant bool `json:"canGrant"`
}
@@ -56,6 +57,7 @@ type (
CanGrant(context.Context) bool
CanUpdateRecord(context.Context, *types.Record) bool
CanReadRecord(context.Context, *types.Record) bool
CanDeleteRecord(context.Context, *types.Record) bool
}
)
@@ -562,6 +564,7 @@ func (ctrl Record) makeBulkPayload(ctx context.Context, m *types.Module, err err
Records: rr[1:],
CanUpdateRecord: ctrl.ac.CanUpdateRecord(ctx, rr[0]),
CanReadRecord: ctrl.ac.CanReadRecord(ctx, rr[0]),
CanDeleteRecord: ctrl.ac.CanDeleteRecord(ctx, rr[0]),
}, nil
}
@@ -577,6 +580,7 @@ func (ctrl Record) makePayload(ctx context.Context, m *types.Module, r *types.Re
CanGrant: ctrl.ac.CanGrant(ctx),
CanUpdateRecord: ctrl.ac.CanUpdateRecord(ctx, r),
CanReadRecord: ctrl.ac.CanReadRecord(ctx, r),
CanDeleteRecord: ctrl.ac.CanDeleteRecord(ctx, r),
}, nil
}
+1 -1
View File
@@ -723,7 +723,7 @@ func (svc record) update(ctx context.Context, upd *types.Record) (rec *types.Rec
aProps.setModule(m)
aProps.setRecord(old)
if !svc.ac.CanUpdateRecord(ctx, upd) {
if !svc.ac.CanUpdateRecord(ctx, old) {
return nil, RecordErrNotAllowedToUpdate()
}