[SPLIT] auth_ldap: split files according to new API.
This commit is contained in:
committed by
Yannick Tivisse
parent
64ac8caa06
commit
a7d276727f
@@ -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
|
||||
|
||||
@@ -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"),
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user