idviews: Raise NotFound errors if object to override could not be found

If the object user wishes to override cannot be found, we should properly raise a
NotFound error.

Part of: https://fedorahosted.org/freeipa/ticket/3979

Reviewed-By: Petr Viktorin <pviktori@redhat.com>
Reviewed-By: Petr Vobornik <pvoborni@redhat.com>
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
This commit is contained in:
Tomas Babej
2014-09-11 13:09:44 +02:00
committed by Martin Kosek
parent 961790e20a
commit c1f51cff02

View File

@@ -439,6 +439,9 @@ class baseidoverride(LDAPObject):
# about the domain
return SID_ANCHOR_PREFIX + sid
# No acceptable object was found
api.Object['idoverride%s' % obj_type].handle_not_found(obj)
def resolve_anchor_to_object_name(self, anchor):
if anchor.startswith(IPA_ANCHOR_PREFIX):
@@ -477,6 +480,10 @@ class baseidoverride(LDAPObject):
name = domain_validator.get_trusted_domain_object_from_sid(sid)
return name
# No acceptable object was found
raise errors.NotFound(
reason=_("Anchor '%(anchor)s' could not be resolved.")
% dict(anchor=anchor))
def get_dn(self, *keys, **options):
keys = keys[:-1] + (self.resolve_object_to_anchor(keys[-1]), )