Skip to content

Commit

Permalink
Ensure Object Operation policy is always computed
Browse files Browse the repository at this point in the history
Signed-off-by: Tony Tkacik <tonydamage@gmail.com>
  • Loading branch information
tonydamage committed Feb 15, 2023
1 parent fd1ca5f commit 7f27e29
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1904,7 +1904,7 @@ public boolean isAdministrativeStatusSupported() throws SchemaException, Configu
}

public boolean isMarkedReadOnly() {
var policy = ShadowMarkManager.get().computeEffectivePolicy(getObjectCurrentOrOld().asObjectable(), new OperationResult("markReadOnly"));
var policy = ShadowMarkManager.get().computeEffectivePolicy(getObjectNewOrCurrentOrOld().asObjectable(), new OperationResult("markReadOnly"));
return !policy.getAdd().isEnabled() && !policy.getModify().isEnabled() && !policy.getDelete().isEnabled();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import com.evolveum.midpoint.prism.delta.ItemDelta;
import com.evolveum.midpoint.prism.delta.ObjectDelta;
import com.evolveum.midpoint.provisioning.api.ResourceObjectShadowChangeDescription;
import com.evolveum.midpoint.repo.common.ShadowMarkManager;
import com.evolveum.midpoint.schema.constants.ExpressionConstants;
import com.evolveum.midpoint.schema.constants.SchemaConstants;
import com.evolveum.midpoint.schema.expression.ExpressionProfile;
Expand Down Expand Up @@ -194,7 +195,13 @@ boolean isSynchronizationEnabled() {
}

public boolean isMarkedSkipSynchronization() {
return !shadowedResourceObject.getEffectiveOperationPolicy().getSynchronize().getInbound().isEnabled();
var policy = shadowedResourceObject.getEffectiveOperationPolicy();
// Policy should not be null if was provided by provisioning-impl, but sometimes in tests
// provisioning is skipped, so we need to ensure policy is computed.
if (policy == null) {
policy = ShadowMarkManager.get().computeEffectivePolicy(shadowedResourceObject, new OperationResult("markedSkipSynchronization"));
}
return !policy.getSynchronize().getInbound().isEnabled();
}

public boolean isProtected() {
Expand Down

0 comments on commit 7f27e29

Please sign in to comment.