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