У меня есть пользовательский портал, интегрированный с пользовательским сайтом, использующий Apex / Visualforce. Я хочу предоставить пользовательскую функцию смены пароля на странице Visualforce, которая включена для сайта / портала.
Метод статического класса Site вряд ли документирован, и после того, как я прочесал developerforce.com и вышел пустым, я решил попробовать здесь. Вот метод (найден в примере класса ChangePasswordController)
Site.changePassword(newPassword, verifyNewPassword, oldpassword);
Вот кикер. Независимо от того, какие данные я ввожу для этих значений, включая все политики паролей, метод просто возвращает ноль, а ничего не делает . Интересно, что в примере тестового метода, предоставленного Salesforce, assert буквально доказывает, что это так:
/**
* 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);
}
}
Заранее спасибо за любую помощь с этим!