mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-11-26 19:54:46 +01:00
LSform :: validate: add $onlyIfPresent parameter
This parameter permit to handle only data of present element in POST data. Other element are not considered in the form.
This commit is contained in:
parent
3d9c11e12f
commit
a356555e0a
11 changed files with 76 additions and 31 deletions
|
@ -307,17 +307,19 @@ class LSform {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Verifie si le formulaire a été validé et que les données sont valides.
|
* Check form is submited and its data are validat
|
||||||
*
|
*
|
||||||
|
* @param[in] $onlyIfPresent boolean If true and data of this element is not present in POST data,
|
||||||
|
* just ignore it.
|
||||||
* @author Benjamin Renard <brenard@easter-eggs.com>
|
* @author Benjamin Renard <brenard@easter-eggs.com>
|
||||||
*
|
*
|
||||||
* @retval boolean true si le formulaire a été validé et que les données ont été validées, false sinon
|
* @retval boolean true if form is submited and its data are valid, false otherwise
|
||||||
*/
|
*/
|
||||||
public function validate(){
|
public function validate($onlyIfPresent=false){
|
||||||
if(!$this -> can_validate)
|
if(!$this -> can_validate)
|
||||||
return;
|
return;
|
||||||
if ($this -> isSubmit()) {
|
if ($this -> isSubmit()) {
|
||||||
if (!$this -> getPostData()) {
|
if (!$this -> getPostData($onlyIfPresent)) {
|
||||||
LSerror :: addErrorCode('LSform_01');
|
LSerror :: addErrorCode('LSform_01');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -436,16 +438,18 @@ class LSform {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Récupère les valeurs postées dans le formulaire
|
* Retreive POST data of the form
|
||||||
*
|
*
|
||||||
|
* @param[in] $onlyIfPresent boolean If true and data of this element is not present in POST data,
|
||||||
|
* just ignore it.
|
||||||
* @author Benjamin Renard <brenard@easter-eggs.com>
|
* @author Benjamin Renard <brenard@easter-eggs.com>
|
||||||
*
|
*
|
||||||
* @retval boolean true si les valeurs ont bien été récupérées, false sinon.
|
* @retval boolean true if POST data are retreived, false otherwise
|
||||||
*/
|
*/
|
||||||
public function getPostData() {
|
public function getPostData($onlyIfPresent=false) {
|
||||||
if (is_null($this -> dataEntryForm)) {
|
if (is_null($this -> dataEntryForm)) {
|
||||||
foreach($this -> elements as $element_name => $element) {
|
foreach($this -> elements as $element_name => $element) {
|
||||||
if( !($element -> getPostData($this -> _postData)) ) {
|
if( !($element -> getPostData($this -> _postData, $onlyIfPresent)) ) {
|
||||||
LSerror :: addErrorCode('LSform_02',$element_name);
|
LSerror :: addErrorCode('LSform_02',$element_name);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -467,7 +471,7 @@ class LSform {
|
||||||
if ((isset($this -> dataEntryFormConfig['requiredAllAttributes']) && $this -> dataEntryFormConfig['requiredAllAttributes']) || isset($this -> dataEntryFormConfig['requiredAttributes']) && is_array($this -> dataEntryFormConfig['requiredAttributes']) && in_array($elementName,$this -> dataEntryFormConfig['requiredAttributes'])) {
|
if ((isset($this -> dataEntryFormConfig['requiredAllAttributes']) && $this -> dataEntryFormConfig['requiredAllAttributes']) || isset($this -> dataEntryFormConfig['requiredAttributes']) && is_array($this -> dataEntryFormConfig['requiredAttributes']) && in_array($elementName,$this -> dataEntryFormConfig['requiredAttributes'])) {
|
||||||
$element -> setRequired();
|
$element -> setRequired();
|
||||||
}
|
}
|
||||||
if( !($element -> getPostData($this -> _postData)) ) {
|
if( !($element -> getPostData($this -> _postData, $onlyIfPresent)) ) {
|
||||||
LSerror :: addErrorCode('LSform_02',$element_name);
|
LSerror :: addErrorCode('LSform_02',$element_name);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -210,11 +210,13 @@ class LSformElement extends LSlog_staticLoggerClass {
|
||||||
* Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère
|
* Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère
|
||||||
* pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément
|
* pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément
|
||||||
*
|
*
|
||||||
* @param[] array Pointeur sur le tableau qui recupèrera la valeur.
|
* @param[in] &$return array Reference of the array for retreived values
|
||||||
|
* @param[in] $onlyIfPresent boolean If true and data of this element is not present in POST data,
|
||||||
|
* just ignore it.
|
||||||
*
|
*
|
||||||
* @retval boolean true si la valeur est présente en POST, false sinon
|
* @retval boolean true si la valeur est présente en POST, false sinon
|
||||||
*/
|
*/
|
||||||
public function getPostData(&$return) {
|
public function getPostData(&$return, $onlyIfPresent=false) {
|
||||||
if($this -> isFreeze()) {
|
if($this -> isFreeze()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -230,6 +232,10 @@ class LSformElement extends LSlog_staticLoggerClass {
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
elseif ($onlyIfPresent) {
|
||||||
|
self :: log_debug($this -> name.": not in POST data => ignore it");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
$return[$this -> name] = array();
|
$return[$this -> name] = array();
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -86,11 +86,13 @@ class LSformElement_image extends LSformElement {
|
||||||
* Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère
|
* Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère
|
||||||
* pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément
|
* pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément
|
||||||
*
|
*
|
||||||
* @param[] array Pointeur sur le tableau qui recupèrera la valeur.
|
* @param[in] &$return array Reference of the array for retreived values
|
||||||
|
* @param[in] $onlyIfPresent boolean If true and data of this element is not present in POST data,
|
||||||
|
* just ignore it.
|
||||||
*
|
*
|
||||||
* @retval boolean true si la valeur est présente en POST, false sinon
|
* @retval boolean true si la valeur est présente en POST, false sinon
|
||||||
*/
|
*/
|
||||||
public function getPostData(&$return) {
|
public function getPostData(&$return, $onlyIfPresent=false) {
|
||||||
if($this -> isFreeze()) {
|
if($this -> isFreeze()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -215,11 +215,13 @@ class LSformElement_jsonCompositeAttribute extends LSformElement {
|
||||||
* This method check present of this element's value in POST data and retreive
|
* This method check present of this element's value in POST data and retreive
|
||||||
* it to feed the array passed in paramater.
|
* it to feed the array passed in paramater.
|
||||||
*
|
*
|
||||||
* @param[] array Reference of the array for retreived values
|
* @param[in] &$return array Reference of the array for retreived values
|
||||||
|
* @param[in] $onlyIfPresent boolean If true and data of this element is not present in POST data,
|
||||||
|
* just ignore it.
|
||||||
*
|
*
|
||||||
* @retval boolean true if value is in POST data, false instead
|
* @retval boolean true if value is in POST data, false instead
|
||||||
*/
|
*/
|
||||||
public function getPostData(&$return) {
|
public function getPostData(&$return, $onlyIfPresent=false) {
|
||||||
if($this -> isFreeze()) {
|
if($this -> isFreeze()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,11 +95,13 @@ class LSformElement_labeledValue extends LSformElement {
|
||||||
* Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère
|
* Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère
|
||||||
* pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément
|
* pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément
|
||||||
*
|
*
|
||||||
* @param[] array Pointeur sur le tableau qui recupèrera la valeur.
|
* @param[in] &$return array Reference of the array for retreived values
|
||||||
|
* @param[in] $onlyIfPresent boolean If true and data of this element is not present in POST data,
|
||||||
|
* just ignore it.
|
||||||
*
|
*
|
||||||
* @retval boolean true si la valeur est présente en POST, false sinon
|
* @retval boolean true si la valeur est présente en POST, false sinon
|
||||||
*/
|
*/
|
||||||
public function getPostData(&$return) {
|
public function getPostData(&$return, $onlyIfPresent=false) {
|
||||||
if($this -> isFreeze()) {
|
if($this -> isFreeze()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -119,6 +121,10 @@ class LSformElement_labeledValue extends LSformElement {
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
elseif ($onlyIfPresent) {
|
||||||
|
self :: log_debug($this -> name.": not in POST data => ignore it");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
$return[$this -> name] = array();
|
$return[$this -> name] = array();
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -123,11 +123,13 @@ class LSformElement_mailQuota extends LSformElement {
|
||||||
* Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère
|
* Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère
|
||||||
* pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément
|
* pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément
|
||||||
*
|
*
|
||||||
* @param[] array Pointeur sur le tableau qui recupèrera la valeur.
|
* @param[in] &$return array Reference of the array for retreived values
|
||||||
|
* @param[in] $onlyIfPresent boolean If true and data of this element is not present in POST data,
|
||||||
|
* just ignore it.
|
||||||
*
|
*
|
||||||
* @retval boolean true si la valeur est présente en POST, false sinon
|
* @retval boolean true si la valeur est présente en POST, false sinon
|
||||||
*/
|
*/
|
||||||
public function getPostData(&$return) {
|
public function getPostData(&$return, $onlyIfPresent=false) {
|
||||||
if($this -> isFreeze()) {
|
if($this -> isFreeze()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -155,6 +157,10 @@ class LSformElement_mailQuota extends LSformElement {
|
||||||
$return[$this -> name]=$_POST[$this -> name];
|
$return[$this -> name]=$_POST[$this -> name];
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
elseif ($onlyIfPresent) {
|
||||||
|
self :: log_debug($this -> name.": not in POST data => ignore it");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
$return[$this -> name] = array();
|
$return[$this -> name] = array();
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -78,11 +78,13 @@ class LSformElement_maildir extends LSformElement_text {
|
||||||
* Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère
|
* Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère
|
||||||
* pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément
|
* pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément
|
||||||
*
|
*
|
||||||
* @param[] array Pointeur sur le tableau qui recupèrera la valeur.
|
* @param[in] &$return array Reference of the array for retreived values
|
||||||
|
* @param[in] $onlyIfPresent boolean If true and data of this element is not present in POST data,
|
||||||
|
* just ignore it.
|
||||||
*
|
*
|
||||||
* @retval boolean true si la valeur est présente en POST, false sinon
|
* @retval boolean true si la valeur est présente en POST, false sinon
|
||||||
*/
|
*/
|
||||||
public function getPostData(&$return) {
|
public function getPostData(&$return, $onlyIfPresent=false) {
|
||||||
// Récupère la valeur dans _POST, et les vérifie avec la fonction générale
|
// Récupère la valeur dans _POST, et les vérifie avec la fonction générale
|
||||||
$retval = parent :: getPostData($return);
|
$retval = parent :: getPostData($return);
|
||||||
|
|
||||||
|
|
|
@ -44,13 +44,15 @@ class LSformElement_password extends LSformElement {
|
||||||
* Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère
|
* Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère
|
||||||
* pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément
|
* pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément
|
||||||
*
|
*
|
||||||
* @param[] array Pointeur sur le tableau qui recupèrera la valeur.
|
* @param[in] &$return array Reference of the array for retreived values
|
||||||
|
* @param[in] $onlyIfPresent boolean If true and data of this element is not present in POST data,
|
||||||
|
* just ignore it.
|
||||||
*
|
*
|
||||||
* @retval boolean true si la valeur est présente en POST, false sinon
|
* @retval boolean true si la valeur est présente en POST, false sinon
|
||||||
*/
|
*/
|
||||||
public function getPostData(&$return) {
|
public function getPostData(&$return, $onlyIfPresent=false) {
|
||||||
// Récupère la valeur dans _POST, et les vérifie avec la fonction générale
|
// Récupère la valeur dans _POST, et les vérifie avec la fonction générale
|
||||||
$retval = parent :: getPostData($return);
|
$retval = parent :: getPostData($return, $onlyIfPresent);
|
||||||
// Si une valeur est recupérée
|
// Si une valeur est recupérée
|
||||||
if ($retval) {
|
if ($retval) {
|
||||||
$val = $this -> form -> ldapObject -> attrs[$this -> name] -> getValue();
|
$val = $this -> form -> ldapObject -> attrs[$this -> name] -> getValue();
|
||||||
|
|
|
@ -114,11 +114,13 @@ class LSformElement_quota extends LSformElement {
|
||||||
* Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère
|
* Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère
|
||||||
* pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément
|
* pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément
|
||||||
*
|
*
|
||||||
* @param[] array Pointeur sur le tableau qui recupèrera la valeur.
|
* @param[in] &$return array Reference of the array for retreived values
|
||||||
|
* @param[in] $onlyIfPresent boolean If true and data of this element is not present in POST data,
|
||||||
|
* just ignore it.
|
||||||
*
|
*
|
||||||
* @retval boolean true si la valeur est présente en POST, false sinon
|
* @retval boolean true si la valeur est présente en POST, false sinon
|
||||||
*/
|
*/
|
||||||
public function getPostData(&$return) {
|
public function getPostData(&$return, $onlyIfPresent=false) {
|
||||||
if($this -> isFreeze()) {
|
if($this -> isFreeze()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -142,6 +144,10 @@ class LSformElement_quota extends LSformElement {
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
elseif ($onlyIfPresent) {
|
||||||
|
self :: log_debug($this -> name.": not in POST data => ignore it");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
$return[$this -> name] = array();
|
$return[$this -> name] = array();
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -168,11 +168,18 @@ class LSformElement_supannCompositeAttribute extends LSformElement {
|
||||||
* Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère
|
* Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère
|
||||||
* pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément
|
* pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément
|
||||||
*
|
*
|
||||||
* @param[] array Pointeur sur le tableau qui recupèrera la valeur.
|
* @param[in] &$return array Reference of the array for retreived values
|
||||||
|
* @param[in] $onlyIfPresent boolean If true and data of this element is not present in POST data,
|
||||||
|
* just ignore it.
|
||||||
*
|
*
|
||||||
* @retval boolean true si la valeur est présente en POST, false sinon
|
* @retval boolean true si la valeur est présente en POST, false sinon
|
||||||
*/
|
*/
|
||||||
public function getPostData(&$return) {
|
public function getPostData(&$return, $onlyIfPresent=false) {
|
||||||
|
if ($onlyIfPresent) {
|
||||||
|
self :: log_warning("getPostData : does not support \$onlyIfPresent mode => Post data ignored");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if($this -> isFreeze()) {
|
if($this -> isFreeze()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -143,11 +143,13 @@ class LSformElement_valueWithUnit extends LSformElement {
|
||||||
* Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère
|
* Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère
|
||||||
* pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément
|
* pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément
|
||||||
*
|
*
|
||||||
* @param[] array Pointeur sur le tableau qui recupèrera la valeur.
|
* @param[in] &$return array Reference of the array for retreived values
|
||||||
|
* @param[in] $onlyIfPresent boolean If true and data of this element is not present in POST data,
|
||||||
|
* just ignore it.
|
||||||
*
|
*
|
||||||
* @retval boolean true si la valeur est présente en POST, false sinon
|
* @retval boolean true si la valeur est présente en POST, false sinon
|
||||||
*/
|
*/
|
||||||
public function getPostData(&$return) {
|
public function getPostData(&$return, $onlyIfPresent=false) {
|
||||||
if($this -> isFreeze()) {
|
if($this -> isFreeze()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue