Too Long; Didn't Read
In this article I’m going to discuss three approaches to permissioning in solidity smart contracts. These approaches are discussed in order of complexity, which is the order in which you should consider them for your project. I include code that you can reuse for each approach. Whitelist.sol keeps a list of addresses which then can be used to restrict functionality or any other purpose. RBAC.sol aims to give multi user functionality like you have in modern shared systems. It is very similar in functionality to OpenZeppelin’s Rolessol, although with some critical differences.