El 02/10/17 a les 17:08, Josias Pérez ha escrit:
Hola,
Quisiera saber si es posible tener dominios personalizados para este
caso. Tengo las siguiente tablas.
class Distrito(ModelView, ModelSQL):
'Distrito'
__name__ = 'disc.distrito'
name = fields.Char('Distrito')
user = fields.Many2One('res.user','Encargado')
class Departamento(ModelView, ModelSQL):
'Departamento'
__name__ = 'disc.departamento'
name = fields.Char('Departamento')
distrito = fields.Many2One('disc.distrito','Distrito',
domain=mi_dominio)
Y también los siguientes tipos de usuario:
Usuario tipo A: Administrador general
Usuario tipo B: Supervisor
El tipo A tiene acceso a todos los distritos pero el tipo B únicamente a
sus distritos, no a todos. Cómo tendría que ser la función 'mi_dominio'
que evalúe los grupos y/o si a cada usuario le pertenece determinado
departamento retornar determinado dominio?
En este caso puedes hacer dos cosas:
1. Aplicar la restricción en todos los accessos al modelo. En este caso
debes crear una regal de acceso para tu modelo (ir.access.rule) que solo
se aplique si el usuario es de un grupo.
2. Aplicar la restricción solo para la relación. En este caso debes
utilizar un dominio. El dominio debe ser algo asi como:
If(In(Id('tu_modulo', 'id_grupo'), Eval('context', {}).get('users')),
(), # dominio vacio para no aplicar ninguna regla.
(('user', '=', Eval('context', {}).get('user', -1)),
)
Espero que te ayude.
Un saludo,
--
Sergi Almacellas Abellana
www.koolpi.com
Twitter: @pokoli_srk