How to fix it

  1. Navigate to User Administration > Users and open the user record that shouldn't have access.
  2. Check the Roles related list. If you see admin, security_admin, or other elevated roles, remove them or test with a non-admin user.
  3. Go to System Security > Access Control (ACL) and locate your ACL record.
  4. Open the ACL and verify the Roles field is not empty. If empty, add the appropriate roles that should have access.
  5. Confirm the Table field matches exactly where you want the restriction applied.
  6. Check if conflicting ACLs exist by filtering the ACL list by your table name and looking for other rules with lower Order values (higher priority).
  7. If you find conflicting ACLs, either modify their conditions, change their order, or set them to Active = false if they're no longer needed.
  8. Review any condition script in the Script field for syntax errors or incorrect logic that might return true unintentionally.
  9. Check System Logs > All for any JavaScript errors when your ACL executes, which could cause it to default to allowing access.
  10. Verify the ACL Type field matches your intent (record, field, or table-level restriction).
  11. Test the ACL by impersonating a user who should be restricted through System Administration > Users > Impersonate User.
💡

Use the ACL Debug module (System Security > Debug Security Rules) to trace exactly which ACL rules are being evaluated and their results for specific users and records.