Rifakat (OpenERP) has proposed merging
lp:~openerp-dev/openobject-server/6.1-opw-575655-rha into
lp:openobject-server/6.1.
Requested reviews:
Naresh(OpenERP) (nch-openerp)
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-server/6.1-opw-575655-rha/+merge/109792
Hello,
Changed field attribute to readonly when we provide group in read on field
definition.
'test': fields.char('Test', size=64, read=['base.group_sale_salesman'],
write=['base.group_sale_manager']),
This field will be grey out for the user who belongs to above read group.
Currently user is not able to change the value if he has read access, it always
resets but we can face problem
with on_change(), on_chnage event always take value from user interface so it
may raise
problem.
Furthermore, user won't be able to see the field(invisible) if he doesn't
belong to read or write
group.
Thanks for your review.
Regards,
Rifakat Haradwala
--
https://code.launchpad.net/~openerp-dev/openobject-server/6.1-opw-575655-rha/+merge/109792
Your team OpenERP R&D Team is subscribed to branch
lp:~openerp-dev/openobject-server/6.1-opw-575655-rha.
=== modified file 'openerp/osv/orm.py'
--- openerp/osv/orm.py 2012-06-09 01:05:49 +0000
+++ openerp/osv/orm.py 2012-06-12 09:41:21 +0000
@@ -1598,6 +1598,7 @@
result = False
fields = {}
children = True
+ ir_model_access = self.pool.get('ir.model.access')
modifiers = {}
@@ -1610,7 +1611,6 @@
""" Set invisible to true if the user is not in the specified groups. """
if node.get('groups'):
groups = node.get('groups').split(',')
- ir_model_access = self.pool.get('ir.model.access')
can_see = any(ir_model_access.check_groups(cr, user, group) for group in groups)
if not can_see:
node.set('invisible', '1')
@@ -1649,6 +1649,17 @@
column = False
if column:
+ can_write = False
+ if column.read:
+ if column.write:
+ can_write = any(ir_model_access.check_groups(cr, user, group) for group in column.write)
+ can_see = any(ir_model_access.check_groups(cr, user, group) for group in column.read)
+ if can_see and not can_write:
+ node.set('readonly', '1')
+ modifiers['readonly'] = True
+ if not (can_see and can_write):
+ node.set('invisible', '1')
+ modifiers['invisible'] = True
relation = self.pool.get(column._obj)
children = False
_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help : https://help.launchpad.net/ListHelp