<?xml version="1.0" encoding="UTF-8"?>
<ObjectDefinition xmlns:xi="http://www.w3.org/2001/XInclude" type="usr">
	<Document type="default">
		<DataSource type="JDBC" action="create">
			<Query>
				SELECT obj_id, type
				FROM object_data JOIN usr_data ON obj_id = usr_id
				WHERE obj_id IN (?)
			</Query>
			<Param format="list" type="int" value="objId" />
			<Field store="YES" index="NOT_ANALYZED" column="obj_id" type="integer" name="objId" />
			<Field store="YES" index="NOT_ANALYZED" column="type" type="text" name="type" />
		</DataSource>
		<DataSource type="JDBC" action="append">
			<Query>
				SELECT firstname,lastname,login title FROM usr_data u
				JOIN usr_pref p ON u.usr_id = p.usr_id
				WHERE u.usr_id IN (?) AND
				p.keyword = 'public_profile' AND
				(p.value = 'y' OR p.value = 'g')
			</Query>
			<Param format="list" type="int" value="objId" />
			<Field store="YES" index="ANALYZED" column="firstname" type="text" name="uFirstname" />
			<Field store="YES" index="ANALYZED" column="lastname" type="text" name="uLastname" />
			<Field store="YES" index="ANALYZED" column="firstname" type="text" name="uPropertyHigh" />
			<Field store="YES" index="ANALYZED" column="lastname" type="text" name="uPropertyHigh" />
			<Field store="YES" index="ANALYZED" column="title" type="text" name="title" />
		</DataSource>
		<DataSource type="JDBC" action="append">
			<Query>
				SELECT email FROM usr_data u
				JOIN usr_pref p ON u.usr_id = p.usr_id
				JOIN usr_pref q ON u.usr_id = q.usr_id
				WHERE u.usr_id IN (?) AND
				p.keyword = 'public_email' AND
				p.value = 'y' AND
				q.keyword = 'public_profile' AND
				(q.value = 'y' OR q.value = 'g')
			</Query>
			<Param format="list" type="int" value="objId" />
			<Field store="YES" index="ANALYZED" column="email" type="text" name="uEmail" />
			<Field store="YES" index="ANALYZED" column="email" type="text" name="uPropertyHigh" />
		</DataSource>
		<DataSource type="JDBC" action="append">
			<Query>
				SELECT second_email FROM usr_data u
				JOIN usr_pref p ON u.usr_id = p.usr_id
				JOIN usr_pref q ON u.usr_id = q.usr_id
				WHERE u.usr_id IN (?) AND
				p.keyword = 'public_second_email' AND
				p.value = 'y' AND
				q.keyword = 'public_profile' AND
				(q.value = 'y' OR q.value = 'g')
			</Query>
			<Param format="list" type="int" value="objId" />
			<Field store="YES" index="ANALYZED" column="second_email" type="text" name="uSecondEmail" />
			<Field store="YES" index="ANALYZED" column="second_email" type="text" name="uPropertyHigh" />
		</DataSource>
		<DataSource type="JDBC" action="append">
			<Query>
				SELECT institution FROM usr_data u
				JOIN usr_pref p ON u.usr_id = p.usr_id
				JOIN usr_pref q ON u.usr_id = q.usr_id
				WHERE u.usr_id IN (?) AND
				p.keyword = 'public_institution' AND
				p.value = 'y'  AND
				q.keyword = 'public_profile' AND
				(q.value = 'y' OR q.value = 'g')
			</Query>
			<Param format="list" type="int" value="objId" />
			<Field store="YES" index="ANALYZED" column="institution" type="text" name="uInstitution" />
			<Field store="YES" index="ANALYZED" column="institution" type="text" name="uPropertyHigh" />
		</DataSource>
		<DataSource type="JDBC" action="append">
			<Query>
				SELECT department FROM usr_data u
				JOIN usr_pref p ON u.usr_id = p.usr_id
				JOIN usr_pref q ON u.usr_id = q.usr_id
				WHERE u.usr_id IN (?) AND
				p.keyword = 'public_department' AND
				p.value = 'y'  AND
				q.keyword = 'public_profile' AND
				(q.value = 'y' OR q.value = 'g')
			</Query>
			<Param format="list" type="int" value="objId" />
			<Field store="YES" index="ANALYZED" column="department" type="text" name="uDepartment" />
			<Field store="YES" index="ANALYZED" column="department" type="text" name="uPropertyHigh" />
		</DataSource>
		<DataSource type="JDBC" action="append">
			<Query>
				SELECT street FROM usr_data u
				JOIN usr_pref p ON u.usr_id = p.usr_id
				JOIN usr_pref q ON u.usr_id = q.usr_id
				WHERE u.usr_id IN (?) AND
				p.keyword = 'public_street' AND
				p.value = 'y'  AND
				q.keyword = 'public_profile' AND
				(q.value = 'y' OR q.value = 'g')
			</Query>
			<Param format="list" type="int" value="objId" />
			<Field store="YES" index="ANALYZED" column="street" type="text" name="uStreet" />
			<Field store="YES" index="ANALYZED" column="street" type="text" name="uPropertyHigh" />
		</DataSource>
		<DataSource type="JDBC" action="append">
			<Query>
				SELECT zipcode FROM usr_data u
				JOIN usr_pref p ON u.usr_id = p.usr_id
				JOIN usr_pref q ON u.usr_id = q.usr_id
				WHERE u.usr_id IN (?) AND
				p.keyword = 'public_zipcode' AND
				p.value = 'y'  AND
				q.keyword = 'public_profile' AND
				(q.value = 'y' OR q.value = 'g')
			</Query>
			<Param format="list" type="int" value="objId" />
			<Field store="YES" index="ANALYZED" column="zipcode" type="text" name="uZipCode" />
			<Field store="YES" index="ANALYZED" column="zipcode" type="text" name="uPropertyHigh" />
		</DataSource>
		<DataSource type="JDBC" action="append">
			<Query>
				SELECT city FROM usr_data u
				JOIN usr_pref p ON u.usr_id = p.usr_id
				JOIN usr_pref q ON u.usr_id = q.usr_id
				WHERE u.usr_id IN (?) AND
				p.keyword = 'public_city' AND
				p.value = 'y'  AND
				q.keyword = 'public_profile' AND
				(q.value = 'y' OR q.value = 'g')
			</Query>
			<Param format="list" type="int" value="objId" />
			<Field store="YES" index="ANALYZED" column="city" type="text" name="uCity" />
			<Field store="YES" index="ANALYZED" column="city" type="text" name="uPropertyHigh" />
		</DataSource>
		<DataSource type="JDBC" action="append">
			<Query>
				SELECT country FROM usr_data u
				JOIN usr_pref p ON u.usr_id = p.usr_id
				JOIN usr_pref q ON u.usr_id = q.usr_id
				WHERE u.usr_id IN (?) AND
				p.keyword = 'public_country' AND
				p.value = 'y'  AND
				q.keyword = 'public_profile' AND
				(q.value = 'y' OR q.value = 'g')
			</Query>
			<Param format="list" type="int" value="objId" />
			<Field store="YES" index="ANALYZED" column="country" type="text" name="uCountry" />
			<Field store="YES" index="ANALYZED" column="country" type="text" name="uPropertyHigh" />
		</DataSource>
		<DataSource type="JDBC" action="append">
			<Query>
				SELECT hobby FROM usr_data u
				JOIN usr_pref p ON u.usr_id = p.usr_id
				JOIN usr_pref q ON u.usr_id = q.usr_id
				WHERE u.usr_id IN (?) AND
				p.keyword = 'public_hobby' AND
				p.value = 'y'  AND
				q.keyword = 'public_profile' AND
				(q.value = 'y' OR q.value = 'g')
			</Query>
			<Param format="list" type="int" value="objId" />
			<Field store="YES" index="ANALYZED" column="hobby" type="text" name="uHobby" />
			<Field store="YES" index="ANALYZED" column="hobby" type="text" name="uPropertyHigh" />
		</DataSource>
		<DataSource type="JDBC" action="append">
			<Query>
				SELECT matriculation FROM usr_data u
				JOIN usr_pref p ON u.usr_id = p.usr_id
				JOIN usr_pref q ON u.usr_id = q.usr_id
				WHERE u.usr_id IN (?) AND
				p.keyword = 'public_matriculation' AND
				p.value = 'y'  AND
				q.keyword = 'public_profile' AND
				(q.value = 'y' OR q.value = 'g')
			</Query>
			<Param format="list" type="int" value="objId" />
			<Field store="YES" index="ANALYZED" column="matriculation" type="text" name="uDepartment" />
			<Field store="YES" index="ANALYZED" column="matriculation" type="text" name="uPropertyHigh" />
		</DataSource>
		<DataSource type="JDBC" action="append">
			<Query>
				SELECT um.value FROM usr_profile_data um
				JOIN usr_pref p ON um.usr_id = p.usr_id
				JOIN usr_pref q ON um.usr_id = q.usr_id
				WHERE um.usr_id IN (?) AND
				field_id = 'interests_general' AND
				p.keyword = 'public_interests_general' AND
				p.value = 'y'  AND
				q.keyword = 'public_profile' AND
				(q.value = 'y' OR q.value = 'g')
			</Query>
			<Param format="list" type="int" value="objId" />
			<Field store="YES" index="ANALYZED" column="value" type="text" name="uInterestsGeneral" />
			<Field store="YES" index="ANALYZED" column="value" type="text" name="uPropertyHigh" />
		</DataSource>
		<DataSource type="JDBC" action="append">
			<Query>
				SELECT um.value FROM usr_profile_data um
				JOIN usr_pref p ON um.usr_id = p.usr_id
				JOIN usr_pref q ON um.usr_id = q.usr_id
				WHERE um.usr_id IN (?) AND
				field_id = 'interests_help_looking' AND
				p.keyword = 'public_interests_general' AND
				p.value = 'y'  AND
				q.keyword = 'public_profile' AND
				(q.value = 'y' OR q.value = 'g')
			</Query>
			<Param format="list" type="int" value="objId" />
			<Field store="YES" index="ANALYZED" column="value" type="text" name="uInterestsHelpLooking" />
			<Field store="YES" index="ANALYZED" column="value" type="text" name="uPropertyHigh" />
		</DataSource>
		<DataSource type="JDBC" action="append">
			<Query>
				SELECT um.value FROM usr_profile_data um
				JOIN usr_pref p ON um.usr_id = p.usr_id
				JOIN usr_pref q ON um.usr_id = q.usr_id
				WHERE um.usr_id IN (?) AND
				field_id = 'interests_help_offered' AND
				p.keyword = 'public_interests_general' AND
				p.value = 'y'  AND
				q.keyword = 'public_profile' AND
				(q.value = 'y' OR q.value = 'g')
			</Query>
			<Param format="list" type="int" value="objId" />
			<Field store="YES" index="ANALYZED" column="value" type="text" name="uInterestsHelpOffered" />
			<Field store="YES" index="ANALYZED" column="value" type="text" name="uPropertyHigh" />
		</DataSource>
                <DataSource type="JDBC" action="append">
                    <Query>
                        SELECT object_reference.ref_id FROM rbac_ua
                        JOIN rbac_fa ON rbac_fa.rol_id = rbac_ua.rol_id
                        JOIN object_reference ON rbac_fa.parent = object_reference.ref_id
                        JOIN object_data ON object_data.obj_id = object_reference.obj_id
                        WHERE rbac_ua.usr_id = ? AND object_data.type = 'orgu'
                    </Query>
                    <Param format="list" type="int" value="objId" />
                    <Field store="YES" index="ANALYZED" column="ref_id" type="integer" name="orgUnit" />
                </DataSource>
	</Document>
	<Document type="subItem">
		<xi:include href="../../../components/ILIAS/Mail/LuceneDataSource.xml" />
	</Document>
</ObjectDefinition>
