<globalPolicyRule>
    <name>Link account for new users</name>
    <policyConstraints>
        <modification>
            <operation>add</operation>
        </modification>
    </policyConstraints>
    <policyActions>
        <scriptExecution>
            <executeScript xmlns:s="http://midpoint.evolveum.com/xml/ns/public/model/scripting-3">
                <s:execute>
                    <s:script>
                        <code><![CDATA[
                            import com.evolveum.midpoint.xml.ns._public.common.common_3.*
                            import com.evolveum.midpoint.schema.*
                            import com.evolveum.midpoint.model.impl.controller.ModelController
                            import com.evolveum.midpoint.model.impl.expr.SpringApplicationContextHolder
                            midpoint.searchObjectsIterative(
                                    midpoint.queryFor(
                                            ShadowType.class,
                                            "resourceRef matches (oid = '54c69f42-6a88-4618-a481-f23fec4eee10') and " +
                                            "kind = 'account' and " +
                                            "name = '$input.name'"
                                    ),
                                    (shadow, opResult) -> {
                                        SpringApplicationContextHolder.getBean(ModelController.class).importFromResource(shadow.oid, midpoint.currentTask, midpoint.currentResult)
                                        return true
                                    },
                                    SelectorOptions.createCollection(GetOperationOptions.createRaw())
                            )
                        ]]>
                        </code>
                    </s:script>
                </s:execute>
            </executeScript>
        </scriptExecution>
    </policyActions>
    <focusSelector>
        <type>UserType</type>
        <filter>
            <q:all/>
        </filter>
    </focusSelector>
</globalPolicyRule>
