Resumen
Endpoint de actualización de los parámetros de la organización (nombre, settings globales). Parte de la API de settings generales.
Endpoint: PUT /api/settings/company
Módulo: core.api.settings (función update_company_settings)
Requisitos de seguridad (s104)
A partir de la Auditoría Suprema (s104), el endpoint exige rol de administrador (is_admin(request.user)). Previamente aceptaba cualquier usuario autenticado (incluyendo readonly).
Historial:
- Pre-s104: Sin guard de rol; cualquier usuario podía renombrar su organización.
- s104 (2026-06-02): Guard añadido:
if not is_admin(request.user): raise HttpError(403, "Admin access required").
Flujo
- Usuario autenticado en
request.user. - Verificar
is_admin(user)→ 403 si no lo es. - Obtener organización del usuario (
request.user.organization). - Validar que existe (404 si no).
- Actualizar campos en
Organization:name, otros settings. - Response 200 +
CompanySettingsSchemacon valores actualizados.
Campos permitidos
Schema CompanySettingsSchema define qué campos puede actualizar un admin:
name— nombre de la organización.- (otros settings generales del tenant).
Tests
tests/api/test_settings.py::test_update_company_as_readonly_rejected— 403 para usuario readonly.tests/api/test_settings.py::test_update_company_as_admin_allowed— 200 para admin; cambios persisten.
Véase también
- [[entity—core—model—organization]]
- [[entity—core—utils—is-admin]]
- [[feature—security—s104-auditoria-suprema-fixes-core]]
- [[concept—saas—multi-tenancy]]
- [[concept—security—role-based-access-control]]