Browse Source
Merge pull request #457 from acsone/9.0-auth_from_http_remote_user-migration-lmi
Merge pull request #457 from acsone/9.0-auth_from_http_remote_user-migration-lmi
[9.0][MIG] auth_from_http_remote_userpull/592/head
Pedro M. Baeza
8 years ago
committed by
GitHub
16 changed files with 113 additions and 244 deletions
-
43auth_from_http_remote_user/README.rst
-
24auth_from_http_remote_user/__init__.py
-
33auth_from_http_remote_user/__openerp__.py
-
21auth_from_http_remote_user/controllers/__init__.py
-
30auth_from_http_remote_user/controllers/main.py
-
27auth_from_http_remote_user/model.py
-
6auth_from_http_remote_user/models/__init__.py
-
10auth_from_http_remote_user/models/auth_from_http_remote_user.py
-
24auth_from_http_remote_user/models/res_users.py
-
65auth_from_http_remote_user/res_users.py
-
21auth_from_http_remote_user/tests/__init__.py
-
23auth_from_http_remote_user/tests/test_res_users.py
-
22auth_from_http_remote_user/utils.py
-
1setup/auth_from_http_remote_user/odoo_addons/__init__.py
-
1setup/auth_from_http_remote_user/odoo_addons/auth_from_http_remote_user
-
6setup/auth_from_http_remote_user/setup.py
@ -1,24 +1,6 @@ |
|||||
# -*- coding: utf-8 -*- |
# -*- coding: utf-8 -*- |
||||
############################################################################## |
|
||||
# |
|
||||
# Author: Laurent Mignon |
|
||||
# Copyright 2014 'ACSONE SA/NV' |
|
||||
# |
|
||||
# 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 <http://www.gnu.org/licenses/>. |
|
||||
# |
|
||||
############################################################################## |
|
||||
|
# Copyright 2014 ACSONE SA/NV (<http://acsone.eu>) |
||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
||||
|
|
||||
from . import controllers |
from . import controllers |
||||
from . import res_users |
|
||||
from . import model |
|
||||
|
from . import models |
@ -1,37 +1,14 @@ |
|||||
# -*- coding: utf-8 -*- |
# -*- coding: utf-8 -*- |
||||
############################################################################## |
|
||||
# |
|
||||
# Author: Laurent Mignon |
|
||||
# Copyright 2014 'ACSONE SA/NV' |
|
||||
# |
|
||||
# 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 <http://www.gnu.org/licenses/>. |
|
||||
# |
|
||||
############################################################################## |
|
||||
|
# Copyright 2014 ACSONE SA/NV (<http://acsone.eu>) |
||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
||||
{ |
{ |
||||
'name': 'Authenticate via HTTP Remote User', |
'name': 'Authenticate via HTTP Remote User', |
||||
'version': '8.0.1.0.0', |
|
||||
|
'version': '9.0.1.0.0', |
||||
'category': 'Tools', |
'category': 'Tools', |
||||
'author': "Acsone SA/NV,Odoo Community Association (OCA)", |
'author': "Acsone SA/NV,Odoo Community Association (OCA)", |
||||
'maintainer': 'ACSONE SA/NV', |
'maintainer': 'ACSONE SA/NV', |
||||
'website': 'http://www.acsone.eu', |
'website': 'http://www.acsone.eu', |
||||
'depends': ['base', 'web', 'base_setup'], |
|
||||
|
'depends': ['web', 'base_setup'], |
||||
"license": "AGPL-3", |
"license": "AGPL-3", |
||||
'data': [], |
|
||||
"demo": [], |
|
||||
"test": [], |
|
||||
"active": False, |
|
||||
'installable': False, |
|
||||
"auto_install": False, |
|
||||
"application": False, |
|
||||
|
'installable': True, |
||||
} |
} |
@ -1,22 +1,5 @@ |
|||||
# -*- coding: utf-8 -*- |
# -*- coding: utf-8 -*- |
||||
############################################################################## |
|
||||
# |
|
||||
# Author: Laurent Mignon |
|
||||
# Copyright 2014 'ACSONE SA/NV' |
|
||||
# |
|
||||
# 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 <http://www.gnu.org/licenses/>. |
|
||||
# |
|
||||
############################################################################## |
|
||||
|
# Copyright 2014 ACSONE SA/NV (<http://acsone.eu>) |
||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
||||
|
|
||||
from . import main |
from . import main |
@ -1,27 +0,0 @@ |
|||||
# -*- coding: utf-8 -*- |
|
||||
############################################################################## |
|
||||
# |
|
||||
# Author: Laurent Mignon |
|
||||
# Copyright 2014 'ACSONE SA/NV' |
|
||||
# |
|
||||
# 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 <http://www.gnu.org/licenses/>. |
|
||||
# |
|
||||
############################################################################## |
|
||||
from openerp.osv import orm |
|
||||
|
|
||||
|
|
||||
class AuthFromHttpRemoteUserInstalled(orm.AbstractModel): |
|
||||
"""An abstract model used to safely know if the module is installed |
|
||||
""" |
|
||||
_name = 'auth_from_http_remote_user.installed' |
|
@ -0,0 +1,6 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Copyright 2014 ACSONE SA/NV (<http://acsone.eu>) |
||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
||||
|
|
||||
|
from . import res_users |
||||
|
from . import auth_from_http_remote_user |
@ -0,0 +1,10 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Copyright 2014 ACSONE SA/NV (<http://acsone.eu>) |
||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
||||
|
from openerp import models |
||||
|
|
||||
|
|
||||
|
class AuthFromHttpRemoteUserInstalled(models.AbstractModel): |
||||
|
"""An abstract model used to safely know if the module is installed |
||||
|
""" |
||||
|
_name = 'auth_from_http_remote_user.installed' |
@ -0,0 +1,24 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Copyright 2014 ACSONE SA/NV (<http://acsone.eu>) |
||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
||||
|
|
||||
|
from openerp import api, fields, models |
||||
|
import openerp.exceptions |
||||
|
from openerp.addons.auth_from_http_remote_user import utils |
||||
|
|
||||
|
|
||||
|
class ResUsers(models.Model): |
||||
|
_inherit = 'res.users' |
||||
|
|
||||
|
sso_key = fields.Char( |
||||
|
'SSO Key', size=utils.KEY_LENGTH, readonly=True, copy=False) |
||||
|
|
||||
|
@api.model |
||||
|
def check_credentials(self, password): |
||||
|
try: |
||||
|
return super(ResUsers, self).check_credentials(password) |
||||
|
except openerp.exceptions.AccessDenied: |
||||
|
res = self.sudo().search([('id', '=', self.env.uid), |
||||
|
('sso_key', '=', password)]) |
||||
|
if not res: |
||||
|
raise |
@ -1,65 +0,0 @@ |
|||||
# -*- coding: utf-8 -*- |
|
||||
############################################################################## |
|
||||
# |
|
||||
# Author: Laurent Mignon |
|
||||
# Copyright 2014 'ACSONE SA/NV' |
|
||||
# |
|
||||
# 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 <http://www.gnu.org/licenses/>. |
|
||||
# |
|
||||
############################################################################## |
|
||||
|
|
||||
from openerp.modules.registry import RegistryManager |
|
||||
from openerp.osv import orm, fields |
|
||||
from openerp import SUPERUSER_ID |
|
||||
import openerp.exceptions |
|
||||
from openerp.addons.auth_from_http_remote_user import utils |
|
||||
|
|
||||
|
|
||||
class res_users(orm.Model): |
|
||||
_inherit = 'res.users' |
|
||||
|
|
||||
_columns = { |
|
||||
'sso_key': fields.char('SSO Key', size=utils.KEY_LENGTH, |
|
||||
readonly=True), |
|
||||
} |
|
||||
|
|
||||
def copy(self, cr, uid, rid, defaults=None, context=None): |
|
||||
defaults = defaults or {} |
|
||||
defaults['sso_key'] = False |
|
||||
return super(res_users, self).copy(cr, uid, rid, defaults, context) |
|
||||
|
|
||||
def check_credentials(self, cr, uid, password): |
|
||||
try: |
|
||||
return super(res_users, self).check_credentials(cr, uid, password) |
|
||||
except openerp.exceptions.AccessDenied: |
|
||||
res = self.search(cr, SUPERUSER_ID, [('id', '=', uid), |
|
||||
('sso_key', '=', password)]) |
|
||||
if not res: |
|
||||
raise openerp.exceptions.AccessDenied() |
|
||||
|
|
||||
def check(self, db, uid, passwd): |
|
||||
try: |
|
||||
return super(res_users, self).check(db, uid, passwd) |
|
||||
except openerp.exceptions.AccessDenied: |
|
||||
if not passwd: |
|
||||
raise |
|
||||
with RegistryManager.get(db).cursor() as cr: |
|
||||
cr.execute('''SELECT COUNT(1) |
|
||||
FROM res_users |
|
||||
WHERE id=%s |
|
||||
AND sso_key=%s |
|
||||
AND active=%s''', (int(uid), passwd, True)) |
|
||||
if not cr.fetchone()[0]: |
|
||||
raise |
|
||||
self._uid_cache.setdefault(db, {})[uid] = passwd |
|
@ -1,22 +1,5 @@ |
|||||
# -*- coding: utf-8 -*- |
# -*- coding: utf-8 -*- |
||||
############################################################################## |
|
||||
# |
|
||||
# Author: Laurent Mignon |
|
||||
# Copyright 2014 'ACSONE SA/NV' |
|
||||
# |
|
||||
# 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 <http://www.gnu.org/licenses/>. |
|
||||
# |
|
||||
############################################################################## |
|
||||
|
# Copyright 2014 ACSONE SA/NV (<http://acsone.eu>) |
||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
||||
|
|
||||
from . import test_res_users |
from . import test_res_users |
@ -1,22 +1,4 @@ |
|||||
# -*- coding: utf-8 -*- |
# -*- coding: utf-8 -*- |
||||
############################################################################## |
|
||||
# |
|
||||
# Author: Laurent Mignon |
|
||||
# Copyright 2014 'ACSONE SA/NV' |
|
||||
# |
|
||||
# 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 <http://www.gnu.org/licenses/>. |
|
||||
# |
|
||||
############################################################################## |
|
||||
|
|
||||
|
# Copyright 2014 ACSONE SA/NV (<http://acsone.eu>) |
||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
||||
KEY_LENGTH = 16 |
KEY_LENGTH = 16 |
@ -0,0 +1 @@ |
|||||
|
__import__('pkg_resources').declare_namespace(__name__) |
@ -0,0 +1 @@ |
|||||
|
../../../auth_from_http_remote_user |
@ -0,0 +1,6 @@ |
|||||
|
import setuptools |
||||
|
|
||||
|
setuptools.setup( |
||||
|
setup_requires=['setuptools-odoo'], |
||||
|
odoo_addon=True, |
||||
|
) |
Write
Preview
Loading…
Cancel
Save
Reference in new issue