LDAP groups assignment

users_ldap_groups
REPOSITORY
REPOSITORYOCA/server-auth
GIT
GIThttps://github.com/OCA/server-auth.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-auth/tree/17.0/users_ldap_groups
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYAuthentication
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Therp BV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Therp BV
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Ryan Cole
WEBSITE
WEBSITEhttps://github.com/OCA/server-auth
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:04
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - auth_ldap
    - base
    - base_setup
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES python-ldap
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
[![License: AGPL-3](https://img.shields.io/badge/license-AGPL--3-blue.png)](https://www.gnu.org/licenses/agpl)

Adds user accounts to groups based on rules defined by the
administrator.

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
view_ldap_installer_form res.company.ldap.form res.company.ldap xpath Inherits auth_ldap.view_ldap_installer_form
Models touched (4)

New fields (2)
  • group_mapping_ids One2many → res.company.ldap.group_mapping
    help='Define how Odoo groups are assigned to LDAP users' args: 'res.company.ldap.group_mapping', 'ldap_id', 'Group mappings'
  • only_ldap_groups Boolean
    default=False help='If this is checked, manual changes to group membership are undone on every login (so Odoo groups are always synchronous with LDAP groups). If not, manually added groups are preserved.' args: 'Only LDAP groups'
Public methods (0)

No public methods.

New fields (5)
  • group_id Many2one → res.groups
    help='The Odoo group to assign' required=True args: 'res.groups', 'Odoo group'
  • ldap_attribute Char
    help='The LDAP attribute to check.\nFor active directory, use memberOf.' args: 'LDAP attribute'
  • ldap_id Many2one → res.company.ldap
    ondelete='cascade' required=True args: 'res.company.ldap', 'LDAP server'
  • operator Selection
    help="The operator to check the attribute against the value\nFor active directory, use 'contains'" required=True args: <expr>
  • value Char
    help='The value to check the attribute against.\nFor active directory, use the dn of the desired group' required=True
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • operators(self)
    @api.model
    Return names (without '_') of function to call on this model as operator
  • safe_ldap_decode(self, attr)
    Safe LDAP decode; Base64 encode attributes containing binary data. Binary data can be stored in Active Directory, e.g., thumbnailPhoto is stored as binary. As Str.decoce() cannot handle binary, this method Base64 encodes the data in the attribute, instead, if decode fails. Using Base64 should be a suitable fallback, because the use cases of users_ldap_groups do not really require comparing binary attributes.

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/server-auth
GIT
GIThttps://github.com/OCA/server-auth.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-auth/tree/16.0/users_ldap_groups
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYAuthentication
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Therp BV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Therp BV
COMMITTERS
COMMITTERSGitHub, Weblate, OCA-git-bot, oca-ci, Carolina Fernandez, Esa Jokinen
WEBSITE
WEBSITEhttps://github.com/OCA/server-auth
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:43
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - auth_ldap
    - base
    - base_setup
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES python-ldap
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
view_ldap_installer_form res.company.ldap.form res.company.ldap xpath Inherits auth_ldap.view_ldap_installer_form
Models touched (4)

New fields (2)
  • group_mapping_ids One2many → res.company.ldap.group_mapping
    help='Define how Odoo groups are assigned to LDAP users' args: 'res.company.ldap.group_mapping', 'ldap_id', 'Group mappings'
  • only_ldap_groups Boolean
    default=False help='If this is checked, manual changes to group membership are undone on every login (so Odoo groups are always synchronous with LDAP groups). If not, manually added groups are preserved.' args: 'Only LDAP groups'
Public methods (0)

No public methods.

New fields (5)
  • group_id Many2one → res.groups
    help='The Odoo group to assign' required=True args: 'res.groups', 'Odoo group'
  • ldap_attribute Char
    help='The LDAP attribute to check.\nFor active directory, use memberOf.' args: 'LDAP attribute'
  • ldap_id Many2one → res.company.ldap
    ondelete='cascade' required=True args: 'res.company.ldap', 'LDAP server'
  • operator Selection
    help="The operator to check the attribute against the value\nFor active directory, use 'contains'" required=True args: <expr>
  • value Char
    help='The value to check the attribute against.\nFor active directory, use the dn of the desired group' required=True
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • operators(self)
    @api.model
    Return names (without '_') of function to call on this model as operator
  • safe_ldap_decode(self, attr)
    Safe LDAP decode; Base64 encode attributes containing binary data. Binary data can be stored in Active Directory, e.g., thumbnailPhoto is stored as binary. As Str.decoce() cannot handle binary, this method Base64 encodes the data in the attribute, instead, if decode fails. Using Base64 should be a suitable fallback, because the use cases of users_ldap_groups do not really require comparing binary attributes.

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/server-auth
GIT
GIThttps://github.com/OCA/server-auth.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-auth/tree/15.0/users_ldap_groups
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYAuthentication
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Therp BV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Therp BV
COMMITTERS
COMMITTERSStéphane Bidoul, Weblate, OCA-git-bot, oca-ci, Ruben Ortlam
WEBSITE
WEBSITEhttps://github.com/OCA/server-auth
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:32
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - auth_ldap
    - base
    - base_setup
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES python-ldap
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
view_ldap_installer_form res.company.ldap.form res.company.ldap xpath Inherits auth_ldap.view_ldap_installer_form
Models touched (4)

New fields (2)
  • group_mapping_ids One2many → res.company.ldap.group_mapping
    help='Define how Odoo groups are assigned to LDAP users' args: 'res.company.ldap.group_mapping', 'ldap_id', 'Group mappings'
  • only_ldap_groups Boolean
    default=False help='If this is checked, manual changes to group membership are undone on every login (so Odoo groups are always synchronous with LDAP groups). If not, manually added groups are preserved.' args: 'Only LDAP groups'
Public methods (0)

No public methods.

New fields (5)
  • group_id Many2one → res.groups
    help='The Odoo group to assign' required=True args: 'res.groups', 'Odoo group'
  • ldap_attribute Char
    help='The LDAP attribute to check.\nFor active directory, use memberOf.' args: 'LDAP attribute'
  • ldap_id Many2one → res.company.ldap
    ondelete='cascade' required=True args: 'res.company.ldap', 'LDAP server'
  • operator Selection
    help="The operator to check the attribute against the value\nFor active directory, use 'contains'" required=True args: <expr>
  • value Char
    help='The value to check the attribute against.\nFor active directory, use the dn of the desired group' required=True
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • operators(self)
    @api.model
    Return names (without '_') of function to call on this model as operator

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/server-auth
GIT
GIThttps://github.com/OCA/server-auth.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-auth/tree/14.0/users_ldap_groups
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYAuthentication
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Therp BV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Therp BV
COMMITTERS
COMMITTERSStéphane Bidoul, OCA Transbot, oca-travis, Weblate, OCA-git-bot, dsolanki
WEBSITE
WEBSITEhttps://github.com/OCA/server-auth
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:55
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - auth_ldap
    - base
    - base_setup
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES python-ldap
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
view_ldap_installer_form res.company.ldap.form res.company.ldap xpath Inherits auth_ldap.view_ldap_installer_form
Models touched (4)

New fields (2)
  • group_mapping_ids One2many → res.company.ldap.group_mapping
    help='Define how Odoo groups are assigned to LDAP users' args: 'res.company.ldap.group_mapping', 'ldap_id', 'Group mappings'
  • only_ldap_groups Boolean
    default=False help='If this is checked, manual changes to group membership are undone on every login (so Odoo groups are always synchronous with LDAP groups). If not, manually added groups are preserved.' args: 'Only LDAP groups'
Public methods (0)

No public methods.

New fields (5)
  • group_id Many2one → res.groups
    help='The Odoo group to assign' required=True args: 'res.groups', 'Odoo group'
  • ldap_attribute Char
    help='The LDAP attribute to check.\nFor active directory, use memberOf.' args: 'LDAP attribute'
  • ldap_id Many2one → res.company.ldap
    ondelete='cascade' required=True args: 'res.company.ldap', 'LDAP server'
  • operator Selection
    help="The operator to check the attribute against the value\nFor active directory, use 'contains'" required=True args: <expr>, 'Operator'
  • value Char
    help='The value to check the attribute against.\nFor active directory, use the dn of the desired group' required=True args: 'Value'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • operators(self)
    @api.model
    Return names (without '_') of function to call on this model as operator

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/server-auth
GIT
GIThttps://github.com/OCA/server-auth.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-auth/tree/13.0/users_ldap_groups
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYAuthentication
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Therp BV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Therp BV
COMMITTERS
COMMITTERSStéphane Bidoul, João Marques, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/server-auth
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:11
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - auth_ldap
    - base
    - base_setup
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES python-ldap
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
view_ldap_installer_form res.company.ldap.form res.company.ldap xpath Inherits auth_ldap.view_ldap_installer_form
Models touched (4)

New fields (2)
  • group_mapping_ids One2many → res.company.ldap.group_mapping
    help='Define how Odoo groups are assigned to LDAP users' args: 'res.company.ldap.group_mapping', 'ldap_id', 'Group mappings'
  • only_ldap_groups Boolean
    default=False help='If this is checked, manual changes to group membership are undone on every login (so Odoo groups are always synchronous with LDAP groups). If not, manually added groups are preserved.' args: 'Only LDAP groups'
Public methods (0)

No public methods.

New fields (5)
  • group_id Many2one → res.groups
    help='The Odoo group to assign' required=True args: 'res.groups', 'Odoo group'
  • ldap_attribute Char
    help='The LDAP attribute to check.\nFor active directory, use memberOf.' args: 'LDAP attribute'
  • ldap_id Many2one → res.company.ldap
    ondelete='cascade' required=True args: 'res.company.ldap', 'LDAP server'
  • operator Selection
    help="The operator to check the attribute against the value\nFor active directory, use 'contains'" required=True args: <expr>, 'Operator'
  • value Char
    help='The value to check the attribute against.\nFor active directory, use the dn of the desired group' required=True args: 'Value'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • operators(self)
    @api.model
    Return names (without '_') of function to call on this model as operator

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/server-auth
GIT
GIThttps://github.com/OCA/server-auth.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-auth/tree/12.0/users_ldap_groups
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYAuthentication
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Therp BV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Therp BV
COMMITTERS
COMMITTERSStéphane Bidoul, Holger Brunn, Alexey Pelykh, OCA Transbot, oca-travis, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/server-auth
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:15
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - auth_ldap
    - base
    - base_setup
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES python-ldap
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
view_ldap_installer_form res.company.ldap.form res.company.ldap xpath Inherits auth_ldap.view_ldap_installer_form
Models touched (4)

New fields (2)
  • group_mapping_ids One2many → res.company.ldap.group_mapping
    help='Define how Odoo groups are assigned to LDAP users' args: 'res.company.ldap.group_mapping', 'ldap_id', 'Group mappings'
  • only_ldap_groups Boolean
    default=False help='If this is checked, manual changes to group membership are undone on every login (so Odoo groups are always synchronous with LDAP groups). If not, manually added groups are preserved.' args: 'Only LDAP groups'
Public methods (0)

No public methods.

New fields (5)
  • group_id Many2one → res.groups
    help='The Odoo group to assign' required=True args: 'res.groups', 'Odoo group'
  • ldap_attribute Char
    help='The LDAP attribute to check.\nFor active directory, use memberOf.' args: 'LDAP attribute'
  • ldap_id Many2one → res.company.ldap
    ondelete='cascade' required=True args: 'res.company.ldap', 'LDAP server'
  • operator Selection
    help="The operator to check the attribute against the value\nFor active directory, use 'contains'" required=True args: <expr>, 'Operator'
  • value Char
    help='The value to check the attribute against.\nFor active directory, use the dn of the desired group' required=True args: 'Value'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (4)
  • contains(self, ldap_entry, mapping)
  • equals(self, ldap_entry, mapping)
  • operators(self)
    @api.model
    Return names of function to call on this model as operator
  • query(self, ldap_entry, mapping)

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/11.0/users_ldap_groups
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYAuthentication
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), initOS GmbH, Therp BV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), initOS GmbH, Therp BV
COMMITTERS
COMMITTERSOCA Transbot, oca-travis, OCA-git-bot, Tom Blauwendraat, dsolanki
WEBSITE
WEBSITEhttps://github.com/OCA/server-tools
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:24:00
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - auth_ldap
    - base
    - base_setup
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES python-ldap
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
view_ldap_installer_form res.company.ldap.form res.company.ldap xpath Inherits auth_ldap.view_ldap_installer_form
Models touched (4)

New fields (2)
  • group_mapping_ids One2many → res.company.ldap.group_mapping
    help='Define how Odoo groups are assigned to ldap users' args: 'res.company.ldap.group_mapping', 'ldap_id', 'Group mappings'
  • only_ldap_groups Boolean
    default=False help='If this is checked, manual changes to group membership are undone on every login (so Odoo groups are always synchronous with LDAP groups). If not, manually added groups are preserved.' args: 'Only ldap groups'
Public methods (1)
  • get_or_create_user(self, conf, login, ldap_entry)
    @api.model

New fields (5)
  • group_id Many2one → res.groups
    help='The Odoo group to assign' oldname='group' required=True args: 'res.groups', 'Odoo group'
  • ldap_attribute Char
    help='The LDAP attribute to check.\nFor active directory, use memberOf.' args: 'LDAP attribute'
  • ldap_id Many2one → res.company.ldap
    ondelete='cascade' required=True args: 'res.company.ldap', 'LDAP server'
  • operator Selection
    help="The operator to check the attribute against the value\nFor active directory, use 'contains'" required=True args: <expr>, 'Operator'
  • value Char
    help='The value to check the attribute against.\nFor active directory, use the dn of the desired group' required=True args: 'Value'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (4)
  • contains(self, ldap_entry, mapping)
    @api.model
  • equals(self, ldap_entry, mapping)
  • operators(self)
    @api.model
    Return names of function to call on this model as operator
  • query(self, ldap_entry, mapping)

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/10.0/users_ldap_groups
VERSION
VERSION 0.0.1
CATEGORY
CATEGORYAuthentication
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Therp BV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Therp BV
COMMITTERS
COMMITTERSHolger Brunn, Pedro M. Baeza, Stéphane Bidoul (ACSONE), oca-travis, OCA-git-bot, Robin Hède
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:20:00
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - auth_ldap
    - base
    - base_setup
    - web_kanban
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES python-ldap
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
company_form_view base.config.settings xpath Inherits auth_ldap.view_general_configuration_form_inherit_auth_ldap
Models touched (4)

