Django: meta permission en administración
Si alguna vez os toca jugar con ACL (listas de control de acceso) en Django, además de *todo* lo que trae por defecto, es muy sencillo definir nuevos permisos para utilizar en tu aplicación, basta con agregar al método Meta del modelo un par de sencillas lineas y podremos propagar los permisos por todo el software:
class Task(models.Model):
...
class Meta:
permissions = (
("view_task", "Can see available tasks"),
("change_task_status", "Can change the status of tasks"),
("close_task", "Can remove a task by setting its status as closed"),
)
Lo que no pone tan claro en la documentación es que si estás trabajando con South, para que los nuevos permisos aparezcan en la administración de Django, no llega con hacer un simple syncdb, tendremos que pasarle el parámetro --all:
$ ./manage syncdb --all
Referencias: