[FIX] res_users: side-effect of virtual groups prevented users from saving their...
authorOlivier Dony <odo@openerp.com>
Thu, 15 Dec 2011 12:07:41 +0000 (13:07 +0100)
committerOlivier Dony <odo@openerp.com>
Thu, 15 Dec 2011 12:07:41 +0000 (13:07 +0100)
lp bug: https://launchpad.net/bugs/904626 fixed

bzr revid: odo@openerp.com-20111215120741-1lne9fjs67d7c42k

openerp/addons/base/res/res_users.py

index 3a159d1..10a6565 100644 (file)
@@ -828,8 +828,11 @@ class users_view(osv.osv):
                 selected = values.pop(f)
                 if selected:
                     add.append(selected)
-        # remove groups in 'remove' and add groups in 'add'
-        values['groups_id'] = [(3, id) for id in remove] + [(4, id) for id in add]
+        # update values *only* if groups are being modified, otherwise
+        # we introduce spurious changes that might break the super.write() call.
+        if add or remove:
+            # remove groups in 'remove' and add groups in 'add'
+            values['groups_id'] = [(3, id) for id in remove] + [(4, id) for id in add]
 
     def default_get(self, cr, uid, fields, context=None):
         group_fields, fields = partition(is_reified_group, fields)