Tener dificultad para que el sitio.changepassword () funcione
-
27-10-2019 - |
Pregunta
Tengo un portal personalizado integrado con un sitio personalizado, utilizando Apex/Visualforce. Quiero proporcionar funcionalidad de cambio de contraseña personalizada en una página de Visualforce que esté habilitada para el sitio/portal.
El método de clase estática del sitio apenas está documentado y después de peinar desarrollador de desarrollador.com y aparecer vacío, pensé que lo intentaría aquí. Aquí está el método (que se encuentra en la clase ChangePassWordController de muestra)
Site.changePassword(newPassword, verifyNewPassword, oldpassword);
Aquí está el pateador. Independientemente de los datos que ingreso para estos valores, incluido el respeto de todas las políticas de contraseña, el método simplemente devuelve nulo y no hace nada. Es interesante que en el método de prueba de muestra proporcionado por Salesforce, el afirmación demuestre que este es el 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);
}
}
¡Gracias de antemano por cualquier ayuda con esto!
Solución
Tienes un <apex:pageMessages>
elemento en su página de VF? Quizás la clase de sitio está configurando un mensaje de error, que no vería a menos que tenga este elemento en la página.