refacto requireRole