Melhor forma de impor permissões — controller ou constraint?

Acho que as permissões precisam ser aplicadas no controlador ou nas restrições. O modelo não sabe quem o está chamando, creio eu.

Muito obrigado por pensar nisso.