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

Responder a