ink! Smart Contract Access Control: from only_owner to Role Permissions #5
Use a kitchen‑door analogy to explain env().caller(), only_owner checks, Result‑based errors, and role mappings in ink!, with minimal runnable examples so beginners can copy, run, and ship safer contracts.