From edd187104c4c7c8dfd48bf6ebc556c1c7c3052a6 Mon Sep 17 00:00:00 2001 From: MuK IT GmbH Date: Sat, 15 Jun 2019 16:28:46 +0000 Subject: [PATCH] publish muk_security - 11.0 --- muk_security/__manifest__.py | 2 +- muk_security/models/res_users.py | 124 ++++++++++++++----------------- muk_security/tools/helper.py | 5 +- 3 files changed, 62 insertions(+), 69 deletions(-) diff --git a/muk_security/__manifest__.py b/muk_security/__manifest__.py index fb9c924..a9772ef 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.4", + "version": "11.0.1.1.5", "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 8f8abb1..22a21b4 100644 --- a/muk_security/models/res_users.py +++ b/muk_security/models/res_users.py @@ -1,67 +1,57 @@ -################################################################################### -# -# Copyright (C) 2017 MuK IT GmbH -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -################################################################################### - -import logging - -from odoo import api, fields, models -from odoo import tools, _ -from odoo.exceptions import ValidationError - -from odoo.addons.base.res import res_users - -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', - column1='uid', - column2='gid', - string='Groups', - readonly=True) - - #---------------------------------------------------------- - # 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, *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) +################################################################################### +# +# Copyright (C) 2017 MuK IT GmbH +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### + +import logging + +from odoo import api, fields, models +from odoo import tools, _ +from odoo.exceptions import ValidationError + +from odoo.addons.base.res import res_users + +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', + column1='uid', + column2='gid', + string='Groups', + readonly=True) + + #---------------------------------------------------------- + # Functions + #---------------------------------------------------------- + + @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) \ No newline at end of file diff --git a/muk_security/tools/helper.py b/muk_security/tools/helper.py index 2c540a3..1a7fe2f 100644 --- a/muk_security/tools/helper.py +++ b/muk_security/tools/helper.py @@ -29,5 +29,8 @@ 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__() + return super(NoSecurityUid, self).__hash__() \ No newline at end of file