user ctx.req for isRoot and internal check