The checks
The same checks in the rule picker
Permission names must match
Has permission compares text. If a role grantsposts:write, type posts:write, not posts.write. Pick one separator for your project and use it everywhere (Roles).
Why prefer them
- Database filters. An Owns the record rule on a list becomes “only the caller’s rows” in the database query, so only they are read and pages and counts are exact.
- Clarity. Has role admin explains itself.
- Fewer mistakes. The builder makes them correctly.
Custom owner columns
Not every table’s owner is calledowner_id. Use Owner via field… (or Owns the record (field)) and type author_id, customer_id or whichever column holds the person.
Where several people may act (the author or an editor), combine: Any of: Owns the record (author_id); Has role editor.
Combining
Put them together.
How rules are evaluated
Filters vs checks.