Protege la IU

Como parte de la seguridad de la app, puedes proteger páginas y elementos de la IU: widgets o partes de widgets. La seguridad para la IU determina si un usuario puede ver algo (o escucharlo con un lector de pantalla).

¿Cómo puedo proteger la IU de mi app?

Con App Maker, puedes usar uno de estos métodos o ambos para proteger la IU de la app:

  • Protege las páginas: Usa la seguridad de páginas para controlar cuáles son las páginas que pueden ver los usuarios. En el Editor de propiedades edit, en Seguridad (Security), aplica permisos de acceso a Funciones (Roles) o Secuencia de comandos (Script) en cada página.
  • Protege los elementos de la IU: Usa la propiedad visible para controlar qué elementos de una página pueden ver los usuarios. La propiedad de visibilidad está disponible para los widgets y para partes de widgets compuestos. En el Editor de propiedades edit, en Mostrar (Display), define una expresión de vínculo para el elemento de la IU que se resuelve en true (visible) o en false (invisible).

Protege las páginas

Configura la seguridad de página para controlar qué usuarios pueden acceder a qué páginas de la app.

¿Por qué proteger las páginas?

  • Restringir el acceso a información estática sensible: En algunos casos, las páginas muestran información estática que solo usuarios específicos pueden ver. Por ejemplo, una página puede mostrar una receta secreta de comida de perros.
  • Restringir el uso de las páginas a quienes las necesitan: Si grupos de usuarios específicos tienen trabajos diferentes, entonces restringir las páginas a los grupos de usuarios que usan las páginas tiene sentido. Puede ser que no existan razones para otorgarle a no administradores acceso a páginas que usan los administradores.
  • Proteger páginas tiene beneficios de rendimiento: Controlar si los usuarios pueden acceder a las páginas tiene beneficios de rendimiento. Si App Maker no tiene que recuperar páginas innecesarias y datos relacionados para un usuario que no debería tener acceso a las páginas y los datos de todos modos, eso genera que haya menos datos viajando de un lado a otro.

Configura permisos de acceso para una página

La seguridad de páginas usa permisos de acceso. Los Permisos de acceso que están disponibles para las páginas son Solo administradores, Todos, Funciones y Secuencia de comandos.

  1. Abre App Maker.
  2. En la barra lateral izquierda, haz clic en la página en la que quieres configurar los permisos.
  3. En Editor de propiedades edit, en Seguridad, selecciona el permiso de acceso para la página de la lista.

¿Cómo controla App Maker el acceso a la página?

  • Recuperación: App Maker usa los permisos de página a fin de decidir si recuperar una página específica para un usuario. Si un usuario no debería tener acceso a la página, App Maker no la recupera. Como una app de App Maker es una app web, App Maker no reconoce que la página existe. Responde con un error La página no se ha encontrado (HTTP 404). App Maker no enumera la página en los menús. También puedes diseñar la navegación en tu app a fin de omitir vínculos a la página para usuarios que no deberían tener acceso a ella.
  • Visualización: Si no se recuperó una página, el usuario no la puede ver ni leer con un lector de páginas.
  • DOM: Una página que App Maker no recupera para un usuario no está en el DOM.

Consulta las páginas

Las consultas a las páginas tienen aspectos importantes:

  • Consultas a las páginas en una app: En un menú, cuando consultas las páginas en una app (por ejemplo, con una expresión de vínculo @pages o con una consulta en una secuencia de comandos en app.pages), App Maker solo enumera las páginas a las que el usuario debe tener acceso.
  • Vínculos a una página: Puedes controlar la visibilidad de los elementos de la IU que vincula las páginas (por ejemplo, vínculos).
  • URL de una página: Un usuario puede obtener la URL de una página a la que un usuario no tiene acceso desde un usuario diferente. O un usuario puede a agregar una URL a favoritos y, luego, perder el acceso a esa parte de la app.
  • Consultas a la página en el DOM: Debido a que las páginas en la app pueden consultar otras páginas (por ejemplo, mediante vínculos), un usuario inteligente podría encontrar referencias en el DOM a una página a la que el usuario no tiene acceso.

