A junior administrator configures the above business rule and ACL. When a user without any role opens an incident with category 'database' and state 1, the priority is set to 1 correctly. However, the user cannot view the incident record. What is the most likely reason?
Exhibit
Refer to the exhibit.
```
Business Rule: "Set Priority"
Table: [incident]
When: before
Order: 100
Condition: current.category == 'database'
Script:
(function executeRule(current, previous /*null when async*/) {
if (current.state == 1) {
current.priority = 1;
}
})(current, previous);
```
ACL: "Incident Read"
Type: record
Operation: read
Name: incident.*
Role: (empty)
Condition: current.assignment_group == 'a1b2c3d4e5f6g7h8i9j0k1l2'
Script: (empty)
Requires role: trueTrap 1: The ACL condition uses sys_id of assignment group, but the field…
Assignment group field stores sys_id, so comparison is valid.
Trap 2: The business rule runs before insert, but the ACL check occurs…
The priority is set correctly, so the business rule runs; ACL check happens on query, not insert.
Trap 3: The business rule order (100) is too low and another rule overrides…
The priority is set correctly as per symptom.
- A
The ACL condition uses sys_id of assignment group, but the field stores display value.
Why wrong: Assignment group field stores sys_id, so comparison is valid.
- B
The business rule runs before insert, but the ACL check occurs after insert.
Why wrong: The priority is set correctly, so the business rule runs; ACL check happens on query, not insert.
- C
The ACL requires a role (empty role list means no role requirement? Actually requires role checked, but no roles listed means any authenticated user, but unauthenticated? The user has no role, and condition fails because assignment group mismatch.
The ACL requires a role and condition fails, so access is denied.
- D
The business rule order (100) is too low and another rule overrides the priority.
Why wrong: The priority is set correctly as per symptom.