New fields (2)
  • group_mapping_ids One2many → res.company.ldap.group_mapping
    help='Define how Odoo groups are assigned to ldap users' args: 'res.company.ldap.group_mapping', 'ldap_id', 'Group mappings'
  • only_ldap_groups Boolean
    default=False help='If this is checked, manual changes to group membership are undone on every login (so Odoo groups are always synchronous with LDAP groups). If not, manually added groups are preserved.' args: 'Only ldap groups'
Public methods (1)
  • get_or_create_user(self, conf, login, ldap_entry)
    @api.model

New fields (5)
  • group_id Many2one → res.groups
    help='The Odoo group to assign' oldname='group' required=True args: 'res.groups', 'Odoo group'
  • ldap_attribute Char
    help='The LDAP attribute to check.\nFor active directory, use memberOf.' args: 'LDAP attribute'
  • ldap_id Many2one → res.company.ldap
    ondelete='cascade' required=True args: 'res.company.ldap', 'LDAP server'
  • operator Selection
    help="The operator to check the attribute against the value\nFor active directory, use 'contains'" required=True args: <expr>, 'Operator'
  • value Char
    help='The value to check the attribute against.\nFor active directory, use the dn of the desired group' required=True args: 'Value'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (4)
  • contains(self, ldap_entry, mapping)
    @api.model
  • equals(self, ldap_entry, mapping)
  • operators(self)
    @api.model
    Return names of function to call on this model as operator
  • query(self, ldap_entry, mapping)

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/9.0/users_ldap_groups
VERSION
VERSION 1.2.0
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Therp BV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Therp BV
COMMITTERS
COMMITTERSPedro M. Baeza, Stéphane Bidoul (ACSONE)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:23
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - auth_ldap
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES python-ldap
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
company_form_view res.company.form.inherit.users_ldap_groups res.company xpath Inherits auth_ldap.company_form_view
Models touched (3)

