Magento Hilfe: Extension Manage Customer Attributes – “Invalid current password” “Aktuelles Passwort ungültig”

Dieser Beitrag beschreibt die Lösung für ein Bug und Lösung über den ich bei einem aktuellen Kundenprojekt gestolpert bin.

Falls es geholfen hat oder Fragen sind, gerne in die Kommentare.

Welche Magento Erweiterung?

Nach der Installation dieser Erweiterung von “Manage Customer Attributes” von Clarion Technologies (https://www.magentocommerce.com/magento-connect/manage-customer-attributes-1.html) kam es zu folgendem Verhalten.

Im Bereich des Kundenkontos gibt es die Möglichkeit, dass der Kunde selbst sein Passwort ändert. Statt jedoch nur bei einer gewünschten Änderung das Passwort abzufragen wurde dies laufend abgefragt. Dies führte zur Fehlermeldung.

“Invalid current password” “Aktuelles Passwort ungültig”.

magento-Aktuelles-Passwort-ungueltig-clarion-magento-custom-attribute-manage-bug.

Der Grund für die Fehlermeldung ist eigentlich kein Fehler/Bug sondern ein neues Sicherheitsfeature von Magento. Es ist nicht mehr möglich seine eigenen Kundendaten zu ändern ohne das Passwort einzugeben. Das macht Sinn, da sonst jeder Hans und Franz bei einem eingeloggten Browser den Namen oder auch E-Mail anpassen könnte.

Nun fragt Magento bei jeder Änderung der Kerndaten das Passwort ab.

Ursache:

Ursache für den Fehler ist dass “Manage Customer Attributes” von Clarion Technologies das default “edit.phtml” Template überschreibt, aber die neuste Änderung am Template von Magento 1.9.3.1 noch nicht drin hat.

Lösung:

einfach aus dem default Template die Formularbereich kopieren und in das Clarion Template einfügen

Dies ergänzt das neue Pflichtfeld zur Abfrage des Passworts des Kunden. Ergebniss sieht so aus:

magento-Aktuelles-Passwort-ungueltig-clarion-magento-custom-attribute-manage-bug-loesung

 

Hier die anzupassende Datei

\app\design\frontend\base\default\template\clarion\customerattribute\form\edit.phtml

Hier die funktionierende Datei aus der es zu kopieren gilt

\app\design\frontend\base\default\template\customer\form\edit.phtml

(1) ca. Zeile 47

            <li class=”control”>
<input type=”checkbox” name=”change_password” id=”change_password” value=”1″ onclick=”setPasswordForm(this.checked)” title=”<?php echo $this->__(‘Change Password’) ?>”<?php if($this->getCustomer()->getChangePassword()==1): ?> checked=”checked”<?php endif; ?> class=”checkbox” /><label for=”change_password”><?php echo $this->__(‘Change Password’) ?></label>
</li>

ersetzen mit

           <li>
<label for=”current_password” class=”required”><em>*</em><?php echo Mage::helper(‘core’)->quoteEscape($this->__(‘Current Password’)) ?></label>
<div class=”input-box”>
<!– This is a dummy hidden field to trick firefox from auto filling the password –>
<input type=”text” class=”input-text no-display” name=”dummy” id=”dummy” />
<input type=”password” title=”<?php echo Mage::helper(‘core’)->quoteEscape($this->__(‘Current Password’)) ?>” class=”input-text required-entry” name=”current_password” id=”current_password” />
</div>
</li>
<li class=”control”>
<input type=”checkbox” name=”change_password” id=”change_password” value=”1″ onclick=”setPasswordForm(this.checked)” title=”<?php echo Mage::helper(‘core’)->quoteEscape($this->__(‘Change Password’)) ?>”<?php if($this->getCustomer()->getChangePassword()==1): ?> checked=”checked”<?php endif; ?> class=”checkbox” /><label for=”change_password”><?php echo $this->__(‘Change Password’) ?></label>
</li>

(2) selbe Datei ca. Zeile 52

    <div class=”fieldset” style=”display:none;”>
<h2 class=”legend”><?php echo $this->__(‘Change Password’) ?></h2>
<ul class=”form-list”>
<li>
<label for=”current_password” class=”required”><em>*</em><?php echo $this->__(‘Current Password’) ?></label>
<div class=”input-box”>
<!– This is a dummy hidden field to trick firefox from auto filling the password –>
<input type=”text” class=”input-text no-display” name=”dummy” id=”dummy” />
<input type=”password” title=”<?php echo $this->__(‘Current Password’) ?>” class=”input-text” name=”current_password” id=”current_password” />
</div>
</li>
<li class=”fields”>
<div class=”field”>
<label for=”password” class=”required”><em>*</em><?php echo $this->__(‘New Password’) ?></label>
<div class=”input-box”>
<input type=”password” title=”<?php echo $this->__(‘New Password’) ?>” class=”input-text validate-password” name=”password” id=”password” />
</div>
</div>
<div class=”field”>
<label for=”confirmation” class=”required”><em>*</em><?php echo $this->__(‘Confirm New Password’) ?></label>
<div class=”input-box”>
<input type=”password” title=”<?php echo $this->__(‘Confirm New Password’) ?>” class=”input-text validate-cpassword” name=”confirmation” id=”confirmation” />
</div>
</div>
</li>
</ul>
</div>

ersetzen mit:

    <div class=”fieldset” style=”display:none;”>
<h2 class=”legend”><?php echo $this->__(‘Change Password’) ?></h2>
<ul class=”form-list”>
<li class=”fields”>
<div class=”field”>
<label for=”password” class=”required”><em>*</em><?php echo $this->__(‘New Password’) ?></label>
<div class=”input-box”>
<input type=”password” title=”<?php echo Mage::helper(‘core’)->quoteEscape($this->__(‘New Password’)) ?>” class=”input-text required-entry validate-password” name=”password” id=”password” />
</div>
</div>
<div class=”field”>
<label for=”confirmation” class=”required”><em>*</em><?php echo $this->__(‘Confirm New Password’) ?></label>
<div class=”input-box”>
<input type=”password” title=”<?php echo Mage::helper(‘core’)->quoteEscape($this->__(‘Confirm New Password’)) ?>” class=”input-text required-entry validate-cpassword” name=”confirmation” id=”confirmation” />
</div>
</div>
</li>
</ul>
</div>

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.