summaryrefslogtreecommitdiff
path: root/odoo/addons/base/models/res_users.py
diff options
context:
space:
mode:
authorVictor Feyens <vfe@odoo.com>2020-04-03 14:28:17 +0200
committerVictor Feyens <vfe@odoo.com>2020-04-27 12:00:45 +0200
commit0279cbc4a79162ea837bf14db73e12b38cd0aca9 (patch)
treee26a184fefb35e4a295bd45532efbc258b358b27 /odoo/addons/base/models/res_users.py
parent46d267c758c313c2b039d81d0c5f1d3d4741c171 (diff)
[IMP] base: compute users `share` in batch.
Instead of triggering one has_group by user (one sql query/user if not already ormcached), and potentially filling the `has_group` cache with new users data (we don't know if and when this data will be used anyway), compute this field from the groups information already in cache. X-original-commit: d771d7e9c8503543d29fdbf2ab961c2a32cc3bac
Diffstat (limited to 'odoo/addons/base/models/res_users.py')
-rw-r--r--odoo/addons/base/models/res_users.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/odoo/addons/base/models/res_users.py b/odoo/addons/base/models/res_users.py
index e42376c8ba5..4d34c0a027d 100644
--- a/odoo/addons/base/models/res_users.py
+++ b/odoo/addons/base/models/res_users.py
@@ -357,8 +357,10 @@ class Users(models.Model):
@api.depends('groups_id')
def _compute_share(self):
- for user in self:
- user.share = not user.has_group('base.group_user')
+ user_group_id = self.env['ir.model.data'].xmlid_to_res_id('base.group_user')
+ internal_users = self.filtered_domain([('groups_id', 'in', [user_group_id])])
+ internal_users.share = False
+ (self - internal_users).share = True
def _compute_companies_count(self):
self.companies_count = self.env['res.company'].sudo().search_count([])