New fields (2)
  • group_mappings One2many → res.company.ldap.group_mapping
    help='Define how OpenERP groups are assigned to ldap users' args: 'res.company.ldap.group_mapping', 'ldap_id', 'Group mappings'
  • only_ldap_groups Boolean
    help='If this is checked, manual changes to group membership are undone on every login (so OpenERP groups are always synchronous with LDAP groups). If not, manually added groups are preserved.' args: 'Only ldap groups'
Public methods (1)
  • get_or_create_user(self, conf, login, ldap_entry)
    @api.model

New fields (5)
  • group Many2one → res.groups
    help='The OpenERP group to assign' required=True args: 'res.groups', 'OpenERP group'
  • ldap_attribute Char
    help='The LDAP attribute to check.\nFor active directory, use memberOf.' args: 'LDAP attribute'
  • ldap_id Many2one → res.company.ldap
    required=True args: 'res.company.ldap', 'LDAP server'
  • operator Selection
    help="The operator to check the attribute against the value\nFor active directory, use 'contains'" required=True args: _get_operators, 'Operator'
  • value Char
    help='The value to check the attribute against.\nFor active directory, use the dn of the desired group' required=True args: 'Value'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (4)
  • contains(self, ldap_entry, attribute, value, ldap_config, company, logger)
  • equals(self, ldap_entry, attribute, value, ldap_config, company, logger)
  • operators(self)
  • query(self, ldap_entry, attribute, value, ldap_config, company, logger)
REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/8.0/users_ldap_groups
VERSION
VERSION 1.2.2
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Therp BV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Therp BV
COMMITTERS
COMMITTERSStéphane Bidoul, Yannick Vaucher, GitHub, Stéphane Bidoul (ACSONE), luc-demeyer, OCA Transbot, Giacomo Spettoli, Moises Lopez - https://www.vauxoo.com/, oca-travis, Weblate, Martin Ambroz
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:25
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - auth_ldap
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES python-ldap
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
company_form_view res.company.form.inherit.users_ldap_groups res.company xpath Inherits auth_ldap.company_form_view
Models touched (4)

New fields (2)
  • group_mappings One2many → res.company.ldap.group_mapping
    help='Define how OpenERP groups are assigned to ldap users' args: 'res.company.ldap.group_mapping', 'ldap_id', 'Group mappings'
  • only_ldap_groups Boolean
    help='If this is checked, manual changes to group membership are undone on every login (so OpenERP groups are always synchronous with LDAP groups). If not, manually added groups are preserved.' args: 'Only ldap groups'
Public methods (2)
  • get_or_create_user(self, ldap_config, login, ldap_entry)
    @api.model
  • map_groups(self, user_id, ldap_config, ldap_entry)

New fields (5)
  • group Many2one → res.groups
    help='The OpenERP group to assign' required=True args: 'res.groups', 'OpenERP group'
  • ldap_attribute Char
    help='The LDAP attribute to check.\nFor active directory, use memberOf.' args: 'LDAP attribute'
  • ldap_id Many2one → res.company.ldap
    required=True args: 'res.company.ldap', 'LDAP server'
  • operator Selection
    help="The operator to check the attribute against the value\nFor active directory, use 'contains'" required=True args: _get_operators, 'Operator'
  • value Char
    help='The value to check the attribute against.\nFor active directory, use the dn of the desired group' required=True args: 'Value'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (4)
  • contains(self, ldap_entry, attribute, value, ldap_config, company)
  • equals(self, ldap_entry, attribute, value, ldap_config, company)
  • operators(self)
  • query(self, ldap_entry, attribute, value, ldap_config, company)

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/7.0/users_ldap_groups
VERSION
VERSION 1.2.1
CATEGORY
CATEGORYTools
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Therp BV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Therp BV
COMMITTERS
COMMITTERSYannick Vaucher, Alexandre Fayolle, Sandy Carter, Sylvain LE GAL, Jairo Llopis, Daniel Reis
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:07:15
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - auth_ldap
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES python-ldap
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Adds user accounts to groups based on rules defined by the administrator.

Usage:

Define mappings in Settings->Companies->[your company]->tab
configuration->[your ldap server].

Decide whether you want only groups mapped from ldap (Only ldap groups=y) or a
mix of manually set groups and ldap groups (Only ldap groups=n). Setting this
to 'no' will result in users never losing privileges when you remove them from
a ldap group, so that's a potential security issue. It is still the default to
prevent losing group information by accident.

For active directory, use LDAP attribute 'memberOf' and operator 'contains'.
Fill in the DN of the windows group as value and choose an OpenERP group users
with this windows group are to be assigned to.

For posix accounts, use operator 'query' and a value like
(&(cn=bzr)(objectClass=posixGroup)(memberUid=$uid))

The operator query matches if the filter in value returns something, and value
can contain $[attribute] which will be replaced by the first value of the
user's ldap record's attribute named [attribute].

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
company_form_view res.company.form.inherit.users_ldap_groups res.company xpath Inherits auth_ldap.company_form_view
Models touched (2)

New fields (0)

No new fields.

Public methods (1)
  • get_or_create_user(self, cr, uid, conf, login, ldap_entry, context=None)

New fields (0)

No new fields.

Public methods (0)

No public methods.

STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/server-auth
PULL REQUEST
PULL REQUEST[18.0][MIG] users_ldap_groups : Migration to v18 (#889)