Capacidad de poder insertar, copiar, modifica o borrar
Define que usuarios, organizaciones, plataformas y privilegios tiene permisos para poder crear, editar, ver, copiar y eliminar.
Estas configuración requiere dentro de security los siguientes atributos de datos
- allow_insert: indica si el usuario puede crear un nuevo registro,
- allow_display: permite al usuario un registro o entidad
- allow_update: determina si el usuario puede actualizar el registro
- allow_delete: directriz que indica si un usuario puede eliminar la información de un registro o entidad.
- allow_copy: determina si el usuario puede duplicar la información.
Para cada atributo de datos podemos aplicar internamente atributos de acceso:
- user_privileges: array que contiene los privilegios de usuarios que pueden aplicar la directriz.
- user_groups: idem anterior pero enfocados en los grupos.
- user_organizations: Organización/es que pertenece el usuario.
- user_namespaces: Plataforma a la que pertenece el usuario.
- field_values: Array de campos que se pueden actualizar, el valor * significa que son todos.
allow_insert: define quién o en qué situaciones se permiter insertar información
{"security":
{
"allow_insert": {
"user_privileges":["crm-admin"]
}
}
}
En este ejemplo sólo los usuarios con privilegio "crm-admin" podrían insertar nueva información.
allow_update: define quién o en qué situaciones se puede actualizar información
{"security":
{
"allow_update": {
"user_privileges":["crm-admin"],
"user_groups":["group1"]
}
}
}
En este ejemplo sólo los usuarios con privilegio "crm-admin" o con grupo "group1" podrían actualizar nueva información.
allow_display: define quién o en qué situaciones se puede visualizar información
Existen circunstancias donde sólo queremos que el usuario sólo pueda acceder a un listado de elementos.
{"security":
{
"allow_display": {
"user_privileges":["crm-admin"],
"user_groups":["group1"],
"user_organizations":["org1"],
}
}
}
En este ejemplo sólo los usuarios con privilegio "crm-admin" o con grupo "group1" o con la organización "org1" podrían visualizar nueva información.
allow_delete: define quién o en qué situaciones puede borrar información
{"security":
{
"allow_delete": {
"user_namespaces":["cloudframework"]
}
}
}
En este ejemplo sólo los usuarios de la plataforma "cloudframework" podrían borrar información.
La propiedad field_values
Esta es un propiedad especial que permite decidir si un CFO se puede vistualizar, modificar, borrar o copiar (duplicar) dependiendo del valor de uno más variables del modelo de datos del CFO.
Por ejemplo en el caso de un CFO para la gestión de tickets por parte de clientes, deseamos que el campo llamado 'Status' si su valor igual a 'closed' dicho registro no pueda ser borrado.
Esta propiedad tiene el formato {"field_values":{"field1":["{operator}","value or values"],"field2":[],..} donde {operator}
La estructura JSON de la siguiente manera:
{"security":
"<allow_xxxx>": {
"field_values": {
"<field-name1>":["<operator>",<value,[values]>],
..
}
}
}
El CFO permitirá que se ejecute una propiedad "allow_xxx" sí, sólo si, el campo o todos los campos bajo "field_values" cumple la condición del <operator>
Operador | Descripción | Ejemplo |
---|---|---|
equals | Verdadero si el valor es igual <value> | {"amount":["equals",5]} |
not_equals | Verdadero si el valor n es diferente a <value> | {"status":["not_equals","closed"]} |
in | Verdadero si el valor está dentro del array [values] | {"status":["in",["open",closed"]]} |
not_in | Verdadero si el valor no está dentro del array [values] | {"status":["not_in",["open",closed"]]} |
empty | Verdadero si el valor es vacío o null | {"conciliated_amount":["is_empty"]} |
not_empty | Verdadero si el valor no es vacío o null | {"conciliated_amount":["is_not_empty"]} |
zero_or_empty | Verdadero si el valor es 0 o está vacío o null | {"conciliated_amount":["is_zero_or_empty"]} |
not_zero_nor_empty | Verdadero si el valor no es 0 y no está vacío o null | {"conciliated_amount":["is_not_zero_nor_empty"]} |
greater_than | Verdadero su el valor es > que <value> | {"amount":["greater_than",5]} |
greater_or_equals_than | Verdadero su el valor es >= que <value> | {"amount":["greater_or_equals_than",5]} |
less_than | Verdadero su el valor es < que <value> | {"amount":["less_than",5]} |
less_or_equals_than | Verdadero su el valor es <= que <value> | {"amount":["less_or_equals_than",5]} |