<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Copyright (c) 2014 Evolveum
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~     http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->
<objectTemplate oid="10000000-0000-0000-0000-000000000231"
   xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
   xmlns='http://midpoint.evolveum.com/xml/ns/public/common/common-3'
   xmlns:c='http://midpoint.evolveum.com/xml/ns/public/common/common-3'
   xmlns:t='http://prism.evolveum.com/xml/ns/public/types-3'
   xmlns:q="http://prism.evolveum.com/xml/ns/public/query-3"
   xmlns:ext="http://midpoint.evolveum.com/xml/ns/story/orgsync/ext">
    <name>Org Template</name>

    <mapping>
    	<name>Org-org mapping</name>
    	<authoritative>true</authoritative>
		<strength>strong</strength>
    	<source>
    		<path>identifier</path>
    		<name>orgpath</name>
    	</source>
    	<source>
    		<path>subtype</path>
    	</source>
    	<expression>
    		<assignmentTargetSearch>
            	<targetType>c:OrgType</targetType>
        		<filter>
                    <q:text>
                        c:name =[polyStringNorm] ```
                                parent = orgpath?.tokenize('/').reverse()[0]
                                return parent
                                ```
                    </q:text>
				</filter>
				<createOnDemand>true</createOnDemand>
				<populateObject>
					<populateItem>
						<expression>
							<script>
								<code>
									orgpath.tokenize('/').reverse()[0]
								</code>
							</script>
						</expression>
						<target>
							<path>name</path>
						</target>
					</populateItem>
					<populateItem>
						<expression>
							<value>access</value>
						</expression>
						<target>
							<path>subtype</path>
						</target>
					</populateItem>
					<populateItem>
						<expression>
							<script>
								<code>
									orgpath.tokenize('/').reverse()[1..-1].join('/').tokenize('/').reverse()[0..-1].join('/')
								</code>
							</script>
						</expression>
						<target>
							<path>identifier</path>
						</target>
					</populateItem>
					<populateItem>
						<expression>
							<assignmentTargetSearch>
								<targetType>RoleType</targetType>
								<oid>12345678-d34d-b33f-f00d-111111111222</oid>
							</assignmentTargetSearch>
						</expression>
						<target>
							<path>assignment</path>
						</target>
					</populateItem>
				</populateObject>
            </assignmentTargetSearch>
    	</expression>
    	<target>
    		<path>assignment</path>
    	</target>
    	<condition>
    		<script>
    			<code>subtype != null &amp;&amp; subtype == 'access'</code>
    		</script>
    	</condition>
    </mapping>


  	<mapping>
  		<name>Assign meta role</name>
    	<authoritative>true</authoritative>
		<strength>strong</strength>
    	<expression>
    		<assignmentTargetSearch>
				<targetType>RoleType</targetType>
				<oid>12345678-d34d-b33f-f00d-111111111222</oid>
			</assignmentTargetSearch>
		</expression>
		<target>
			<path>assignment</path>
		</target>
  	</mapping>

</objectTemplate>
