# Concepto de propio y ajeno

El sistema de Airvi implementa un modelo de control de acceso basado en la propiedad de los registros, el cual permite establecer restricciones según el usuario que crea o gestiona cada elemento dentro de la plataforma. Este modelo diferencia entre registros **propios** y **ajenos**, con el objetivo de garantizar la seguridad, trazabilidad y delegación de funciones en función del rol asignado.

> ⚠️ **Importante:** Este concepto es exclusivo para el contexto de **permisos de acceso**. No debe confundirse con otros usos del término “propio”, como cuando se habla de “viaje propio”, el cual tiene relación con la agencia que opera directamente el viaje y no con el usuario que lo registró.

#### **¿Qué es un registro “Propio”?**

Un registro se considera **propio** cuando es creado directamente por un usuario autenticado en el sistema. Por ejemplo, si un usuario ingresa con sus credenciales y crea un producto o una cotización, dicho registro queda automáticamente asociado a su cuenta como propietario. Esto aplica a todos los módulos donde se genera contenido individualmente: viajes, cotizaciones, reservas, productos, etc.

##### **Ejemplo:**

> El usuario *<a class="decorated-link cursor-pointer" data-end="1629" data-start="1610" rel="noopener">agente1 </a>*crea un viaje y lo guarda. Ese viaje es considerado propio de *agente1*.

#### **¿Qué es un registro “Ajeno”?**

Un registro se considera **ajeno** cuando ha sido creado por otro usuario distinto al que está actualmente autenticado. Por defecto, un usuario **no tiene permisos** para visualizar ni modificar registros ajenos, a menos que el administrador del sistema le haya asignado permisos explícitos para hacerlo.

#### **Lógica general de permisos**

Para cualquier usuario no administrativo:

- Puede **ver y modificar** los registros que ha creado (propios).
- Puede **ver o editar registros ajenos solo si tiene permisos específicos** para hacerlo.
- La visualización en pantalla y disponibilidad de botones depende del estado de los permisos.
- En algunos módulos como “Usuarios y Proveedores”, **no aplica el concepto de propio o ajeno**, ya que los accesos son absolutos: o puede gestionar o no puede.

#### **Aplicación por módulo**

##### **Usuarios y Proveedores**

- El agente de viajes no puede crear ni modificar usuarios.
- Puede crear proveedores, pero no puede editarlos.
- No aplica el concepto de propio/ajeno; los permisos son binarios (puede o no puede).

##### **Cotizaciones**

- Los agentes pueden ver, editar y eliminar solo sus cotizaciones.
- No pueden ver ni modificar cotizaciones ajenas, a menos que se les asignen permisos especiales (como “ver ajenas”, “editar ajenas”).
- Las cotizaciones siempre están asociadas al usuario que las creó.

##### **Viajes**

- El agente de viajes puede **ver todos los viajes** creados por él o por otros.
- Solo puede **editar, eliminar o restaurar** los viajes que él mismo creó.
- No puede modificar viajes ajenos, a menos que tenga permiso asignado.

##### **Reservas**

- Las reservas tienen un comportamiento especial: pueden tener **dos propietarios simultáneos**:
    
    
    - El **usuario que crea la reserva**.
    - El **agente de viajes asignado** en el campo correspondiente.
- Ambos pueden ver y editar la reserva mientras tengan los permisos activos.
- Por defecto, los agentes pueden ver reservas ajenas, pero **no pueden editarlas**, a menos que se les otorgue permiso específico.
- Funciones como imprimir vouchers o certificados dependerán de si pueden visualizar la reserva en pantalla.

##### **Gestión de Pagos**

- Los permisos de pago (registro, modificación, eliminación) pueden ser limitados por tipo de usuario.
- Solo los usuarios con roles administrativos o permisos personalizados pueden acceder a pagos ajenos.

##### **Permisos en Etiquetas de Viajes y Reservas**

- El permiso **“editar etiquetas”** permite modificar etiquetas dentro de una reserva, sin importar si el registro es propio o ajeno.
- Este permiso suele asignarse a roles como contabilidad o administrativos, quienes necesitan clasificar registros aunque no sean los creadores.

##### **Permisos en Notas de Seguimiento**

*(Próximamente disponible)*

- El módulo de notas de seguimiento incluirá permisos específicos para:
    
    
    - Visualizar notas.
    - Registrar notas.
    - Editar o eliminar notas según su creador.
    - Controlar acceso por usuario y entidad asignada.
- Se aplicará el mismo criterio de propiedad (propio/ajeno) y se complementará con permisos para notificaciones.