An administrator was shown every approval in the system as though they were their own tasks, and delegation could be used two different ways to hand an approval back to the person who raised it.
An Administrator Is Not Shown Everybody Else’s Approvals
The approvals list exempted administrators and handed them every approval in the system. The dashboard count and the tasks sidebar both read that list, so an administrator saw other people’s approvals presented as their own work and could only find out otherwise by pressing Approve and being refused. Maker-checker working correctly looked like a broken permission.
The queue is now scoped to the caller for everyone. Organisation-wide oversight is not lost — it lives on the workflow instances screen, which is what the administration page actually reads. Every row now also states whether you may act on it, and Approve, Reject and Return are disabled with a tooltip saying why when you may not.
Delegation No Longer Breaks Maker-Checker
Approval authority in this engine is maker-checker: only the person an approval is assigned to may act on it, and whoever submitted the document is excluded from being resolved as its approver. Delegation offered two ways around that, both now closed by one shared rule.
- The delegate action rewrote the assignment with no checks at all, so anyone who could load an approval could route it to themselves and then approve it. It now refuses a non-holder, a self-delegation, and delegating to the submitter.
- A standing delegation was never checked against the submitter, so a delegation pointing at the person who raised the document handed the approval straight back to them at assignment time. Such a delegation is now dropped with a warning and the approval stays with the original approver, who is a valid checker.