diff --git a/ipaserver/plugins/baseuser.py b/ipaserver/plugins/baseuser.py index f5d3221ad..61fc20ac6 100644 --- a/ipaserver/plugins/baseuser.py +++ b/ipaserver/plugins/baseuser.py @@ -755,7 +755,11 @@ class baseuser_mod(LDAPUpdate): if 'ipaidpuser' not in obj_classes: entry_attrs['objectclass'].append('ipaidpuser') - answer = self.api.Object['idp'].get_dn_if_exists(cl) + try: + answer = self.api.Object['idp'].get_dn_if_exists(cl) + except errors.NotFound: + reason = "External IdP configuration {} not found" + raise errors.NotFound(reason=_(reason).format(cl)) entry_attrs['ipaidpconfiglink'] = answer # Note: we could have used the method add_missing_object_class diff --git a/ipaserver/plugins/stageuser.py b/ipaserver/plugins/stageuser.py index 24697cf58..511a97287 100644 --- a/ipaserver/plugins/stageuser.py +++ b/ipaserver/plugins/stageuser.py @@ -406,7 +406,11 @@ class stageuser_add(baseuser_add): if 'ipaidpuser' not in entry_attrs['objectclass']: entry_attrs['objectclass'].append('ipaidpuser') - answer = self.api.Object['idp'].get_dn_if_exists(cl) + try: + answer = self.api.Object['idp'].get_dn_if_exists(cl) + except errors.NotFound: + reason = "External IdP configuration {} not found" + raise errors.NotFound(reason=_(reason).format(cl)) entry_attrs['ipaidpconfiglink'] = answer self.pre_common_callback(ldap, dn, entry_attrs, attrs_list, *keys, diff --git a/ipaserver/plugins/user.py b/ipaserver/plugins/user.py index 9fcf23d73..819141b7f 100644 --- a/ipaserver/plugins/user.py +++ b/ipaserver/plugins/user.py @@ -649,7 +649,11 @@ class user_add(baseuser_add): if 'ipaidpuser' not in entry_attrs['objectclass']: entry_attrs['objectclass'].append('ipaidpuser') - answer = self.api.Object['idp'].get_dn_if_exists(rcl) + try: + answer = self.api.Object['idp'].get_dn_if_exists(rcl) + except errors.NotFound: + reason = "External IdP configuration {} not found" + raise errors.NotFound(reason=_(reason).format(rcl)) entry_attrs['ipaidpconfiglink'] = answer self.pre_common_callback(ldap, dn, entry_attrs, attrs_list, *keys,