tab-user-auth.twig 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. <div role="tabpanel" class="tab-pane active" id="tab-user-auth">
  2. <div class="panel panel-default">
  3. <div class="panel-heading">{{ lang.user.mailbox_general }}</div>
  4. <div class="panel-body">
  5. {% if mailboxdata.attributes.force_pw_update == '1' %}
  6. <div class="alert alert-danger">{{ lang.user.force_pw_update|raw }}</div>
  7. {% endif %}
  8. {% if not skip_sogo %}
  9. <div class="row">
  10. <div class="hidden-xs col-md-3 col-xs-5 text-right"></div>
  11. <div class="col-md-3 col-xs-12">
  12. {% if dual_login and allow_admin_email_login == 'n' or mailboxdata.attributes.force_pw_update == '1' %}
  13. <button disabled class="btn btn-default btn-block btn-xs-lg">
  14. <i class="bi bi-inbox-fill"></i> {{ lang.user.open_webmail_sso }}
  15. </button>
  16. {% else %}
  17. <a target="_blank" href="/sogo-auth.php?login={{ mailcow_cc_username }}" role="button" class="btn btn-default btn-block btn-xs-lg">
  18. <i class="bi bi-inbox-fill"></i> {{ lang.user.open_webmail_sso }}
  19. </a>
  20. {% endif %}
  21. </div>
  22. </div>
  23. <hr>
  24. <div class="row">
  25. <div class="hidden-xs col-md-3 col-xs-5 text-right"></div>
  26. <div class="col-md-9 col-xs-12">
  27. <p class="help-block help-block-mt-0">{{ lang.user.direct_protocol_access|raw }}</p>
  28. {% if mailboxdata.attributes.imap_access == 1 %}<div class="label label-success label-protocol-access">IMAP <i class="bi bi-check-lg"></i></div>{% else %}<div class="label label-danger label-protocol-access">IMAP <i class="bi bi-x-lg"></i></div>{% endif %}
  29. {% if mailboxdata.attributes.smtp_access == 1 %}<div class="label label-success label-protocol-access">SMTP <i class="bi bi-check-lg"></i></div>{% else %}<div class="label label-danger label-protocol-access">SMTP <i class="bi bi-x-lg"></i></div>{% endif %}
  30. {% if mailboxdata.attributes.sieve_access == 1 %}<div class="label label-success label-protocol-access">Sieve <i class="bi bi-check-lg"></i></div>{% else %}<div class="label label-danger label-protocol-access">Sieve <i class="bi bi-x-lg"></i></div>{% endif %}
  31. {% if mailboxdata.attributes.pop3_access == 1 %}<div class="label label-success label-protocol-access">POP3 <i class="bi bi-check-lg"></i></div>{% else %}<div class="label label-danger label-protocol-access">POP3 <i class="bi bi-x-lg"></i></div>{% endif %}
  32. {% if mailboxdata.attributes.sogo_access == 1 %}<div class="label label-success label-protocol-access">SOGo <i class="bi bi-check-lg"></i></div>{% else %}<div class="label label-danger label-protocol-access">SOGo <i class="bi bi-x-lg"></i></div>{% endif %}
  33. </div>
  34. </div>
  35. <hr>
  36. {% endif %}
  37. <div class="row">
  38. <div class="col-md-3 col-xs-12 text-right text-xs-left space20">{{ lang.user.in_use }}:</div>
  39. <div class="col-md-5 col-xs-12">
  40. <div class="progress">
  41. <div class="progress-bar progress-bar-{{ mailboxdata.percent_class }}" role="progressbar" aria-valuenow="{{ mailboxdata.percent_in_use }}" aria-valuemin="0" aria-valuemax="100" style="min-width:2em;width: {{ mailboxdata.percent_in_use }}%;">
  42. {{ mailboxdata.percent_in_use }}%
  43. </div>
  44. </div>
  45. <p>{{ mailboxdata.quota_used|formatBytes(2) }} / {% if mailboxdata.quota == 0 %}∞{% else %}{{ mailboxdata.quota|formatBytes(2) }}{% endif %}<br>{{ mailboxdata.messages }} {{ lang.user.messages }}</p>
  46. <hr>
  47. <p><a href="#pwChangeModal" data-toggle="modal"><i class="bi bi-pencil-fill"></i> {{ lang.user.change_password }}</a></p>
  48. </div>
  49. </div>
  50. <hr>
  51. {# FIDO2 #}
  52. <div class="row">
  53. <div class="col-sm-3 col-xs-12 text-right text-xs-left">
  54. <p><i class="bi bi-shield-fill-check"></i> {{ lang.fido2.fido2_auth }}</p>
  55. </div>
  56. </div>
  57. <div class="row">
  58. <div class="col-sm-3 col-xs-12 text-right text-xs-left space20">
  59. {{ lang.fido2.known_ids }}:
  60. </div>
  61. <div class="col-sm-9 col-xs-12">
  62. <div class="table-responsive">
  63. <table class="table table-striped table-hover table-condensed" id="fido2_keys">
  64. <tr>
  65. <th>ID</th>
  66. <th style="min-width:240px;text-align: right">{{ lang.admin.action }}</th>
  67. </tr>
  68. {% include 'fido2.twig' %}
  69. </table>
  70. </div>
  71. <br>
  72. </div>
  73. </div>
  74. <div class="row">
  75. <div class="col-sm-offset-3 col-sm-9">
  76. <div class="btn-group nowrap">
  77. <button class="btn btn-sm btn-primary visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline" id="register-fido2">{{ lang.fido2.set_fido2 }}</button>
  78. <button type="button" class="btn btn-sm btn-xs-lg btn-primary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  79. <span class="caret"></span>
  80. </button>
  81. <ul class="dropdown-menu">
  82. <li><a href="#" id="register-fido2-touchid" style="line-height:1.4;"><i class="bi bi-apple"></i> {{ lang.fido2.set_fido2_touchid }}</a></li>
  83. </ul>
  84. </div>
  85. </div>
  86. </div>
  87. <br>
  88. <div class="row" id="status-fido2">
  89. <div class="col-sm-3 col-xs-5 text-right">{{ lang.fido2.register_status }}:</div>
  90. <div class="col-sm-9 col-xs-7">
  91. <div id="fido2-alerts">-</div>
  92. </div>
  93. <br>
  94. </div>
  95. <hr>
  96. <div class="row">
  97. <div class="col-md-3 col-xs-12 text-right text-xs-left space20"><i class="bi bi-file-earmark-text"></i> {{ lang.user.apple_connection_profile }}:</div>
  98. <div class="col-md-9 col-xs-12">
  99. <p><i class="bi bi-file-earmark-post"></i> <a href="/mobileconfig.php?only_email">{{ lang.user.email }}</a> <small>IMAP, SMTP</small></p>
  100. <p class="help-block">{{ lang.user.apple_connection_profile_mailonly }}</p>
  101. {% if not skip_sogo %}
  102. <p><i class="bi bi-file-earmark-post"></i> <a href="/mobileconfig.php">{{ lang.user.email_and_dav }}</a> <small>IMAP, SMTP, Cal/CardDAV</small></p>
  103. <p class="help-block">{{ lang.user.apple_connection_profile_complete }}</p>
  104. {% endif %}
  105. </div>
  106. </div>
  107. <div class="row">
  108. <div class="col-md-3 col-xs-12 text-right text-xs-left space20"><i class="bi bi-file-earmark-text"></i> {{ lang.user.apple_connection_profile }}<br />{{ lang.user.with_app_password }}:</div>
  109. <div class="col-md-9 col-xs-12">
  110. <p><i class="bi bi-file-earmark-post"></i> <a href="/mobileconfig.php?only_email&amp;app_password">{{ lang.user.email }}</a> <small>IMAP, SMTP</small></p>
  111. <p class="help-block">{{ lang.user.apple_connection_profile_mailonly }} {{ lang.user.apple_connection_profile_with_app_password }}</p>
  112. {% if not skip_sogo %}
  113. <p><i class="bi bi-file-earmark-post"></i> <a href="/mobileconfig.php?app_password">{{ lang.user.email_and_dav }}</a> <small>IMAP, SMTP, Cal/CardDAV</small></p>
  114. <p class="help-block">{{ lang.user.apple_connection_profile_complete }} {{ lang.user.apple_connection_profile_with_app_password }}</p>
  115. {% endif %}
  116. </div>
  117. </div>
  118. <hr>
  119. <div class="row">
  120. <div class="col-sm-offset-3 col-sm-9">
  121. <p><a target="_blank" href="https://mailcow.github.io/mailcow-dockerized-docs/client/client/#{{ clientconfigstr }}">[{{ lang.user.client_configuration }}]</a></p>
  122. <p><a href="#userFilterModal" data-toggle="modal">[{{ lang.user.show_sieve_filters }}]</a></p>
  123. <hr>
  124. <h4 class="recent-login-success pull-left">{{ lang.user.recent_successful_connections }}</h4>
  125. <div class="dropdown pull-left pull-xs-right">
  126. <button class="btn btn-default btn-xs btn-xs-lg dropdown-toggle" type="button" id="history_sasl_days" data-toggle="dropdown">{{ lang.user.login_history }} <span class="caret"></span></button>
  127. <ul class="dropdown-menu">
  128. <li class="login-history" data-days="1"><a href="#">1 {{ lang.user.day }}</a></li>
  129. <li class="login-history active" data-days="7"><a href="#">1 {{ lang.user.week }}</a></li>
  130. <li class="login-history" data-days="14"><a href="#">2 {{ lang.user.weeks }}</a></li>
  131. <li class="login-history" data-days="31"><a href="#">1 {{ lang.user.month }}</a></li>
  132. </ul>
  133. </div>
  134. <div class="clearfix"></div>
  135. <div class="last-login"></div>
  136. <span class="clear-last-logins">
  137. {{ lang.user.clear_recent_successful_connections }}
  138. </span>
  139. </div>
  140. </div>
  141. </div>
  142. </div>
  143. </div>