Too Long; Didn't Read
Using AccessControl.sol [A How-To Guide] The new library from OpenZeppelin makes me happy. The new access control contract is much more flexible than their previous approach, and much more robust than my previous approach. With $1 Billion locked in DeFi applications, you would really hope everyone knows what they are doing. The contract is a hierarchical role-based control contract that restricts access to your smart contracts. It is available from the openzeppelin-contracts repository and I don't keep a different codebase anymore.