pragma solidity 0.4.24; contract Doors { enum Role { Minion, Boss } mapping (address => Role) public userToRole; mapping (address => Role) public doorToRole; function addNewUser(address newUser) public { userToRole[newUser] = Role.Minion; } function changeUserRole(address user, Role newRole) public { userToRole[user] = newRole; } function changeDoorRole(address door, Role newRole) public { doorToRole[door] = newRole; } function checkIfUserCanOpenDoor(address user, address door) public view returns (bool) { return doorToRole[door] == userToRole[user]; } }
0.4.24