Daniel Reis
11 years ago
4 changed files with 143 additions and 0 deletions
-
22users_ldap_mail/__init__.py
-
40users_ldap_mail/__openerp__.py
-
63users_ldap_mail/users_ldap_model.py
-
18users_ldap_mail/users_ldap_view.xml
@ -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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
|
|||
import users_ldap_model |
@ -0,0 +1,40 @@ |
|||
# -*- 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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
|
|||
{ |
|||
"name" : "LDAP mapping for user name and e-mail", |
|||
"version" : "1.0", |
|||
"depends" : ["auth_ldap"], |
|||
"author" : "Daniel Reis", |
|||
"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: |
@ -0,0 +1,63 @@ |
|||
# -*- 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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
|
|||
from openerp.osv import fields, orm |
|||
|
|||
|
|||
class CompanyLDAP(orm.Model): |
|||
_inherit='res.company.ldap' |
|||
_columns={ |
|||
'name_attribute': fields.char('Name Attribute', size=64, |
|||
help="Default in 'cn'. For an AD you could use 'displayName' instead."), |
|||
'mail_attribute': fields.char('E-mail attribute', size=64, |
|||
help="Active Directory uses the 'mail' attribute."), |
|||
} |
|||
|
|||
|
|||
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) |
|||
if conf.get('name_attribute'): |
|||
values['name'] = ldap_entry[1][conf['name_attribute']][0] |
|||
if conf.get('mail_attribute'): |
|||
values['email'] = ldap_entry[1][conf['mail_attribute']][0] |
|||
return values |
|||
|
@ -0,0 +1,18 @@ |
|||
<?xml version="1.0"?> |
|||
<openerp> |
|||
<data> |
|||
<record model="ir.ui.view" id="company_form_view"> |
|||
<field name="name">res.company.form.inherit.users_ldap_mail</field> |
|||
<field name="model">res.company</field> |
|||
<field name="inherit_id" ref="auth_ldap.company_form_view"/> |
|||
<field name="arch" type="xml"> |
|||
|
|||
<field name="ldap_filter" position="after"> |
|||
<field name="name_attribute"/> |
|||
<field name="mail_attribute"/> |
|||
</field> |
|||
|
|||
</field> |
|||
</record> |
|||
</data> |
|||
</openerp> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue