From ccd5aebf211592a5fd8d7875933b55bf0c5c44ab Mon Sep 17 00:00:00 2001 From: MuK IT GmbH Date: Thu, 4 Jul 2019 18:24:30 +0000 Subject: [PATCH] publish muk_security - 11.0 --- muk_security/__manifest__.py | 2 +- muk_security/models/res_users.py | 26 ++++++++++++++++++-------- muk_security/tools/helper.py | 3 --- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/muk_security/__manifest__.py b/muk_security/__manifest__.py index b2f9637..c2c9345 100644 --- a/muk_security/__manifest__.py +++ b/muk_security/__manifest__.py @@ -20,7 +20,7 @@ { "name": "MuK Security", "summary": """Security Features""", - "version": "11.0.1.1.6", + "version": "11.0.1.1.7", "category": "Extra Tools", "license": "AGPL-3", "website": "http://www.mukit.at", diff --git a/muk_security/models/res_users.py b/muk_security/models/res_users.py index b15af4b..084d0dd 100644 --- a/muk_security/models/res_users.py +++ b/muk_security/models/res_users.py @@ -30,13 +30,13 @@ from odoo.addons.muk_security.tools import helper _logger = logging.getLogger(__name__) class AccessUser(models.Model): - + _inherit = 'res.users' #---------------------------------------------------------- # Database #---------------------------------------------------------- - + security_groups = fields.Many2many( comodel_name='muk_security.groups', relation='muk_security_groups_explicit_users_rel', @@ -48,10 +48,20 @@ class AccessUser(models.Model): #---------------------------------------------------------- # Functions #---------------------------------------------------------- - + + def browse(self, *args, **kwargs): + if len(args) and isinstance(args[0], helper.NoSecurityUid): + args = list(args) + args[0] = super(helper.NoSecurityUid, args[0]).__int__() + args = tuple(args) + return super(AccessUser, self).browse(*args, **kwargs) + + @classmethod - def _browse(cls, ids, env, prefetch=None, add_prefetch=True): - return super(AccessUser, cls)._browse([ - id if not isinstance(id, helper.NoSecurityUid) - else super(helper.NoSecurityUid, id).__int__() - for id in ids], env, prefetch=prefetch) + def _browse(cls, ids, *args, **kwargs): + def convert_security_uid(id): + if isinstance(id, helper.NoSecurityUid): + return super(helper.NoSecurityUid, id).__int__() + return id + access_ids = [convert_security_uid(id) for id in ids] + return super(AccessUser, cls)._browse(access_ids, *args, **kwargs) \ No newline at end of file diff --git a/muk_security/tools/helper.py b/muk_security/tools/helper.py index dc3e3b7..ff20f04 100644 --- a/muk_security/tools/helper.py +++ b/muk_security/tools/helper.py @@ -29,8 +29,5 @@ class NoSecurityUid(int): return False return super(NoSecurityUid, self).__int__() == other - def __iter__(self): - yield super(NoSecurityUid, self).__int__() - def __hash__(self): return super(NoSecurityUid, self).__hash__() \ No newline at end of file