Refactor the Permission checking decorators

What's going on here?