[{"data":1,"prerenderedAt":812},["ShallowReactive",2],{"guide:es:authorization":3},{"id":4,"title":5,"body":6,"description":804,"extension":805,"meta":806,"navigation":807,"path":808,"seo":809,"stem":810,"__hash__":811},"guide_es/es/user/authorization/index.md","Autorización",{"type":7,"value":8,"toc":787},"minimark",[9,13,17,22,33,39,67,70,74,77,82,152,157,177,182,193,197,208,211,216,239,244,253,256,288,292,298,303,331,336,350,354,360,366,369,375,381,384,390,396,399,403,409,414,420,426,430,441,445,450,464,469,475,480,494,498,503,523,528,544,549,560,564,572,585,590,595,601,606,612,617,623,626,630,635,649,654,668,672,677,688,693,704,709,720,725,736,741,752,757,768,773],[10,11,5],"h1",{"id":12},"autorización",[14,15,16],"p",{},"La autorización define qué pueden y no pueden hacer los usuarios después de la autenticación. Aptli usa un modelo de autorización flexible de dos capas que combina derechos de administrador permisivos con restricciones de rol restrictivas.",[18,19,21],"h2",{"id":20},"resumen-del-modelo-de-autorización","Resumen del Modelo de Autorización",[23,24,29],"pre",{"className":25,"code":27,"language":28},[26],"language-text","Modelo de Seguridad de Cuatro Capas:\n\nCapa 1: Autenticación\n    ↓\n ¿Quién eres? (Contraseña, 2FA, OAuth)\n    ↓\nCapa 2: Derechos de Administrador (Permisivos)\n    ↓\n ¿Qué PUEDES modificar? (usersUpdate, pointsCreate, etc.)\n    ↓\nCapa 3: Restricciones de Rol (Restrictivas)\n    ↓\n ¿Qué NO PUEDES ver? (Filtros de campo: propietario, estado, categoría)\n    ↓\nCapa 4: Renderizado del Lado del Servidor (SSR)\n    ↓\n Aplicación en API (datos no autorizados nunca enviados al cliente)\n","text",[30,31,27],"code",{"__ignoreMap":32},"",[14,34,35],{},[36,37,38],"strong",{},"Seguridad de Cuatro Capas:",[40,41,42,49,55,61],"ol",{},[43,44,45,48],"li",{},[36,46,47],{},"Autenticación"," - Quién eres (cubierto en sección de Autenticación)",[43,50,51,54],{},[36,52,53],{},"Derechos de Administrador"," - Qué PUEDES modificar (concesiones permisivas)",[43,56,57,60],{},[36,58,59],{},"Restricciones de Rol"," - Qué NO PUEDES ver (filtros restrictivos)",[43,62,63,66],{},[36,64,65],{},"Aplicación del Lado del Servidor"," - Los datos realmente no existen para usuarios no autorizados",[14,68,69],{},"Este modelo proporciona una flexibilidad tremenda mientras mantiene la seguridad.",[18,71,73],{"id":72},"derechos-de-administrador-permisivos","Derechos de Administrador (Permisivos)",[14,75,76],{},"Los derechos de administrador conceden permiso para modificar información o alterar estado. Sin estos derechos, los usuarios solo pueden ver datos y editar su propio perfil.",[14,78,79],{},[36,80,81],{},"Derechos de Administrador Comunes:",[83,84,85,91,97,103,109,122,134,140,146],"ul",{},[43,86,87,90],{},[30,88,89],{},"usersUpdate"," - Editar perfiles de otros usuarios (nombre, título, división - NO correo/contraseña)",[43,92,93,96],{},[30,94,95],{},"usersLogout"," - Forzar cierre de sesión o bloqueo duro de usuarios",[43,98,99,102],{},[30,100,101],{},"usersDelete"," - Eliminar cuentas de usuario",[43,104,105,108],{},[30,106,107],{},"usersCreate"," - Crear nuevos usuarios o restaurar cuentas",[43,110,111,114,115,114,118,121],{},[30,112,113],{},"pointsCreate",", ",[30,116,117],{},"pointsUpdate",[30,119,120],{},"pointsDelete"," - Modificar características de puntos",[43,123,124,114,127,114,130,133],{},[30,125,126],{},"ordersCreate",[30,128,129],{},"ordersUpdate",[30,131,132],{},"ordersDelete"," - Gestionar órdenes de trabajo",[43,135,136,139],{},[30,137,138],{},"assignmentsCreate"," - Crear asignaciones de trabajo",[43,141,142,145],{},[30,143,144],{},"reportsCreate"," - Enviar reportes de trabajo",[43,147,148,151],{},[30,149,150],{},"transactionsCreate"," - Crear transacciones de inventario",[14,153,154],{},[36,155,156],{},"Derechos Super (Superceden a Todos los Otros):",[83,158,159,165,171],{},[43,160,161,164],{},[30,162,163],{},"appSettingSchemasModify"," - Modificar configuraciones a nivel de aplicación (dominios, tiempos de espera, seguridad)",[43,166,167,170],{},[30,168,169],{},"adminRightsModify"," - Conceder derechos de administrador a otros usuarios",[43,172,173,176],{},[30,174,175],{},"viewDeleted"," - Ver registros eliminados (casi universal, parcialmente anulado por restricciones de rol)",[14,178,179],{},[36,180,181],{},"Verificando Derechos de Administrador del Usuario:",[40,183,184,187,190],{},[43,185,186],{},"Navegar a Admin → Usuarios",[43,188,189],{},"Abrir perfil de usuario",[43,191,192],{},"Sección \"Derechos de Administrador\" lista todos los permisos concedidos",[18,194,196],{"id":195},"restricciones-de-rol-restrictivas","Restricciones de Rol (Restrictivas)",[14,198,199,204],{},[200,201],"img",{"alt":202,"src":203},"Lista de Roles","/guide/authorization/roles-list.png",[205,206,207],"em",{},"Página de administración de roles mostrando restricciones de rol configuradas",[14,209,210],{},"Los roles son colecciones de restricciones que previenen ver y alterar registros con ciertas características. La membresía en un rol aplica todas las restricciones a ese usuario.",[14,212,213],{},[36,214,215],{},"Componentes de Rol:",[83,217,218,224,234],{},[43,219,220,223],{},[36,221,222],{},"Miembros"," - Usuarios que tienen estas restricciones aplicadas",[43,225,226,229,230,233],{},[36,227,228],{},"Propietario"," - Usuario que controla la membresía (o usuarios con derecho de administrador ",[30,231,232],{},"rolesUpdate",")",[43,235,236,238],{},[36,237,59],{}," - Filtros a nivel de campo ocultando datos específicos",[240,241,243],"h3",{"id":242},"estructura-de-restricción-de-rol","Estructura de Restricción de Rol",[14,245,246,250],{},[200,247],{"alt":248,"src":249},"Detalle de Rol","/guide/authorization/role-detail.png",[205,251,252],{},"Página de detalle de rol mostrando configuración de restricción a nivel de campo",[14,254,255],{},"Cada restricción define:",[83,257,258,264,270,276,282],{},[43,259,260,263],{},[36,261,262],{},"Modelo"," - Qué tipo de datos (puntos, polígonos, asignaciones, etc.)",[43,265,266,269],{},[36,267,268],{},"Campo"," - Qué propiedad filtrar (propietario, estado, categoría, campos personalizados)",[43,271,272,275],{},[36,273,274],{},"Comparación"," - Cómo coincidir (=, !=, >, \u003C, contiene, etc.)",[43,277,278,281],{},[36,279,280],{},"Valor de Filtro"," - Qué valor coincidir contra",[43,283,284,287],{},[36,285,286],{},"Permisos"," - Qué está bloqueado (leer, editar, crear, eliminar)",[240,289,291],{"id":290},"caso-de-uso-de-ejemplo-separación-de-contratistas","Caso de Uso de Ejemplo: Separación de Contratistas",[14,293,294,297],{},[36,295,296],{},"Escenario:"," Prevenir que Contratista A vea el trabajo de Contratista B",[14,299,300],{},[36,301,302],{},"Configuración:",[40,304,305,308,328],{},[43,306,307],{},"Crear rol: \"Contratista A\"",[43,309,310,311],{},"Agregar restricción de rol:\n",[83,312,313,316,319,322,325],{},[43,314,315],{},"Modelo: Punto (características)",[43,317,318],{},"Campo: propietario",[43,320,321],{},"Comparación: =",[43,323,324],{},"Valor de Filtro: Contratista B",[43,326,327],{},"Permisos: Leer ✓, Editar ✓, Crear ✓, Eliminar ✓ (todos verdaderos = no puede hacer ninguno de estos)",[43,329,330],{},"Agregar usuarios de Contratista A como miembros",[14,332,333],{},[36,334,335],{},"Resultado:",[83,337,338,341,344,347],{},[43,339,340],{},"Los miembros de Contratista A no pueden ver ningún punto donde propietario = \"Contratista B\"",[43,342,343],{},"No solo oculto en UI - API devuelve datos como si los registros no existieran",[43,345,346],{},"No puede ver accidentalmente vía captura de pantalla, llamada API o exportación",[43,348,349],{},"Completamente aplicado del lado del servidor",[240,351,353],{"id":352},"casos-de-uso-adicionales","Casos de Uso Adicionales",[14,355,356,359],{},[36,357,358],{},"Por Etapa de Trabajo:","\nPrevenir que trabajadores de campo vean reportes de validación QC:",[23,361,364],{"className":362,"code":363,"language":28},[26],"Rol: \"Trabajadores de Campo\"\nRestricción:\n  Modelo: Validación\n  Campo: estado\n  Comparación: !=\n  Valor de Filtro: \"\" (cualquier valor)\n  Permisos: Leer ✓\n",[30,365,363],{"__ignoreMap":32},[14,367,368],{},"Los trabajadores de campo no pueden ver validaciones en absoluto.",[14,370,371,374],{},[36,372,373],{},"Por Tipo de Activo:","\nSeparar equipos de infraestructura (postes/ductos vs. equipo activo):",[23,376,379],{"className":377,"code":378,"language":28},[26],"Rol: \"Equipo Civil\"\nRestricción:\n  Modelo: Punto\n  Campo: categoría\n  Comparación: =\n  Valor de Filtro: \"Equipo Activo\"\n  Permisos: Leer ✓, Editar ✓, Crear ✓, Eliminar ✓\n",[30,380,378],{"__ignoreMap":32},[14,382,383],{},"El equipo civil no puede ver o modificar puntos de equipo activo.",[14,385,386,389],{},[36,387,388],{},"Por Físico/Lógico:","\nSeparar acceso a datos de oficina (relaciones de capacidad vs. ubicaciones de oficina):",[23,391,394],{"className":392,"code":393,"language":28},[26],"Rol: \"Analistas de Capacidad\"\nRestricción:\n  Modelo: Punto\n  Campo: capa\n  Comparación: =\n  Valor de Filtro: \"Ubicaciones de Oficina\"\n  Permisos: Editar ✓, Crear ✓, Eliminar ✓\n",[30,395,393],{"__ignoreMap":32},[14,397,398],{},"Los analistas pueden ver oficinas pero no modificar ubicaciones (solo lectura).",[18,400,402],{"id":401},"combinando-derechos-de-administrador-restricciones-de-rol","Combinando Derechos de Administrador + Restricciones de Rol",[14,404,405,408],{},[36,406,407],{},"Comportamiento Predeterminado:","\nTodos los usuarios pueden ver todo pero no pueden alterar nada (sin derechos de administrador).",[14,410,411],{},[36,412,413],{},"Agregando Acceso de Escritura con Restricciones:",[14,415,416,419],{},[36,417,418],{},"Ejemplo:"," Los trabajadores de campo pueden editar su propio trabajo pero no el de otros",[23,421,424],{"className":422,"code":423,"language":28},[26],"Derechos de Administrador:\n  - reportsCreate: true\n  - reportsUpdate: true\n\nRestricciones de Rol:\n  Modelo: Reporte\n  Campo: reportedBy\n  Comparación: !=\n  Valor de Filtro: [ID de usuario actual]\n  Permisos: Editar ✓\n",[30,425,423],{"__ignoreMap":32},[14,427,428],{},[36,429,335],{},[83,431,432,435,438],{},[43,433,434],{},"Los trabajadores pueden crear reportes (derecho de administrador concedido)",[43,436,437],{},"Los trabajadores pueden editar SOLO sus propios reportes (restricción de rol filtra otros)",[43,439,440],{},"No pueden ver o modificar reportes de otros trabajadores",[18,442,444],{"id":443},"aplicación-del-lado-del-servidor-ssr","Aplicación del Lado del Servidor (SSR)",[14,446,447],{},[36,448,449],{},"Cómo Funciona:",[83,451,452,455,458,461],{},[43,453,454],{},"Todas las consultas API filtradas antes de búsqueda en base de datos",[43,456,457],{},"Restricciones de rol aplicadas del lado del servidor (no solo ocultando UI)",[43,459,460],{},"El usuario no puede bypass vía llamadas API directas, herramientas del navegador o exportaciones",[43,462,463],{},"Los datos realmente no existen para usuarios no autorizados",[14,465,466],{},[36,467,468],{},"Consulta de Ejemplo:",[23,470,473],{"className":471,"code":472,"language":28},[26],"Usuario solicita: GET /api/points\n\nSin restricciones:\n  SELECT * FROM points WHERE deletedAt IS NULL\n\nCon restricción de rol (propietario != \"Contratista B\"):\n  SELECT * FROM points \n  WHERE deletedAt IS NULL \n  AND (propietario IS NULL OR propietario != \"Contratista B\")\n",[30,474,472],{"__ignoreMap":32},[14,476,477],{},[36,478,479],{},"Implicaciones de Seguridad:",[83,481,482,485,488,491],{},[43,483,484],{},"Captura de pantalla de pantalla de alguien más no ayudará (los datos no cargarán para ti)",[43,486,487],{},"No puede exportar datos restringidos (API aplica filtros)",[43,489,490],{},"No puede \"adivinar\" IDs de registro (filtrados antes de búsqueda de ID)",[43,492,493],{},"Incluso si atacante ve ID de registro en tráfico de red, fetch devuelve 404",[18,495,497],{"id":496},"gestionando-roles","Gestionando Roles",[14,499,500],{},[36,501,502],{},"Creando Roles:",[40,504,505,508,511,514,517,520],{},[43,506,507],{},"Navegar a Admin → Roles",[43,509,510],{},"Hacer clic en \"Crear Rol\"",[43,512,513],{},"Ingresar nombre de rol y descripción",[43,515,516],{},"Agregar miembros (arrastrar usuarios al campo miembros)",[43,518,519],{},"Agregar restricciones de rol (puede tener múltiples)",[43,521,522],{},"Guardar",[14,524,525],{},[36,526,527],{},"Editando Roles:",[83,529,530,535,538,541],{},[43,531,532,533],{},"Solo propietario del rol O usuarios con derecho de administrador ",[30,534,232],{},[43,536,537],{},"Puede agregar/remover miembros",[43,539,540],{},"Puede modificar restricciones",[43,542,543],{},"Puede eliminar rol (libera miembros de restricciones)",[14,545,546],{},[36,547,548],{},"Membresía de Rol:",[83,550,551,554,557],{},[43,552,553],{},"Los usuarios pueden estar en múltiples roles (restricciones combinadas)",[43,555,556],{},"Dejando organización: Remover de todos los roles antes de eliminar cuenta",[43,558,559],{},"Membresía masiva: Arrastrar múltiples usuarios a la vez",[18,561,563],{"id":562},"personalizando-autorización-para-nuevos-usuarios","Personalizando Autorización para Nuevos Usuarios",[14,565,566],{},[36,567,568,569,571],{},"Configuración de Configuraciones de App (Requiere ",[30,570,163],{},"):",[40,573,574,577,580,583],{},[43,575,576],{},"Navegar a Configuraciones de App → Autenticación",[43,578,579],{},"\"Roles para Nuevos Usuarios\" - Auto-asignar roles a nuevas cuentas",[43,581,582],{},"\"Derechos de Administrador para Nuevos Usuarios\" - Permisos predeterminados concedidos",[43,584,522],{},[14,586,587],{},[36,588,589],{},"Configuraciones Típicas:",[14,591,592],{},[36,593,594],{},"Predeterminados de Trabajador de Campo:",[23,596,599],{"className":597,"code":598,"language":28},[26],"Roles: [\"Trabajadores de Campo\"]\nDerechos de Administrador: {\n  reportsCreate: true,\n  assignmentsRead: true\n}\n",[30,600,598],{"__ignoreMap":32},[14,602,603],{},[36,604,605],{},"Predeterminados de Coordinador de Oficina:",[23,607,610],{"className":608,"code":609,"language":28},[26],"Roles: []\nDerechos de Administrador: {\n  assignmentsCreate: true,\n  ordersCreate: true,\n  stockItemsView: true\n}\n",[30,611,609],{"__ignoreMap":32},[14,613,614],{},[36,615,616],{},"Sin Auto-Concesión (Revisión Manual):",[23,618,621],{"className":619,"code":620,"language":28},[26],"Roles: []\nDerechos de Administrador: {} (ninguno)\n",[30,622,620],{"__ignoreMap":32},[14,624,625],{},"Los administradores asignan manualmente después de revisión de cuenta.",[18,627,629],{"id":628},"viendo-permisos-efectivos","Viendo Permisos Efectivos",[14,631,632],{},[36,633,634],{},"Para Usuario Específico:",[40,636,637,640,643,646],{},[43,638,639],{},"Navegar al perfil de usuario",[43,641,642],{},"Sección \"Derechos de Administrador\" - Qué PUEDEN hacer",[43,644,645],{},"Sección \"Roles\" - Qué NO PUEDEN ver (vía restricciones)",[43,647,648],{},"Vista combinada muestra permisos efectivos",[14,650,651],{},[36,652,653],{},"Probando Permisos:",[40,655,656,659,662,665],{},[43,657,658],{},"Iniciar sesión como usuario (o impersonar con permiso de admin)",[43,660,661],{},"Navegar normalmente",[43,663,664],{},"Datos restringidos simplemente no aparecen",[43,666,667],{},"Acciones sin derechos de administrador deshabilitadas/ocultas",[18,669,671],{"id":670},"mejores-prácticas","Mejores Prácticas",[14,673,674],{},[36,675,676],{},"Comenzar Restrictivo, Conceder Según Necesidad:",[83,678,679,682,685],{},[43,680,681],{},"Nuevos usuarios obtienen permisos mínimos",[43,683,684],{},"Agregar derechos de administrador según roles requieran",[43,686,687],{},"Más fácil conceder que revocar (evita \"crecimiento de permisos\")",[14,689,690],{},[36,691,692],{},"Usar Roles para Visibilidad de Datos:",[83,694,695,698,701],{},[43,696,697],{},"Separar contratistas (prevenir inteligencia de competencia)",[43,699,700],{},"Separar etapas de trabajo (QC de trabajadores de campo)",[43,702,703],{},"Separar tipos de activo (infraestructura de equipo activo)",[14,705,706],{},[36,707,708],{},"Usar Derechos de Administrador para Capacidades:",[83,710,711,714,717],{},[43,712,713],{},"Quién puede crear asignaciones",[43,715,716],{},"Quién puede modificar inventario",[43,718,719],{},"Quién puede conceder permisos",[14,721,722],{},[36,723,724],{},"Documentar Propósito de Rol:",[83,726,727,730,733],{},[43,728,729],{},"Nombre de rol claro (\"Contratista A\" mejor que \"Rol 1\")",[43,731,732],{},"Descripción explica restricciones",[43,734,735],{},"Ayuda a administradores futuros entender intención",[14,737,738],{},[36,739,740],{},"Auditorías Regulares de Permisos:",[83,742,743,746,749],{},[43,744,745],{},"Revisión trimestral de derechos de administrador de usuario",[43,747,748],{},"Remover derechos no usados (usuario cambió roles)",[43,750,751],{},"Verificar membresías de rol (usuarios dejaron organización)",[14,753,754],{},[36,755,756],{},"Monitorear Intentos de Acceso:",[83,758,759,762,765],{},[43,760,761],{},"Registrar intentos de autorización fallidos",[43,763,764],{},"Patrón de denegaciones = usuario intentando acceso no autorizado",[43,766,767],{},"Investigar y ajustar permisos o educar usuario",[14,769,770],{},[36,771,772],{},"Principio de Menor Privilegio:",[83,774,775,778,781],{},[43,776,777],{},"Conceder permisos mínimos requeridos para función de trabajo",[43,779,780],{},"Acceso elevado temporal para proyectos (remover después)",[43,782,783,784,786],{},"Derechos super (",[30,785,169],{},") solo a administradores confiables",{"title":32,"searchDepth":788,"depth":788,"links":789},2,[790,791,792,798,799,800,801,802,803],{"id":20,"depth":788,"text":21},{"id":72,"depth":788,"text":73},{"id":195,"depth":788,"text":196,"children":793},[794,796,797],{"id":242,"depth":795,"text":243},3,{"id":290,"depth":795,"text":291},{"id":352,"depth":795,"text":353},{"id":401,"depth":788,"text":402},{"id":443,"depth":788,"text":444},{"id":496,"depth":788,"text":497},{"id":562,"depth":788,"text":563},{"id":628,"depth":788,"text":629},{"id":670,"depth":788,"text":671},"Derechos de administrador, restricciones de rol, seguridad a nivel de campo y control de acceso","md",{},true,"/es/user/authorization",{"title":5,"description":804},"es/user/authorization/index","Wvu-ydn6vkkwp7Qi8cEb8PBpz7zt0HVMui4HAWex3CI",1780539280363]