Das Problem mit dem Passwort-Formularelement habe ich wie folgt gelöst:
Änderung in der Klasse:
rex_xform_password Zeile 21:
ersetzen mit:
Und folgende Klasse im ordner actions anlegen:
Code: Alles auswählen
<?php
/**
* Erweiterung der Klasse rex_xform_action_abstract um die Möglichleit Werte zu verschlüsseln
* @package xForm addon v1.4.1
* @version $id class.xform_action_pswencrypt.inc.php v1.0 05.03.2010 Exp $
*/
class rex_xform_action_encryptpsw extends rex_xform_action_abstract {
/**
* Verschlüsselt den Wert label mit der angegebenen Funktion,
* sollte der Wert label nicht vorhanden/gefüllt sein, so wird der Wert aus dem jeweiligen Array
* gelöscht, und nicht weiterverarbeitet.
*/
function execute(){
$str_label = $this->action["elements"][2]; //Was soll verschlüsselt werden
$str_encrypt = $this->action["elements"][3]; //Verschlüsselungsfunction sha1()|md5()
//Verschlüsseln von sql-werten
foreach($this->elements_sql as $sql_label=>$value){
if($str_label == $sql_label){
if($value != ''){
$this->elements_sql[$sql_label] = $str_encrypt($value);
}else{
unset($this->elements_sql[$sql_label]);
}
}
}
//Verschlüsseln von email_werten
foreach($this->elements_email as $email_label=>$value){
if($str_label == $email_label){
if($value !== ''){
$this->elements_email[$email_label] = $str_encrypt($value);
}else{
unset($this->elements_email[$email_label]);
}
}
}
return;
}
function getDesription(){
return "action|encryptpsw|label|md5 OR sha1";
}
}
?>
Bei dieser Klasse wird nicht überprüft ob der Benutzer das passwort ändern darf, oder ob er die Änderung bestätigt hat. Die kann man aber leicht mit der validate klasse compare erledigene
Vieleicht kann es ja noch jemand brauchen
MfG
Stefan