Skip to content

Repository files navigation

Administración de usuarios, grupos y permisos con Django

Proyecto educativo que utiliza exclusivamente el modelo Auth y el sitio administrativo preconstruido de Django. Permite demostrar creación y edición de usuarios, grupos, permisos individuales, permisos por grupo, autenticación, autorización y respuestas de acceso denegado.

Ejecución con Docker

Requisito: Docker con Compose.

docker compose up --build

Si el puerto 8000 está ocupado, se puede elegir otro sin modificar archivos: DJANGO_PORT=8001 docker compose up --build (PowerShell: $env:DJANGO_PORT=8001; docker compose up --build).

Al iniciar, entrypoint.sh ejecuta las migraciones, crea o actualiza los grupos, crea el superusuario si no existe y levanta el servidor. El proceso es idempotente.

La base SQLite se conserva en el volumen Docker sqlite_data.

Demostración educativa

  1. Ingresar a /admin/ con el superusuario.
  2. Abrir Autenticación y autorización > Usuarios para crear usuarios, activarlos, marcarlos como personal y asignar grupos o permisos individuales.
  3. Abrir Autenticación y autorización > Grupos para revisar los roles y sus permisos.
  4. Probar las rutas:
    • /usuarios/perfil/: exige autenticación.
    • /usuarios/usuarios/: exige el permiso auth.view_user.
    • /usuarios/restringido/: exige que el usuario sea personal (is_staff).
  5. Un usuario anónimo se redirige al login y uno sin autorización recibe HTTP 403.

Para entrar al admin, un usuario debe tener activado Es personal. Sus grupos y permisos determinan qué módulos y operaciones puede administrar.

Roles automáticos

python manage.py create_roles es repetible y configura:

  • Administrador: alta, cambio, baja y consulta de usuarios y grupos.
  • Supervisor: consulta/cambio de usuarios y consulta de grupos.
  • Usuario: consulta de usuarios.

Ejecución local

Requiere Python 3.12 o superior (Django 6.0):

python -m venv .venv
# Windows: .venv\Scripts\activate
# Linux/macOS: source .venv/bin/activate
pip install -r requirements.txt
cd corporativo
python manage.py migrate
python manage.py create_roles
python manage.py ensure_superuser
python manage.py runserver

Pruebas:

cd corporativo
python manage.py check
python manage.py migrate
python manage.py test

También se puede crear otro superusuario de forma interactiva con python manage.py createsuperuser.

About

Proyecto educativo en Django que demuestra la administración de usuarios, grupos y permisos utilizando exclusivamente django.contrib.auth y el panel administrativo nativo. Incluye autenticación, autorización, roles, acceso restringido, respuestas 403, pruebas automatizadas, SQLite y despliegue mediante Docker.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages