Hoy en día, puede beneficiarse de una poderosa funcionalidad para filtrar el acceso a los datos, que es esencial para evitar el acceso malicioso a su aplicación.
Esta funcionalidad utiliza privilegios que permiten determinadas acciones sobre sus datos. Estos privilegios son asignados a los usuarios a través de roles y almacenados en la sesión durante la autenticación.
En 4D 20R6, mejoramos esta funcionalidad permitiéndole inspeccionar los privilegios en la sesión, lo cual es muy útil para la depuración.
Siga leyendo para saber más.
a Nueva función getPrivileges() En el objeto Session
Veamos un ejemplo.
En el archivo roles.json, tenemos el privilegio medium que contiene el privilegio simple. El rol Medium contiene el privilegio medium.
{
"privileges": [
{
"privilege": "simple",
"includes": []
},
{
"privilege": "medium",
"includes": [
"simple"
]
}
],
"roles": [
{
"role": "Medium",
"privileges": [
"medium"
]
}
],
"permissions": {
"allowed": [] // Set up the allowed actions here
}
}
En la clase Datastore, hay una función authentify() que asigna todos los privilegios del rol dado al objeto Session.
exposed Function authentify($role : Text) : Text
Session.clearPrivileges()
Session.setPrivileges({roles: $role})
return "Authentication done with "+$role
En la clase Datastore, también se ha implementado una función getPrivileges(). Devuelve los privilegios en Session.
exposed Function getPrivileges() : Collection
return Session.getPrivileges()
Si se llama a la función authentify() con el rol Medium, devuelve la función getPrivileges():
[
"simple",
"medium"
]
Nueva API RESt /$info/privilegEs
También hay una nueva API REST para obtener los privilegios en la sesión. La llamada a /$info/privileges en el ejemplo anterior también devuelve:
{
"privileges": [
{
"privilege": "simple"
},
{
"privilege": "medium"
}
]
}
Esto facilita la depuración. Consulte la documentación para obtener más información.