Refactor the Permission checking decorators

same question as the first one, this seems to be a behaviour change?