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]}


Cesta de compras