Why a write to a component is not allowed, or null when it is. Only a write that
ComponentWriteIsGuarded selects is checked.
Without the grant, any update and a delete are allowed only for a component of the caller's own
(IsCallersOwnComponent): used by at least one row and only by the caller's own personal
rows, or used by no row and created by the caller. Forms can load a component by name, so a
component with no row may still be what someone else's form draws.
With the grant, each row that uses the component is checked with FormScopeWriteRefusal
as if the caller were updating that row in place: a Role or Global row passes, another
user's personal row refuses, and the caller's own personal row passes. A component no row uses
may be changed.
A refusal for a caller without the grant says whether the grant would help. It says the grant
would allow the write when a holder making the same write would pass. It says the grant does
not change the answer only when a holder would be refused too: the write is one a holder is
checked for, and another user's personal row uses the component.
Why a write to a component is not allowed, or null when it is. Only a write that ComponentWriteIsGuarded selects is checked.
Without the grant, any update and a delete are allowed only for a component of the caller's own (IsCallersOwnComponent): used by at least one row and only by the caller's own personal rows, or used by no row and created by the caller. Forms can load a component by name, so a component with no row may still be what someone else's form draws.
With the grant, each row that uses the component is checked with FormScopeWriteRefusal as if the caller were updating that row in place: a
RoleorGlobalrow passes, another user's personal row refuses, and the caller's own personal row passes. A component no row uses may be changed.A refusal for a caller without the grant says whether the grant would help. It says the grant would allow the write when a holder making the same write would pass. It says the grant does not change the answer only when a holder would be refused too: the write is one a holder is checked for, and another user's personal row uses the component.