Coverage Report - jp.co.y_net.amm.page.PasswordResetPage
 
Classes in this File Line Coverage Branch Coverage Complexity
PasswordResetPage
0%
0/15
N/A
0
PasswordResetPage$1
0%
0/5
0%
0/2
0
PasswordResetPage$2
0%
0/35
0%
0/24
0
 
 1  0
 package jp.co.y_net.amm.page;
 2  
 
 3  
 import jp.co.y_net.amm.common.AppLogger;
 4  
 import jp.co.y_net.amm.common.AppSendMail;
 5  
 import jp.co.y_net.amm.common.AppSendMail.MailSetting;
 6  
 import jp.co.y_net.amm.common.AppStringUtils;
 7  
 import jp.co.y_net.amm.common.ResourceReader;
 8  
 import jp.co.y_net.amm.dao.Org;
 9  
 import jp.co.y_net.amm.dao.Usr;
 10  
 
 11  
 import org.apache.wicket.markup.html.basic.Label;
 12  
 import org.apache.wicket.markup.html.form.Button;
 13  
 import org.apache.wicket.markup.html.form.Form;
 14  
 import org.apache.wicket.markup.html.form.TextField;
 15  
 import org.apache.wicket.markup.html.link.ExternalLink;
 16  
 import org.apache.wicket.markup.html.panel.FeedbackPanel;
 17  
 import org.apache.wicket.model.Model;
 18  
 import org.apache.wicket.model.PropertyModel;
 19  
 
 20  
 public class PasswordResetPage extends CommonFrameA {
 21  
         private static final long serialVersionUID = 1L;
 22  
 
 23  
         /*
 24  
      * 画面入力値
 25  
      */
 26  
     public String mailValue;
 27  
     
 28  
     /*
 29  
      * 画面の状態
 30  
      */
 31  0
     private boolean complete = false;
 32  
         
 33  0
         public PasswordResetPage() {
 34  
             
 35  
         /* トップへ戻る */
 36  0
         add(new ExternalLink("lnkTop", ResourceReader.getStringQuick("url.back.top")));
 37  
         
 38  0
         add(new FeedbackPanel("feedback"));
 39  
         
 40  0
         Form<Void> form  = new Form<Void>("form");
 41  0
         add(form);
 42  
         
 43  
 
 44  
         
 45  
         /* 完了メッセージ */
 46  0
         Model<String> resultMessageModel = new Model<String>() {
 47  
             @Override
 48  
             public String getObject() {
 49  0
                 if(complete) {
 50  0
                     return "パスワード再設定用のメールを送りました。ご確認ください。";
 51  
                 }
 52  0
                 return "登録したメールアドレスを入力してください。<br />"+
 53  
 "入力されたメールアドレス宛てにメールをお送りします。<br />" + 
 54  
 "メール内のリンクからパスワードを再設定してください。<br />";
 55  
             }
 56  
         };
 57  0
         final Label resutlMessage = new Label("resutlMessage", resultMessageModel);
 58  0
         resutlMessage.setEscapeModelStrings(false);
 59  0
         form.add(resutlMessage);
 60  
         
 61  
         /* 入力コンポーネント定義 ---------------------------------------------------------------------------------*/
 62  0
         TextField<String> mail = new TextField<String>("mail", new PropertyModel<String>(this, "mailValue"));
 63  0
         form.add(mail);
 64  
         
 65  
         /* 処理ボタン定義 --------------------------------------------------------------------------------------------*/
 66  0
         final Button btnSubmit = new Button("btnSubmit"){
 67  
             @Override
 68  
             public void onSubmit() {
 69  
                 
 70  
                 /* 入力値変換 */
 71  0
                 mailValue = AppStringUtils.trimHalf(mailValue);
 72  
                 
 73  
                 /* 入力値検査 */
 74  0
                 validItemMail(mailValue, "メールアドレス");
 75  
                 
 76  0
                 if(hasInputError()) return; // ここまででエラーチェック
 77  
                 
 78  0
                 Usr usr = usrDao.getByLoginid(mailValue);
 79  0
                 if(usr == null) {
 80  0
                     error("このメールアドレスは登録されていません。");
 81  
                 }
 82  
                 
 83  0
                 if(hasInputError()) return; // ここまででエラーチェック
 84  
                 
 85  0
                 if(usr.getStatus() == Usr.STATUS_退会) {
 86  0
                     error("退会しています。");
 87  
                 }
 88  0
                 if(usr.isログイン停止()) {
 89  0
                     error("ログイン停止中です。"); 
 90  
                 }
 91  0
                 Integer orgId = usr.getOrgid();
 92  0
                 Org org = orgDao.getByOrgid(orgId);
 93  0
                 if(org==null) {
 94  0
                     AppLogger.error(usr.getLoginid() + "に組織情報が紐づいていません。");
 95  0
                     error("エラーが発生しました。");
 96  
                 }
 97  0
                 if(org != null && org.is利用可能期間内() == false) {
 98  0
                     error("利用可能期間外です。");
 99  
                 }
 100  
                 
 101  0
                 if(hasInputError()) return; // ここまででエラーチェック
 102  
                 
 103  
                 /* 共通機能:パスワード登録チケット発行 からチケットを取得する */
 104  0
                 String random = passwordTicketManager.executeパスワードリセット(usr.getUsrid());
 105  
                 
 106  
                 /* パスワード再設定用メールを送信する */
 107  0
                 MailSetting setting = new MailSetting();
 108  0
                 setting.setTemplate(ResourceReader.getText("message/mail.resetpw"));
 109  0
                 setting.setMailTo(mailValue);
 110  0
                 String パスワード登録画面のURL = ResourceReader.getStringQuick("urlroot") + "entrypassword?value=" + random;
 111  0
                 setting.replace("パスワード登録画面のURL", パスワード登録画面のURL);
 112  0
                 boolean sendmailrsult = AppSendMail.send(setting);
 113  0
                 if(sendmailrsult == false) {
 114  0
                     error("メールの送信に失敗しました。");
 115  
                 }
 116  
                 
 117  
                 /* テスト自動化対応 */
 118  0
                 if (AppLogger.isDebug()) {
 119  
                     //info("メールに記載したURL【" + パスワード登録画面のURL + "】");
 120  0
                     addDebugUrl(パスワード登録画面のURL);
 121  
                 }
 122  
                 
 123  
                 /* 完了状態へ遷移 */
 124  0
                 complete = true;
 125  0
             }
 126  
             @Override
 127  
             public boolean isVisible() {
 128  
                 /* 完了後の状態ならボタンを表示しない */
 129  0
                 return complete == false;
 130  
             }
 131  
         };
 132  0
         form.add(btnSubmit);
 133  0
     }
 134  
 
 135  
         
 136  
         
 137  
 }