Contraseñas almacenadas en texto plano en Django Admin

Al configurar la interfaz de administración de nuestro usuario, sea personalizado o no, debemos heredar de la clase.

UserAdmin

Si simplemente implementamos la administración con una linea como la siguiente:

admin.site.register(User, CustomUserAdmin)

Al editar un nuevo usuario el sistema de cifrado de Django no procesará la petición y, por lo tanto, la contraseña quedará almacenada en texto plano en nuestra base de datos. Contraseña que, además, no servirá para autenticar al usuario ya que Django tratará de decodificar la contraseña que ya de por sí está decodificada en la base de datos para compararla con la introducida por el usuario.

Por suerte la solución es bien sencilla. Simplemente deja tu admins.py así:

from django.contrib.auth.admin import UserAdmin
class CustomUserAdmin(UserAdmin):
    pass

admin.site.register(User, CustomUserAdmin)

O si no quieres personalizar las opciones de tu usuario, así:

from django.contrib.auth.admin import UserAdmin

admin.site.register(User, UserAdmin)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.