##### Coverage Report - jp.co.y_net.amm.page.PasswordResetPage

Classes in this File | Line Coverage | Branch Coverage | Complexity

PasswordResetPage

0% | 0/15

N/A | N/A

0.0;0

PasswordResetPage$1

0% | 0/5

0% | 0/2

0.0;0

PasswordResetPage$2

0% | 0/35

0% | 0/24

0.0;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

     }