Refactor the Permission checking decorators

same question