From a2112c3087c22b0db752226b8bcf57557962ce42 Mon Sep 17 00:00:00 2001 From: Radovan Semancik Date: Thu, 19 Feb 2015 14:02:03 +0100 Subject: [PATCH] Fixing the fix? --- .../provisioning/util/ProvisioningUtil.java | 56 +++++++++++-------- 1 file changed, 33 insertions(+), 23 deletions(-) diff --git a/provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/util/ProvisioningUtil.java b/provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/util/ProvisioningUtil.java index 54e8e3fa786..96e88c9c070 100644 --- a/provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/util/ProvisioningUtil.java +++ b/provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/util/ProvisioningUtil.java @@ -295,42 +295,52 @@ public static AttributesToReturn createAttributesToReturn( // Password CredentialsCapabilityType credentialsCapabilityType = ResourceTypeUtil.getEffectiveCapability( resource, CredentialsCapabilityType.class); - if (!CapabilityUtil.isPasswordReturnedByDefault(credentialsCapabilityType)) { - // There resource is capable of returning password but it does not - // do it by default - AttributeFetchStrategyType passwordFetchStrategy = objectClassDefinition - .getPasswordFetchStrategy(); - if (passwordFetchStrategy == AttributeFetchStrategyType.EXPLICIT) { + if (credentialsCapabilityType != null) { + if (CapabilityUtil.isPasswordReturnedByDefault(credentialsCapabilityType)) { attributesToReturn.setReturnPasswordExplicit(true); - apply = true; + } else { + // There resource is capable of returning password but it does not + // do it by default + AttributeFetchStrategyType passwordFetchStrategy = objectClassDefinition + .getPasswordFetchStrategy(); + if (passwordFetchStrategy == AttributeFetchStrategyType.EXPLICIT) { + attributesToReturn.setReturnPasswordExplicit(true); + apply = true; + } } } // Activation/administrativeStatus ActivationCapabilityType activationCapabilityType = ResourceTypeUtil.getEffectiveCapability(resource, ActivationCapabilityType.class); - if (CapabilityUtil.isActivationStatusReturnedByDefault(activationCapabilityType)) { - // There resource is capable of returning enable flag but it does - // not do it by default - AttributeFetchStrategyType administrativeStatusFetchStrategy = objectClassDefinition - .getActivationFetchStrategy(ActivationType.F_ADMINISTRATIVE_STATUS); - if (administrativeStatusFetchStrategy == AttributeFetchStrategyType.EXPLICIT) { + if (activationCapabilityType != null) { + if (CapabilityUtil.isActivationStatusReturnedByDefault(activationCapabilityType)) { attributesToReturn.setReturnAdministrativeStatusExplicit(true); - apply = true; + } else { + // There resource is capable of returning enable flag but it does + // not do it by default + AttributeFetchStrategyType administrativeStatusFetchStrategy = objectClassDefinition + .getActivationFetchStrategy(ActivationType.F_ADMINISTRATIVE_STATUS); + if (administrativeStatusFetchStrategy == AttributeFetchStrategyType.EXPLICIT) { + attributesToReturn.setReturnAdministrativeStatusExplicit(true); + apply = true; + } } - } - - if (CapabilityUtil.isActivationLockoutStatusReturnedByDefault(activationCapabilityType)) { - // There resource is capable of returning lockout flag but it does - // not do it by default - AttributeFetchStrategyType statusFetchStrategy = objectClassDefinition - .getActivationFetchStrategy(ActivationType.F_LOCKOUT_STATUS); - if (statusFetchStrategy == AttributeFetchStrategyType.EXPLICIT) { + if (CapabilityUtil.isActivationLockoutStatusReturnedByDefault(activationCapabilityType)) { attributesToReturn.setReturnLockoutStatusExplicit(true); - apply = true; + } else { + // There resource is capable of returning lockout flag but it does + // not do it by default + AttributeFetchStrategyType statusFetchStrategy = objectClassDefinition + .getActivationFetchStrategy(ActivationType.F_LOCKOUT_STATUS); + if (statusFetchStrategy == AttributeFetchStrategyType.EXPLICIT) { + attributesToReturn.setReturnLockoutStatusExplicit(true); + apply = true; + } } } + if (apply) { return attributesToReturn; } else {