http://example.com/admin/
以下に管理画面をおいて、そっからなりすましログインできるようにしておいて、ユーザーの管理画面は たとえば /my/ad/{id}/update とかにして、


とかでいいんじゃないすかねえ。

model のレイヤーでリソースのアクセス権限を管理し、アクセス不能なら exception を throw するのが普通だと思うすなあ。