質問

Apex/VisualForceを使用して、カスタムサイトに統合されたカスタムポータルがあります。サイト/ポータルで有効になっているVisualForceページでカスタムパスワード変更機能を提供したいと思います。

サイトの静的クラスの方法はほとんど文書化されておらず、DeveloperForce.comをcombingして空になった後、ここで試してみると思いました。これがメソッドです(サンプル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);                           
    }    
}

これについての支援をお寄せいただきありがとうございます!

役に立ちましたか?

解決

あなたはを持っていますか <apex:pageMessages> VFページの要素?おそらく、サイトクラスはエラーメッセージを設定している可能性がありますが、この要素がページに表示されない限り表示されません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top