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.
Requisito: Docker con Compose.
docker compose up --buildSi 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.
- Inicio: http://localhost:8000/
- Administración: http://localhost:8000/admin/
- Usuario:
admin - Contraseña:
Admin12345!
La base SQLite se conserva en el volumen Docker sqlite_data.
- Ingresar a
/admin/con el superusuario. - Abrir Autenticación y autorización > Usuarios para crear usuarios, activarlos, marcarlos como personal y asignar grupos o permisos individuales.
- Abrir Autenticación y autorización > Grupos para revisar los roles y sus permisos.
- Probar las rutas:
/usuarios/perfil/: exige autenticación./usuarios/usuarios/: exige el permisoauth.view_user./usuarios/restringido/: exige que el usuario sea personal (is_staff).
- 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.
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.
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 runserverPruebas:
cd corporativo
python manage.py check
python manage.py migrate
python manage.py testTambién se puede crear otro superusuario de forma interactiva con
python manage.py createsuperuser.