Controla la visibilidad de los elementos de la IU

Puedes usar la propiedad visible a fin de controlar si los elementos de la IU (widgets o partes de widgets) en una página son visibles para usuarios específicos. Las razones para controlar la visibilidad incluyen lo siguiente:

  • Relevancia: Si algunos de los controles de navegación o contenido no son relevantes en una situación específica o para un usuario específico, no los uses en una página. Por ejemplo, un vínculo para editar un registro solo tiene sentido si el registro existe. Si el registro no existe, puedes ocultar el vínculo. La visibilidad también puede estar basada en datos.
  • Seguridad: Si un usuario no debería poder usar un elemento de la IU específico, puedes ocultar el elemento para ese usuario.

Escribe una expresión de vínculo que se evalúe como booleana

Por seguridad, escribe una expresión de vínculo para la propiedad visible de un elemento de la IU que invoque una medida de seguridad y que se evalúe como un resultado booleano true o false. Puedes tener en cuenta estos enfoques:

  • En la expresión de vínculo, haz referencia a las funciones para las que los miembros de las funciones deben tener acceso. Este ejemplo les otorga acceso a los miembros del grupo administradores:

    (@user.roles).indexOf('Managers') > -1

  • Llama a un método en una secuencia de comandos de cliente que llame a un método en una secuencia de comandos del servidor. Usa el método en la secuencia de comandos del servidor para hacer que la determinación de la visibilidad se base en un criterio; por ejemplo, según la membresía de función o datos. El método del servidor puede mostrar true o false al método del cliente, que puede mostrar el valor.

Usa conversiones de tipo automáticas

App Maker necesita un resultado booleano para la propiedad visible. Si una expresión de vínculo muestra true o false, App Maker usa el valor proporcionado.

Una expresión de vínculo para la propiedad visible puede vincularse a un campo de tipo Número o String, o puede llamar a una función que muestre un número o una string. En estos casos, App Maker realiza una conversión de tipo, en la que convierte el número o la string en un valor booleano. No puedes vincular a un campo de tipo Fecha. Si una función muestra una fecha, esta se controla como una string.

Las conversiones que se realizan son las mismas que si usas los transformadores de vínculos numToBool() y strToBool() (puedes usar los transformadores de vínculos, aunque no es necesario).

Las conversiones de tipo automáticas para números y aquellas realizadas por numToBool() coinciden con las conversiones de tipo JavaScript. Las conversiones de tipo para casos especiales (sin definir, nulo y NaN) también coinciden con las conversiones de tipo JavaScript (todas se convierten en false).

Pero las conversiones de tipo realizadas por strings y por strToBool() no coinciden con las conversiones de tipo JavaScript.

Aquí encontrarás la información que necesitas:

Tipo de campo True (Visible) False (Invisible)
Booleano

(coincide con JavaScript)
Valor: la casilla está marcada
true
Valor: la casilla no está marcada
false
Número

(coincide con JavaScript)
1, 1.0
Todos los otros valores no enumerados en False; por ejemplo, 2, 208.1, -7, Infinity, Infinity
0, -0, 0.0, -0.0
String

(no coincide con JavaScript)
"true", "True", "TRUE"... (mayúsculas o minúsculas) "false", "False", "FALSE"… (mayúsculas o minúsculas)
Todos los otros valores no enumerados en True; por ejemplo, “empleado” o “administrador”

Controla la visibilidad en las jerarquías de widgets

Los widgets suelen ser jerárquicos. Un formulario tiene un título, cuadros de texto para ingresar o elegir datos, etcétera. Puedes controlar la visibilidad del widget completo o de partes del widget o ambas.

En una jerarquía, un valor false de una propiedad visible hace que ese elemento de la IU y todos los elementos de la IU inferiores en la jerarquía sean invisibles.