Para maior flexibilidade de um sistema de permissões, tente não fazer checagens do tipo "usuário logado pertence ao grupo 1?".
Ao invés disso, teste se "usuário logado tem a permissão X". Isso dá mais liberdade para implementar grupos (ou profiles) conforme a necessidade do negócio, sem implicar em mudança no seu código-fonte.
Talvez, na situação do Matheus, faça algum sentido para um log, mas nunca encontrei um sentido para testar permissões mesmo. E se você encontrar, no futuro terá que criar algumas exceções. A não ser que seu sistema tenha permissões realmente muito simples.
Algumas exceções que já me deparei foram: "o usuário fulano pertence ao grupo 1, mas eu não quero que ele tenha acesso à tela X". Se isso acontecer um dia (e acredite, é muito comum), seu esquema de verificação por grupos vai por água abaixo. Outra situação que foge à regra das permissões por grupos, mas não à rotina da empresas é "só o gerente fulano pode aprovar isso, mas ele vive em reunião. Então, a secretária dele tem o usuário/senha dele e aprova no lugar dele." Bem, nem preciso explorar muito esse cenário, né?
Com os testes por permissão, ao invés de por grupo, é possível lidar com situações que adicionem/retirem permissões a/de um determinado usuário, sem precisar mexer em seu código-fonte.
Mas, para isso, no caso do Django, é necessário um backend de autenticação que trate essa situação.
Para quem quiser expandir os estudos nesse assunto:
http://en.wikipedia.org/wiki/RbacFica a dica.
--
Vinicius Assef