<?xml version="1.0" encoding="ISO-8859-1"?>
<!--

    Copyright (C) 2009 eXo Platform SAS.

    This is free software; you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as
    published by the Free Software Foundation; either version 2.1 of
    the License, or (at your option) any later version.

    This software is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this software; if not, write to the Free
    Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
    02110-1301 USA, or see the FSF site: http://www.fsf.org.

-->
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.exoplatform.org/xml/ns/kernel_1_2.xsd http://www.exoplatform.org/xml/ns/kernel_1_2.xsd"
   xmlns="http://www.exoplatform.org/xml/ns/kernel_1_2.xsd">
   <component>
      <key>org.exoplatform.services.organization.OrganizationService</key>
      <type>org.exoplatform.services.organization.ldap.OrganizationServiceImpl</type>
      <component-plugins>
         <component-plugin>
            <name>init.service.listener</name>
            <set-method>addListenerPlugin</set-method>
            <type>org.exoplatform.services.organization.ldap.OrganizationLdapInitializer</type>
            <description>this listener populate organization ldap service create default dn</description>
         </component-plugin>
      </component-plugins>
      <init-params>
         <value-param>
            <name>ldap.userDN.key</name>
            <description>The key used to compose user DN</description>
            <value>cn</value>
         </value-param>

         <object-param>
            <name>ldap.attribute.mapping</name>
            <description>ldap attribute mapping</description>
            <object type="org.exoplatform.services.organization.ldap.LDAPAttributeMapping">
               <field name="userLDAPClasses">
                  <string>top,person,organizationalPerson,inetOrgPerson</string>
               </field>
               <field name="profileLDAPClasses">
                  <string>top,organizationalPerson</string>
               </field>
               <field name="groupLDAPClasses">
                  <string>top,organizationalUnit</string>
               </field>
               <field name="membershipTypeLDAPClasses">
                  <string>top,organizationalRole</string>
               </field>
               <field name="membershipLDAPClasses">
                  <string>top,groupOfNames</string>
               </field>

               <field name="baseURL">
                  <string>dc=exoplatform,dc=org</string>
               </field>
               <field name="groupsURL">
                  <string>ou=groups,ou=portal,dc=exoplatform,dc=org</string>
               </field>
               <field name="membershipTypeURL">
                  <string>ou=memberships,ou=portal,dc=exoplatform,dc=org</string>
               </field>
               <field name="userURL">
                  <string>ou=users,ou=portal,dc=exoplatform,dc=org</string>
               </field>
               <field name="profileURL">
                  <string>ou=profiles,ou=portal,dc=exoplatform,dc=org</string>
               </field>

               <field name="userUsernameAttr">
                  <string>uid</string>
               </field>
               <field name="userPassword">
                  <string>userPassword</string>
               </field>
               <field name="userFirstNameAttr">
                  <string>givenName</string>
               </field>
               <field name="userLastNameAttr">
                  <string>sn</string>
               </field>
               <field name="userDisplayNameAttr">
                  <string>displayName</string>
               </field>
               <field name="userMailAttr">
                  <string>mail</string>
               </field>
               <field name="userObjectClassFilter">
                  <string>objectClass=person</string>
               </field>

               <field name="membershipTypeMemberValue">
                  <string>member</string>
               </field>
               <field name="membershipTypeRoleNameAttr">
                  <string>cn</string>
               </field>
               <field name="membershipTypeNameAttr">
                  <string>cn</string>
               </field>
               <field name="membershipTypeObjectClassFilter">
                  <string>objectClass=organizationalRole</string>
               </field>
               <field name="membershiptypeObjectClass">
                  <string>organizationalRole</string>
               </field>

               <field name="groupObjectClass">
                  <string>organizationalUnit</string>
               </field>
               <field name="groupObjectClassFilter">
                  <string>objectClass=organizationalUnit</string>
               </field>

               <field name="membershipObjectClass">
                  <string>groupOfNames</string>
               </field>
               <field name="membershipObjectClassFilter">
                  <string>objectClass=groupOfNames</string>
               </field>

               <field name="ldapCreatedTimeStampAttr">
                  <string>createdTimeStamp</string>
               </field>
               <field name="ldapModifiedTimeStampAttr">
                  <string>modifiedTimeStamp</string>
               </field>
               <field name="ldapDescriptionAttr">
                  <string>description</string>
               </field>
            </object>
         </object-param>
      </init-params>
   </component>

   <external-component-plugins>
      <target-component>org.exoplatform.services.database.HibernateService</target-component>
      <component-plugin>
         <name>add.hibernate.mapping</name>
         <set-method>addPlugin</set-method>
         <type>org.exoplatform.services.database.impl.AddHibernateMappingPlugin</type>
         <init-params>
            <values-param>
               <name>hibernate.mapping</name>
               <value>org/exoplatform/services/organization/impl/UserProfileData.hbm.xml</value>
            </values-param>
         </init-params>
      </component-plugin>
   </external-component-plugins>

   <!-- for ldap clean database
   <external-component-plugins>
      <target-component>org.exoplatform.services.ldap.LDAPService</target-component>
      <component-plugin>
         <name>delete.object</name>
         <set-method>addDeleteObject</set-method>
         <type>org.exoplatform.services.ldap.DeleteObjectCommand</type>
         <init-params>
            <values-param>
               <name>objects.to.delete</name>
               <value>cn=demo,ou=users,ou=portal,dc=exoplatform,dc=org</value>
               <value>cn=test,ou=users,ou=portal,dc=exoplatform,dc=org</value>
               <value>cn=Benj,ou=users,ou=portal,dc=exoplatform,dc=org</value>
               <value>cn=tuan,ou=users,ou=portal,dc=exoplatform,dc=org</value>
            </values-param>
         </init-params>
      </component-plugin>
   </external-component-plugins>
   -->

</configuration>
