From a7d276727f84c543f70ee83b459cd71f932963fd Mon Sep 17 00:00:00 2001 From: Kinjal Mehta Date: Wed, 2 Sep 2015 16:17:20 +0530 Subject: [PATCH] [SPLIT] auth_ldap: split files according to new API. --- addons/auth_ldap/models/__init__.py | 4 +- addons/auth_ldap/models/res_company.py | 11 ++++ .../{users_ldap.py => res_company_ldap.py} | 50 ------------------- addons/auth_ldap/models/res_users.py | 45 +++++++++++++++++ 4 files changed, 59 insertions(+), 51 deletions(-) create mode 100644 addons/auth_ldap/models/res_company.py rename addons/auth_ldap/models/{users_ldap.py => res_company_ldap.py} (82%) create mode 100644 addons/auth_ldap/models/res_users.py diff --git a/addons/auth_ldap/models/__init__.py b/addons/auth_ldap/models/__init__.py index 424954595f5..ddc234b54b1 100644 --- a/addons/auth_ldap/models/__init__.py +++ b/addons/auth_ldap/models/__init__.py @@ -1,3 +1,5 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. -import users_ldap +import res_company +import res_company_ldap +import res_users diff --git a/addons/auth_ldap/models/res_company.py b/addons/auth_ldap/models/res_company.py new file mode 100644 index 00000000000..574e8eca189 --- /dev/null +++ b/addons/auth_ldap/models/res_company.py @@ -0,0 +1,11 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +import ldap +from openerp.osv import fields, osv + +class res_company(osv.osv): + _inherit = "res.company" + _columns = { + 'ldaps': fields.one2many( + 'res.company.ldap', 'company', 'LDAP Parameters', copy=True, groups="base.group_system"), + } \ No newline at end of file diff --git a/addons/auth_ldap/models/users_ldap.py b/addons/auth_ldap/models/res_company_ldap.py similarity index 82% rename from addons/auth_ldap/models/users_ldap.py rename to addons/auth_ldap/models/res_company_ldap.py index c9de7c5f15f..d4a147efe82 100644 --- a/addons/auth_ldap/models/users_ldap.py +++ b/addons/auth_ldap/models/res_company_ldap.py @@ -4,11 +4,9 @@ import ldap import logging from ldap.filter import filter_format -import openerp.exceptions from openerp import tools from openerp.osv import fields, osv from openerp import SUPERUSER_ID -from openerp.modules.registry import RegistryManager _logger = logging.getLogger(__name__) class CompanyLDAP(osv.osv): @@ -217,51 +215,3 @@ class CompanyLDAP(osv.osv): 'sequence': 10, 'create_user': True, } - - - -class res_company(osv.osv): - _inherit = "res.company" - _columns = { - 'ldaps': fields.one2many( - 'res.company.ldap', 'company', 'LDAP Parameters', copy=True, groups="base.group_system"), - } - - -class users(osv.osv): - _inherit = "res.users" - def _login(self, db, login, password): - user_id = super(users, self)._login(db, login, password) - if user_id: - return user_id - registry = RegistryManager.get(db) - with registry.cursor() as cr: - cr.execute("SELECT id FROM res_users WHERE lower(login)=%s", (login,)) - res = cr.fetchone() - if res: - return False - ldap_obj = registry.get('res.company.ldap') - for conf in ldap_obj.get_ldap_dicts(cr): - entry = ldap_obj.authenticate(conf, login, password) - if entry: - user_id = ldap_obj.get_or_create_user( - cr, SUPERUSER_ID, conf, login, entry) - if user_id: - break - return user_id - - def check_credentials(self, cr, uid, password): - try: - super(users, self).check_credentials(cr, uid, password) - except openerp.exceptions.AccessDenied: - - cr.execute('SELECT login FROM res_users WHERE id=%s AND active=TRUE', - (int(uid),)) - res = cr.fetchone() - if res: - ldap_obj = self.pool['res.company.ldap'] - for conf in ldap_obj.get_ldap_dicts(cr): - if ldap_obj.authenticate(conf, res[0], password): - return - raise - diff --git a/addons/auth_ldap/models/res_users.py b/addons/auth_ldap/models/res_users.py new file mode 100644 index 00000000000..9c50ab5b2db --- /dev/null +++ b/addons/auth_ldap/models/res_users.py @@ -0,0 +1,45 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +import ldap +import openerp.exceptions +from openerp.osv import fields, osv +from openerp import SUPERUSER_ID +from openerp.modules.registry import RegistryManager + +class users(osv.osv): + _inherit = "res.users" + def _login(self, db, login, password): + user_id = super(users, self)._login(db, login, password) + if user_id: + return user_id + registry = RegistryManager.get(db) + with registry.cursor() as cr: + cr.execute("SELECT id FROM res_users WHERE lower(login)=%s", (login,)) + res = cr.fetchone() + if res: + return False + ldap_obj = registry.get('res.company.ldap') + for conf in ldap_obj.get_ldap_dicts(cr): + entry = ldap_obj.authenticate(conf, login, password) + if entry: + user_id = ldap_obj.get_or_create_user( + cr, SUPERUSER_ID, conf, login, entry) + if user_id: + break + return user_id + + def check_credentials(self, cr, uid, password): + try: + super(users, self).check_credentials(cr, uid, password) + except openerp.exceptions.AccessDenied: + + cr.execute('SELECT login FROM res_users WHERE id=%s AND active=TRUE', + (int(uid),)) + res = cr.fetchone() + if res: + ldap_obj = self.pool['res.company.ldap'] + for conf in ldap_obj.get_ldap_dicts(cr): + if ldap_obj.authenticate(conf, res[0], password): + return + raise + \ No newline at end of file