Desarrollo modulos Odoo: seguridad básica¶
Ficheros de datos CSV¶
La adaptación de Odoo se consigue con la codificación en Python pero también se hace a través de los datos. Por ejemplo, las regiones en el fichero country states que es cargado por el módulo base : Se utilia el formato CSV para la carga de datos.
"id","country_id:id","name","code"
state_au_1,au,"Australian Capital Territory","ACT"
state_au_2,au,"New South Wales","NSW"
state_au_3,au,"Northern Territory","NT"
state_au_4,au,"Queensland","QLD"
- id identificador en el registro
- country_id: identificador del país (externo-foreign)
- name nombre de la región (state)
- code codigo de la región
Los tres campos están definidos en el modelo res.country.state
Los datos para importar se guardan, por convenio, en el directorio:
* en general en el directorio data
* Los de seguridad en el direcotrio security
* Los relacionados con vistas en el directorio views
En todos los casos en el fichero __manifest__.py
en la lista data
.
Para el ejemplo anterior de las regiones ver
Derechos de acceso (Access Right)¶
Por defecto si no se especifican derechos de acceso, odoo no permite ningún acceso.
Los derechos de acceso son registros del model ir.model.access
(recordad: es una tabla en la BD). Cada derecho de acceso esta asociado a un modelo o grupo y un conjunto de permisos de tipo: crear, leer,escribir, 'unlink' que normalmente se definen en un CSV con nombre ir.model.access.csv
Ejemplo para test.model
tendriamos:
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
access_test_model,access_test_model,model_test_model,base.group_user,1,0,0,0
* id es un identificado * name nombre del ir.model.access. * model_id/id refers to the model which the access right applies to. The standard way to refer to the model is
model_<model_name>
, where <model_name>
is the _name of the model with the . replaced by _. Seems cumbersome? Indeed it is…
* group_id/id refers to the group which the access right applies to. We will cover the concept of groups in the advanced topic dedicated to the security.
* perm_read,perm_write,perm_create,perm_unlink: read, write, create and unlink permissions