Blob Blame History Raw
From 43871c023ac22a0ae2c4b5fb264b69c6e8029f49 Mon Sep 17 00:00:00 2001
From: Felipe Volpone <felipevolpone@gmail.com>
Date: Thu, 11 May 2017 10:26:03 -0300
Subject: [PATCH] Fixing adding authenticator indicators to host

The check for krbprincipalaux in the entries is now made
case-insensitively.

https://pagure.io/freeipa/issue/6911

Reviewed-By: Stanislav Laznicka <slaznick@redhat.com>
Reviewed-By: Petr Vobornik <pvoborni@redhat.com>
---
 ipaserver/plugins/host.py | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/ipaserver/plugins/host.py b/ipaserver/plugins/host.py
index dcadd54a10692f64f0464d964f43c7881875d433..1e1f9d82dfdfcf9e7fef65ce729cd8ee7b76e605 100644
--- a/ipaserver/plugins/host.py
+++ b/ipaserver/plugins/host.py
@@ -884,7 +884,8 @@ class host_mod(LDAPUpdate):
                 msg = 'Principal name already set, it is unchangeable.'
                 raise errors.ACIError(info=msg)
             obj_classes = entry_attrs_old['objectclass']
-            if 'krbprincipalaux' not in obj_classes:
+            if 'krbprincipalaux' not in (item.lower() for item in
+                                         obj_classes):
                 obj_classes.append('krbprincipalaux')
                 entry_attrs['objectclass'] = obj_classes
 
@@ -920,7 +921,7 @@ class host_mod(LDAPUpdate):
             else:
                 _entry_attrs = ldap.get_entry(dn, ['objectclass'])
                 obj_classes = _entry_attrs['objectclass']
-            if 'ieee802device' not in obj_classes:
+            if 'ieee802device' not in (item.lower() for item in obj_classes):
                 obj_classes.append('ieee802device')
                 entry_attrs['objectclass'] = obj_classes
 
@@ -940,7 +941,7 @@ class host_mod(LDAPUpdate):
             else:
                 _entry_attrs = ldap.get_entry(dn, ['objectclass'])
                 obj_classes = entry_attrs['objectclass'] = _entry_attrs['objectclass']
-            if 'ipasshhost' not in obj_classes:
+            if 'ipasshhost' not in (item.lower() for item in obj_classes):
                 obj_classes.append('ipasshhost')
 
         update_krbticketflags(ldap, entry_attrs, attrs_list, options, True)
@@ -949,14 +950,16 @@ class host_mod(LDAPUpdate):
             if 'objectclass' not in entry_attrs:
                 entry_attrs_old = ldap.get_entry(dn, ['objectclass'])
                 entry_attrs['objectclass'] = entry_attrs_old['objectclass']
-            if 'krbticketpolicyaux' not in entry_attrs['objectclass']:
+            if 'krbticketpolicyaux' not in (item.lower() for item in
+                                            entry_attrs['objectclass']):
                 entry_attrs['objectclass'].append('krbticketpolicyaux')
 
         if 'krbprincipalauthind' in entry_attrs:
             if 'objectclass' not in entry_attrs:
                 entry_attrs_old = ldap.get_entry(dn, ['objectclass'])
                 entry_attrs['objectclass'] = entry_attrs_old['objectclass']
-            if 'krbprincipalaux' not in entry_attrs['objectclass']:
+            if 'krbprincipalaux' not in (item.lower() for item in
+                                         entry_attrs['objectclass']):
                 entry_attrs['objectclass'].append('krbprincipalaux')
 
         add_sshpubkey_to_attrs_pre(self.context, attrs_list)
-- 
2.9.3