diff --git a/users_ldap_mail/__init__.py b/users_ldap_mail/__init__.py
new file mode 100644
index 000000000..a6d454183
--- /dev/null
+++ b/users_ldap_mail/__init__.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# This module copyright (C) 2013 Daniel Reis.
+#
+# 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 users_ldap_model
diff --git a/users_ldap_mail/__openerp__.py b/users_ldap_mail/__openerp__.py
new file mode 100644
index 000000000..fd445f2e7
--- /dev/null
+++ b/users_ldap_mail/__openerp__.py
@@ -0,0 +1,40 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2013 Daniel Reis (https://launchpad.com/~dreis-pt)
+#
+# 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 .
+#
+##############################################################################
+
+{
+'name': "LDAP mapping for user name and e-mail",
+'version': "1.0",
+'depends': ["auth_ldap"],
+'author': "Daniel Reis (https://launchpad.com/~dreis-pt)",
+'description': """\
+Allows to define the LDAP attributes to use to retrieve user name and e-mail address.
+
+The default attribute used for the name is "cn".
+For Active Directory, you might prefer to use "displayName" instead.
+AD also supports the "mail" attribute, so it can be mapped into OpenERP.
+""",
+'category': "Tools",
+'data': [
+ 'users_ldap_view.xml',
+],
+'installable': True,
+}
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/users_ldap_mail/users_ldap_model.py b/users_ldap_mail/users_ldap_model.py
new file mode 100644
index 000000000..0bb72a2de
--- /dev/null
+++ b/users_ldap_mail/users_ldap_model.py
@@ -0,0 +1,74 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# This module copyright (C) 2013 Daniel Reis
+#
+# 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 .
+#
+##############################################################################
+
+from openerp.osv import fields, orm
+
+import logging
+_log = logging.getLogger(__name__)
+
+class CompanyLDAP(orm.Model):
+ _inherit = 'res.company.ldap'
+ _columns = {
+ 'name_attribute': fields.char('Name Attribute', size=64,
+ help="By default 'cn' is used. "
+ "For ActiveDirectory you might use 'displayName' instead."),
+ 'mail_attribute': fields.char('E-mail attribute', size=64,
+ help="LDAP attribute to use to retrieve em-mail address."),
+ }
+ _defaults = {
+ 'name_attribute': 'cn',
+ 'mail_attribute': 'mail',
+ }
+
+ def get_ldap_dicts(self, cr, ids=None):
+ """
+ Copy of auth_ldap's funtion, changing only the SQL, so that it returns
+ all fields in the table.
+ """
+ if ids:
+ id_clause = 'AND id IN (%s)'
+ args = [tuple(ids)]
+ else:
+ id_clause = ''
+ args = []
+ cr.execute("""
+ SELECT *
+ FROM res_company_ldap
+ WHERE ldap_server != '' """ + id_clause + """ ORDER BY sequence
+ """, args)
+ return cr.dictfetchall()
+
+ def map_ldap_attributes(self, cr, uid, conf, login, ldap_entry):
+ values = super(CompanyLDAP, self).map_ldap_attributes(cr, uid, conf,
+ login, ldap_entry)
+ mapping = [
+ ('name', 'name_attribute'),
+ ('email', 'mail_attribute'),
+ ]
+ for value_key, conf_name in mapping:
+ try:
+ if conf[conf_name]:
+ values[value_key] = ldap_entry[1][conf[conf_name]][0]
+ except KeyError:
+ _log.warning('No LDAP attribute "%s" found for login "%s"' % (
+ conf.get(conf_name), values.get('login')))
+ return values
+
diff --git a/users_ldap_mail/users_ldap_view.xml b/users_ldap_mail/users_ldap_view.xml
new file mode 100644
index 000000000..9395e602f
--- /dev/null
+++ b/users_ldap_mail/users_ldap_view.xml
@@ -0,0 +1,18 @@
+
+
+
+
+ res.company.form.inherit.users_ldap_mail
+ res.company
+
+
+
+
+
+
+
+
+
+
+
+