Avere difficoltà a far funzionare il sito.changepassword ()
-
27-10-2019 - |
Domanda
Ho un portale personalizzato integrato con un sito personalizzato, utilizzando Apex/VisualForce. Voglio fornire funzionalità di modifica della password personalizzata su una pagina VisualForce abilitata per il sito/portale.
Il metodo della classe statica del sito non è appena documentato e dopo aver pettinato lo svilupperforce.com e essere vuoto, ho pensato che avrei provato qui. Ecco il metodo (che si trova nella classe Esempio di ChangePasswordController)
Site.changePassword(newPassword, verifyNewPassword, oldpassword);
Ecco il kicker. Indipendentemente da ciò che i dati inserisco per questi valori, incluso il rispetto di tutte le politiche della password, il metodo restituisce semplicemente null e non fa nulla. È interessante notare che nel metodo di test di esempio fornito da Salesforce l'assert dimostra letteralmente questo come caso:
/**
* An apex page controller that exposes the change password functionality
*/
public with sharing class ChangePasswordController {
public String oldPassword {get; set;}
public String newPassword {get; set;}
public String verifyNewPassword {get; set;}
public PageReference changePassword() {
return Site.changePassword(newPassword, verifyNewPassword, oldpassword);
}
public ChangePasswordController() {}
public static testMethod void testChangePasswordController() {
// Instantiate a new controller with all parameters in the page
ChangePasswordController controller = new ChangePasswordController();
controller.oldPassword = '123456';
controller.newPassword = 'qwerty1';
controller.verifyNewPassword = 'qwerty1';
System.assertEquals(controller.changePassword(),null);
}
}
Grazie in anticipo per qualsiasi assistenza con questo!
Soluzione
Hai un <apex:pageMessages>
Elemento sulla tua pagina VF? Forse la classe del sito sta impostando un messaggio di errore, che non vedresti a meno che tu non abbia questo elemento nella pagina.