Refactored: extracted allow/disallow from JSON into columns