The permissioning system is the most flexible system which can be implemented in any way possible, the idea is to have a User contract and Company contract, the user contract holds the permissions for what the company is allowed to do.
Task 4
Implement a User contract which allows for basic permissions such as funds or adding some hash to the contract which can potentially represent some data about the user.
Implement the company contract which can create new User contracts and interact with the user contract.
The company contract can also be thought of a specific feature/product from a company where each of them require different permissions and the reason is justified.