https://fedorahosted.org/freeipa/ticket/5456

Patch attached.
From 2a01c3d14460b480cc46230f9790b22785dc7d55 Mon Sep 17 00:00:00 2001
From: Martin Basti <mba...@redhat.com>
Date: Tue, 17 Nov 2015 11:43:57 +0100
Subject: [PATCH] Compare objectclasses as cas insensitive in baseuser.py

Objectclasses must be handled as case insensitive.

https://fedorahosted.org/freeipa/ticket/5456
---
 ipalib/plugins/baseuser.py | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/ipalib/plugins/baseuser.py b/ipalib/plugins/baseuser.py
index 7af398c4efe18f97dd2809cd8ac7401e524a6760..64ae18356af7fb7545dc27987321a12932c5b136 100644
--- a/ipalib/plugins/baseuser.py
+++ b/ipalib/plugins/baseuser.py
@@ -554,20 +554,23 @@ class baseuser_mod(LDAPUpdate):
                 _entry_attrs = ldap.get_entry(dn, ['objectclass'])
                 obj_classes = entry_attrs['objectclass'] = _entry_attrs['objectclass']
 
+            # IMPORTANT: compare objectclasses as case insensitive
+            obj_classes = [o.lower() for o in obj_classes]
+
             if 'ipasshpubkey' in entry_attrs and 'ipasshuser' not in obj_classes:
-                obj_classes.append('ipasshuser')
+                entry_attrs['objectclass'].append('ipasshuser')
 
             if 'ipauserauthtype' in entry_attrs and 'ipauserauthtypeclass' not in obj_classes:
-                obj_classes.append('ipauserauthtypeclass')
+                entry_attrs['objectclass'].append('ipauserauthtypeclass')
 
             if 'userclass' in entry_attrs and 'ipauser' not in obj_classes:
-                obj_classes.append('ipauser')
+                entry_attrs['objectclass'].append('ipauser')
 
             if 'ipatokenradiusconfiglink' in entry_attrs:
                 cl = entry_attrs['ipatokenradiusconfiglink']
                 if cl:
                     if 'ipatokenradiusproxyuser' not in obj_classes:
-                        obj_classes.append('ipatokenradiusproxyuser')
+                        entry_attrs['objectclass'].append('ipatokenradiusproxyuser')
 
                     answer = self.api.Object['radiusproxy'].get_dn_if_exists(cl)
                     entry_attrs['ipatokenradiusconfiglink'] = answer
-- 
2.4.3

-- 
Manage your subscription for the Freeipa-devel mailing list:
https://www.redhat.com/mailman/listinfo/freeipa-devel
Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code

Reply via email to