diff options
author | Simo Sorce <simo@redhat.com> | 2015-02-22 23:53:33 -0500 |
---|---|---|
committer | Patrick Uiterwijk <puiterwijk@redhat.com> | 2015-02-24 16:58:25 +0100 |
commit | 29542bc6407f06edb5bebedc64b84802f1ccb154 (patch) | |
tree | bf3e7c05280043fe4c7d53c5aa9f3b41eb2e0bb4 /ipsilon/info/infoldap.py | |
parent | 76f93f4ed448ebdd0766c627eb63d5c11afb1205 (diff) | |
download | ipsilon-29542bc6407f06edb5bebedc64b84802f1ccb154.tar.gz ipsilon-29542bc6407f06edb5bebedc64b84802f1ccb154.tar.xz ipsilon-29542bc6407f06edb5bebedc64b84802f1ccb154.zip |
Use the new Policy engine for login/info mapping
The InfoMapping class is now only used to prettify the default
set of wellknown attributes.
Signed-off-by: Simo Sorce <simo@redhat.com>
Reviewed-by: Patrick Uiterwijk <puiterwijk@redhat.com>
Diffstat (limited to 'ipsilon/info/infoldap.py')
-rw-r--r-- | ipsilon/info/infoldap.py | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/ipsilon/info/infoldap.py b/ipsilon/info/infoldap.py index 0ec6dd1..7170e95 100644 --- a/ipsilon/info/infoldap.py +++ b/ipsilon/info/infoldap.py @@ -4,33 +4,32 @@ from ipsilon.info.common import InfoProviderBase from ipsilon.info.common import InfoProviderInstaller -from ipsilon.info.common import InfoMapping from ipsilon.util.plugin import PluginObject +from ipsilon.util.policy import Policy from ipsilon.util import config as pconfig import ldap # TODO: fetch mapping from configuration -ldap_mapping = { - 'cn': 'fullname', - 'commonname': 'fullname', - 'sn': 'surname', - 'mail': 'email', - 'destinationindicator': 'country', - 'postalcode': 'postcode', - 'st': 'state', - 'statetorprovincename': 'state', - 'streetaddress': 'street', - 'telephonenumber': 'phone', -} +ldap_mapping = [ + ['cn', 'fullname'], + ['commonname', 'fullname'], + ['sn', 'surname'], + ['mail', 'email'], + ['destinationindicator', 'country'], + ['postalcode', 'postcode'], + ['st', 'state'], + ['statetorprovincename', 'state'], + ['streetaddress', 'street'], + ['telephonenumber', 'phone'], +] class InfoProvider(InfoProviderBase): def __init__(self, *pargs): super(InfoProvider, self).__init__(*pargs) - self.mapper = InfoMapping() - self.mapper.set_mapping(ldap_mapping) + self.mapper = Policy(ldap_mapping) self.name = 'ldap' self.description = """ Info plugin that uses LDAP to retrieve user data. """ @@ -127,7 +126,7 @@ Info plugin that uses LDAP to retrieve user data. """ reply = dict() try: ldapattrs = self._get_user_data(conn, dn) - userattrs, extras = self.mapper.map_attrs(ldapattrs) + userattrs, extras = self.mapper.map_attributes(ldapattrs) groups = self._get_user_groups(conn, dn, ldapattrs) reply = userattrs reply['_groups'] = groups |