/ / Administrador de permisos - python, django, django-models, django-admin

Administrador de permisos - python, django, django-models, django-admin

En Django Admin, estoy desarrollando un administrador de permisos que consiste en:

Permisos - Rol - Grupo - Usuarios

  • Puede agrupar usuarios para asignar roles a grupos.
  • Un grupo puede tener múltiples roles.
  • Los roles están compuestos de diferentes permisos.

Hasta ahora, mis modelos se ven así (he creado mis propios permisos, pero no se muestran aquí):

class UserGroup(models.Model):
"""
A group encompasses different users.
A group can have multiple roles.
"""
name = models.CharField(max_length=15, blank=False)
user = models.ForeignKey(User)


class Role(models.Model):
"""
A role is composed of permissions.
The roles are applied to user groups.
"""
name = models.CharField(max_length=15, blank=False)
group = models.ManyToManyField(UserGroup)


class Permission(models.Model):
"""
Permissions that are applied to roles.
"""
role = models.ManyToManyField(Role)
# ...

Como esta es la primera vez que trabajo con permisos / roles, quiero saber si es una buena aproximación o cuáles son sus puntos débiles.

¿Debo crear modelos / tablas intermedias?

Respuestas

0 para la respuesta № 1

Django tiene un sistema de autenticación con permisos.

https://docs.djangoproject.com/en/1.9/topics/auth/default/

luego, para un mejor sistema de permisos en el nivel de objeto, puede usar django-guardian https://github.com/django-guardian/django-guardian o aplicación similar