<?xml version="1.0" encoding="utf-8"?>
<creole>
    <files>
        <file filelist='profilcache' name='/usr/share/sso/profilcacheconfig.py' mkdir='True' rm='True'/>
        <file filelist='profilcachedb' name='/etc/eole/eole-db.d/profilcache-db.yml' rm='True' mkdir='True'/>
           <!-- fichiers de cron de profilcache -->
        <file filelist='profilcachecron' name='/etc/cron.d/profilcache' source='profilcache-cron.conf' rm='True'/>
    </files>

	<containers>
		<container name='web'>
            <file filelist='profilcacheweb' name='/var/www/html/posh-profil/include/profilcache.php' source='profilcache-synchro.php' rm='True' mkdir='True'/>
		</container>
	</containers>

    <variables>
        <family name='eole sso'>
            <variable name='profilcache_active' type='oui/non' description='Activer ProfilCache'  mandatory='True' mode='expert'>
                <value>non</value>
            </variable>
            <variable name='profilcache_filtre' type='string' description='Filtre LDAP ProfilCache'  mandatory='True' mode='expert'>
                <value>(&amp;(objectClass=person)(finfonction=X)(!(fredurne=X)))</value>
            </variable>
            <variable name='profilcache_apps' type='string' multi='True' description='Apps ProfilCache'  mandatory='True' mode='expert'>
                <value>default</value>
                <value>posh</value>
            </variable>
            <variable name='profilcache_baseDN' type='string' description='Base DN ProfilCache' mode='expert'></variable>
            <variable name='profilcache_auto' type='oui/non' description='ProfilCache : mode auto'  mandatory='True' mode='expert'>
                <value>oui</value>
            </variable>
            <variable type='oui/non' name='test_profilcache_db' description='Variable pour ne pas génére les fichiers de la base de donnée'/>
            <variable type='oui/non' name='test_profilcache_web' description='Variable pour ne pas génére les fichiers web de la base de donnée'/>
        </family>

        <family name='profilcache' mode='expert'>
            <variable type='string' name='profilcache_db_mode' description='Serveur de bases de données à utiliser'/>
            <variable type='string' name='profilcache_dbserver' description='Adresse du serveur de base de données'/>
            <variable type='number' name='profilcache_dbport' description="Port d'écoute du serveur de base de données"/>
            <variable type='string' name='profilcache_allow_hosts' description="Hôtes autorisés à utiliser la base de données" multi='True'/>
            <variable type='string' name='profilcache_dbuser' description='Utilisateur du serveur de base de données'/>
            <variable type='string' name='profilcache_dbpass' description='Fichier de mot de passe du serveur'/>
        </family>

        <separators>
            <separator name="profilcache_active">Gestion du Cache Profil</separator>
        </separators>
    </variables>

    <constraints>
        <condition name='disabled_if_in' source='profilcache_active'>
            <param>non</param>
            <target type='filelist'>profilcache</target>
            <target type='filelist'>profilcachedb</target>
            <target type='filelist'>profilcachecron</target>
            <target type='filelist'>profilcacheweb</target>
            <target type='variable'>profilcache_filtre</target>
            <target type='variable'>profilcache_apps</target>
            <target type='variable'>profilcache_baseDN</target>
            <target type='variable'>profilcache_auto</target>
        </condition>

        <condition name='disabled_if_in' source='profilcache_auto'>
            <param>non</param>
            <target type='filelist'>profilcachecron</target>
        </condition>

        <auto name='calc_multi_condition' target='test_profilcache_web'>
            <param>oui</param>
            <param type='eole' name='condition_1' optional='True' hidden='False'>activer_poshprofil</param>
            <param name='match'>oui</param>
            <param name='mismatch'>non</param>
        </auto>

        <condition name='disabled_if_in' source='test_profilcache_web'>
            <param>non</param>
            <target type='filelist'>profilcacheweb</target>
        </condition>


        <auto name='calc_multi_condition' target='test_profilcache_db'>
            <param>oui</param>
            <param type='eole' name='condition_1' optional='True' hidden='False'>activer_poshprofil</param>
            <param type='eole' name='condition_2' optional='True' hidden='False'>profilcache_active</param>
            <param name="operator">OR</param>
            <param name='match'>oui</param>
            <param name='mismatch'>non</param>
        </auto>

        <condition name='disabled_if_in' source='test_profilcache_db'>
            <param>non</param>
            <target type='filelist'>profilcachedb</target>
        </condition>

        <check name="valid_enum" target="profilcache_apps">
            <param type="python">eosfunc.list_files('/usr/share/sso/app_filters/', '*.ini', stripext=True, default=['default','posh'],exception='_apps')</param>
            <param name="checkval">False</param>
        </check>

        <check name='valid_enum' target='profilcache_db_mode'>
            <param>['default', 'externe', 'local']</param>
        </check>
        <condition name='disabled_if_in' source='profilcache_db_mode'>
            <param>local</param>
            <target type='variable'>profilcache_dbserver</target>
            <target type='variable'>profilcache_dbuser</target>
            <target type='variable'>profilcache_dbport</target>
            <target type='variable'>profilcache_dbpass</target>
        </condition>
        <condition name='disabled_if_in' source='profilcache_db_mode'>
            <param>default</param>
            <target type='variable'>profilcache_dbserver</target>
            <target type='variable'>profilcache_dbuser</target>
            <target type='variable'>profilcache_dbport</target>
            <target type='variable'>profilcache_dbpass</target>
            <target type='variable'>profilcache_allow_hosts</target>
        </condition>
    </constraints>

    <help>
        <variable name='profilcache_active'>Activer le cache des profils (attributs calculés) pour les applications envole</variable>
        <variable name='profilcache_filtre'>Filtre de recherche LDAP pour ProfilCache</variable>
        <variable name='profilcache_apps'>Choix des applications a cacher (filtres définis dans /usr/share/sso/app_filters) - Ne pas choisir 'Applications'</variable>
        <variable name='profilcache_baseDN'>Base de recherche LDAP pour ProfilCache (optionnel). Prend par défaut la valeur définie dans la configuration de EoleSSO.</variable>
        <variable name='profilcache_auto'>Par défautà oui : profilcache s'exécutera toutes les 48H à 23h27. Si mis à non, il faudra lancer le script manuellement</variable>
    </help>
</creole>
