Project

General

Profile

RequiredEtDisabled » History » Version 6

Version 5 (Joël Cuissinat, 05/31/2013 03:17 PM) → Version 6/6 (Emmanuel GARETTE, 06/26/2013 09:53 AM)

h1. RequiredEtDisabled

h2. Terminologie

Les termes employés ici sont les termes Tiramisu pour plus de clareté.

Le **hidden_if_(not_)in** de Créole s'appellera ici **disabled_if_(not_in)in**.

Un **disabled_if_in** place un **requires** sur la **variable** de type : nom de la **variable à tester**, la **valeur attendue** sur la variable à tester, et l' **action** correspondante.



h2. Description des cas d'utilisation

* Cas 1 :

Requires sur **adresse_ip_proxy** : si **activer_proxy** est à **non** la variable est **disabled**.

* Cas 2 :

Requires sur **activer_phpmyadmin** : si **activer_mysql** est à **non** la variable est **disabled**.
Requires sur **adresse_ip_phpmyadmin** : si **activer_phpmyadmin** est à **non** la variable est **disabled**.

* Cas @<condition name='hidden_if_in'>@ avec une variable désactivée (ou inexistante) en source :

Masquage de la famille *proxy authentifié 2* selon la valeur de *activer_squid_auth* dans 23_proxy.xml

* Cas @<fill name='calc_val'>@ avec une variable inexistante (ou désactivée) en paramètre :

Remplissage de *ip_serveur_ldap_1* avec *adresse_ip_ldap* dans 23_proxy.xml (eole-proxy:commit:fc461f3b)
Remplissage de *proxy_ldap_base_dn* avec *ldap_base_dn* dans 23_proxy.xml

* Cas @<fill name='calc_multi_val>@ avec variables inexistantes (ou désactivées) en paramètres :

Remplissage de *ssl_subjectaltname_ns* avec *revprox_domainname* et/ou *eolesso_adresse* dans 00_common.xml (#5485)



h2. Problématique

Dans Créole on utilise deux types de **requires** :

* @disabled_if_in@ : pour désactiver une variable ;
* @frozen_if_in@ @freeze_if_in@ : sert à la variable calculée pour passer une variable en mode automatique sans possibilité de changer la valeur.

Le problème se pose sur le cas 2. Si activer_phpmyadmin est désactivé parce que activer_mysql est à non, on ne peut pas faire le requires pour adresse_ip_phpmyadmin.

h2. Solutions

h3. Proposition 1 :

Faire une liste de propriété "transitive" lors des requires. Cela veut dire que si on veut déterminé si une **variable** est **disabled**, si la **variable à tester** est à disabled, la **variable** est **disabled** aussi.

Par contre, si la variable à une autre propriété, elle peut faire un raise.