tfa_modals.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <div class="modal fade" id="YubiOTPModal" tabindex="-1" role="dialog" aria-labelledby="YubiOTPModalLabel">
  2. <div class="modal-dialog" role="document">
  3. <div class="modal-content">
  4. <div class="modal-header"><b><?=$lang['tfa']['yubi_otp'];?></b></div>
  5. <div class="modal-body">
  6. <form role="form" method="post">
  7. <div class="form-group">
  8. <input type="text" class="form-control" name="key_id" id="key_id" placeholder="<?=$lang['tfa']['key_id'];?>" autocomplete="off" required>
  9. </div>
  10. <hr>
  11. <p class="help-block"><?=$lang['tfa']['api_register'];?></p>
  12. <div class="form-group">
  13. <input type="text" class="form-control" name="yubico_id" id="yubico_id" placeholder="Yubico API ID" autocomplete="off" required>
  14. </div>
  15. <div class="form-group">
  16. <input type="text" class="form-control" name="yubico_key" id="yubico_key" placeholder="Yubico API Key" autocomplete="off" required>
  17. </div>
  18. <hr>
  19. <div class="form-group">
  20. <input type="password" class="form-control" name="confirm_password" id="confirm_password" placeholder="<?=$lang['user']['password_now'];?>" autocomplete="off" required>
  21. </div>
  22. <div class="form-group">
  23. <div class="input-group">
  24. <span class="input-group-addon" id="yubi-addon"><img alt="Yubicon Icon" src="/img/yubi.ico"></span>
  25. <input type="text" name="otp_token" class="form-control" placeholder="Touch Yubikey" aria-describedby="yubi-addon">
  26. <input type="hidden" name="tfa_method" value="yubi_otp">
  27. </div>
  28. </div>
  29. <button class="btn btn-sm btn-default" type="submit" name="set_tfa"><?=$lang['user']['save_changes'];?></button>
  30. </form>
  31. </div>
  32. </div>
  33. </div>
  34. </div>
  35. <div class="modal fade" id="U2FModal" tabindex="-1" role="dialog" aria-labelledby="U2FModalLabel">
  36. <div class="modal-dialog" role="document">
  37. <div class="modal-content">
  38. <div class="modal-header"><b><?=$lang['tfa']['u2f'];?></b></div>
  39. <div class="modal-body">
  40. <form role="form" method="post" id="u2f_reg_form">
  41. <div class="form-group">
  42. <input type="text" class="form-control" name="key_id" id="key_id" placeholder="<?=$lang['tfa']['key_id'];?>" autocomplete="off" required>
  43. </div>
  44. <div class="form-group">
  45. <input type="password" class="form-control" name="confirm_password" id="confirm_password" placeholder="<?=$lang['user']['password_now'];?>" autocomplete="off" required>
  46. </div>
  47. <hr>
  48. <p><?=$lang['tfa']['waiting_usb_register'];?></p>
  49. <div class="alert alert-danger" style="display:none" id="u2f_return_code"></div>
  50. <input type="hidden" name="token" id="u2f_register_data"/>
  51. <input type="hidden" name="tfa_method" value="u2f">
  52. <input type="hidden" name="set_tfa"/><br/>
  53. </form>
  54. </div>
  55. </div>
  56. </div>
  57. </div>
  58. <div class="modal fade" id="DisableTFAModal" tabindex="-1" role="dialog" aria-labelledby="DisableTFAModalLabel">
  59. <div class="modal-dialog" role="document">
  60. <div class="modal-content">
  61. <div class="modal-header"><b><?=$lang['tfa']['delete_tfa'];?></b></div>
  62. <div class="modal-body">
  63. <form role="form" method="post">
  64. <div class="input-group">
  65. <input type="password" class="form-control" name="confirm_password" id="confirm_password" placeholder="<?=$lang['user']['password_now'];?>" autocomplete="off" required>
  66. <span class="input-group-btn">
  67. <input type="hidden" name="tfa_method" value="none">
  68. <button class="btn btn-danger" type="submit" name="set_tfa"><?=$lang['tfa']['delete_tfa'];?></button>
  69. </span>
  70. </div>
  71. </form>
  72. </div>
  73. </div>
  74. </div>
  75. </div>
  76. <?php
  77. if (isset($_SESSION['pending_tfa_method'])):
  78. $tfa_method = $_SESSION['pending_tfa_method'];
  79. ?>
  80. <div class="modal fade" id="ConfirmTFAModal" tabindex="-1" role="dialog" aria-labelledby="ConfirmTFAModalLabel">
  81. <div class="modal-dialog" role="document">
  82. <div class="modal-content">
  83. <div class="modal-header"><button type="button" class="close" data-dismiss="modal">&times;</button><b><?=$lang['tfa'][$tfa_method];?></b></div>
  84. <div class="modal-body">
  85. <?php
  86. switch ($tfa_method) {
  87. case "yubi_otp":
  88. ?>
  89. <form role="form" method="post">
  90. <div class="form-group">
  91. <div class="input-group">
  92. <span class="input-group-addon" id="yubi-addon"><img alt="Yubicon Icon" src="/img/yubi.ico"></span>
  93. <input type="text" name="token" id="token" class="form-control" placeholder="Touch Yubikey" aria-describedby="yubi-addon">
  94. <input type="hidden" name="tfa_method" value="yubi_otp">
  95. </div>
  96. </div>
  97. <button class="btn btn-sm btn-default" type="submit" name="verify_tfa_login"><?=$lang['login']['login'];?></button>
  98. </form>
  99. <?php
  100. break;
  101. case "u2f":
  102. ?>
  103. <form role="form" method="post" id="u2f_auth_form">
  104. <p><?=$lang['tfa']['waiting_usb_auth'];?></p>
  105. <div class="alert alert-danger" style="display:none" id="u2f_return_code"></div>
  106. <input type="hidden" name="token" id="u2f_auth_data"/>
  107. <input type="hidden" name="tfa_method" value="u2f">
  108. <input type="hidden" name="verify_tfa_login"/><br/>
  109. </form>
  110. <?php
  111. break;
  112. case "totp":
  113. ?>
  114. <div class="empty"></div>
  115. <?php
  116. break;
  117. case "hotp":
  118. ?>
  119. <div class="empty"></div>
  120. <?php
  121. break;
  122. }
  123. ?>
  124. </div>
  125. </div>
  126. </div>
  127. </div>
  128. <?php
  129. endif;
  130. ?>