Skip to content

Manager override

The physical worldScanDashboardchoices.rolesrefusex-lt-actionsroster

An exception action shows to everyone and runs only for a badge that holds the manager role; anyone else is refused and keeps their badge.

The situation

Sometimes a bag has no readable label and must be added by hand. Associates should see that the option exists, but only a manager may use it, and the record should say which manager did.

The recipe

Give the choice roles and the copy a person without the role sees:

rule 13:0 Bin tag (choices)
{ "label": "Add without scan", "verb": "resolve", "roles": ["manager"],
"refuse": "A manager's badge is needed to add a bag without its scan.",
"params": { "resolverPayload": { "outcome": "added-by-manager" } } }

The same control exists on a roster entry inside a form:

form_schema (roster actions)
"x-lt-actions": [
{ "label": "Key in (manager)", "fill": { "payload": { "source": "key-in" }, "enterCode": true },
"roles": ["manager"], "refuse": "A manager's badge is needed to key a box in." }
]

A station without a manager’s badge sees the choice withheld and is asked for one. The manager walks over, badges, and the choice runs as the manager.

The guarantee

A badge without the role is refused with the refuse copy, and the badge is not spent. A role limit is an act control layered on RBAC: the manager must also be allowed to write the row. Roster actions run on the server, which re-reads the action from the row’s pinned form schema and checks roles against the person acting. See Scan codes.