{% extends 'edit.twig' %} {% block inner_content %} {% if result %} <ul class="nav nav-tabs" role="tablist"> <li role="presentation" class="nav-item"><button class="nav-link active" data-bs-toggle="tab" data-bs-target="#medit">{{ lang.edit.mailbox }}</button></li> <li role="presentation" class="nav-item"><button class="nav-link" data-bs-toggle="tab" data-bs-target="#macl">{{ lang.edit.acl }}</button></li> <li role="presentation" class="nav-item"><button class="nav-link" data-bs-toggle="tab" data-bs-target="#mrl">{{ lang.edit.ratelimit }}</button></li> </ul> <hr> <div class="tab-content"> <div id="medit" class="tab-pane fade show active" role="tabpanel" aria-labelledby="mailbox-edit"> <form class="form-horizontal" data-id="editmailbox" role="form" method="post"> <input type="hidden" value="default" name="sender_acl"> <input type="hidden" value="0" name="force_pw_update"> <input type="hidden" value="0" name="sogo_access"> <input type="hidden" value="0" name="protocol_access"> <div class="row mb-2"> <label class="control-label col-sm-2" for="quota"> {{ lang.edit.quota_mb }} </label> <div class="col-sm-10"> <input type="number" name="quota" style="width:100%" min="0" max="{{ (result.max_new_quota / 1048576) }}" value="{{ (result.quota / 1048576) }}" class="form-control"> <small class="text-muted">0 = ∞</small> </div> </div> <div class="row mb-2"> <label class="control-label col-sm-2">{{ lang.user.quarantine_notification }}</label> <div class="col-sm-10"> <div class="btn-group" data-acl="{{ acl.quarantine_notification }}"> <button type="button" class="btn btn-sm btn-xs-quart d-block d-sm-inline btn-secondary{% if quarantine_notification == 'never' %} active{% endif %}" data-action="edit_selected" data-item="{{ mailbox }}" data-id="quarantine_notification" data-api-url='edit/quarantine_notification' data-api-attr='{"quarantine_notification":"never"}'>{{ lang.user.never }}</button> <button type="button" class="btn btn-sm btn-xs-quart d-block d-sm-inline btn-secondary{% if quarantine_notification == 'hourly' %} active{% endif %}" data-action="edit_selected" data-item="{{ mailbox }}" data-id="quarantine_notification" data-api-url='edit/quarantine_notification' data-api-attr='{"quarantine_notification":"hourly"}'>{{ lang.user.hourly }}</button> <button type="button" class="btn btn-sm btn-xs-quart d-block d-sm-inline btn-secondary{% if quarantine_notification == 'daily' %} active{% endif %}" data-action="edit_selected" data-item="{{ mailbox }}" data-id="quarantine_notification" data-api-url='edit/quarantine_notification' data-api-attr='{"quarantine_notification":"daily"}'>{{ lang.user.daily }}</button> <button type="button" class="btn btn-sm btn-xs-quart d-block d-sm-inline btn-secondary{% if quarantine_notification == 'weekly' %} active{% endif %}" data-action="edit_selected" data-item="{{ mailbox }}" data-id="quarantine_notification" data-api-url='edit/quarantine_notification' data-api-attr='{"quarantine_notification":"weekly"}'>{{ lang.user.weekly }}</button> </div> <p class="text-muted"><small>{{ lang.user.quarantine_notification_info }}</small></p> </div> </div> <div class="row mb-2"> <label class="control-label col-sm-2">{{ lang.user.quarantine_category }}</label> <div class="col-sm-10"> <div class="btn-group" data-acl="{{ acl.quarantine_category }}"> <button type="button" class="btn btn-sm btn-xs-third d-block d-sm-inline btn-secondary{% if quarantine_category == 'reject' %} active{% endif %}" data-action="edit_selected" data-item="{{ mailbox }}" data-id="quarantine_category" data-api-url='edit/quarantine_category' data-api-attr='{"quarantine_category":"reject"}'>{{ lang.user.q_reject }}</button> <button type="button" class="btn btn-sm btn-xs-third d-block d-sm-inline btn-secondary{% if quarantine_category == 'add_header' %} active{% endif %}" data-action="edit_selected" data-item="{{ mailbox }}" data-id="quarantine_category" data-api-url='edit/quarantine_category' data-api-attr='{"quarantine_category":"add_header"}'>{{ lang.user.q_add_header }}</button> <button type="button" class="btn btn-sm btn-xs-third d-block d-sm-inline btn-secondary{% if quarantine_category == 'all' %} active{% endif %}" data-action="edit_selected" data-item="{{ mailbox }}" data-id="quarantine_category" data-api-url='edit/quarantine_category' data-api-attr='{"quarantine_category":"all"}'>{{ lang.user.q_all }}</button> </div> <p class="text-muted"><small>{{ lang.user.quarantine_category_info }}</small></p> </div> </div> <div class="row mb-4"> <label class="control-label col-sm-2" for="sender_acl">{{ lang.user.tls_policy }}</label> <div class="col-sm-10"> <div class="btn-group" data-acl="{{ acl.tls_policy }}"> <button type="button" class="btn btn-sm btn-xs-half d-block d-sm-inline btn-secondary{% if get_tls_policy.tls_enforce_in == '1' %} active"{% endif %}" data-action="edit_selected" data-item="{{ mailbox }}" data-id="tls_policy" data-api-url='edit/tls_policy' data-api-attr='{"tls_enforce_in": {% if get_tls_policy.tls_enforce_in == '1' %}0{% else %}1{% endif %} }'>{{ lang.user.tls_enforce_in }}</button> <button type="button" class="btn btn-sm btn-xs-half d-block d-sm-inline btn-secondary{% if get_tls_policy.tls_enforce_out == '1' %} active"{% endif %}" data-action="edit_selected" data-item="{{ mailbox }}" data-id="tls_policy" data-api-url='edit/tls_policy' data-api-attr='{"tls_enforce_out": {% if get_tls_policy.tls_enforce_out == '1' %}0{% else %}1{% endif %} }'>{{ lang.user.tls_enforce_out }}</button> </div> </div> </div> <div class="row"> <label class="control-label col-sm-2" for="protocol_access">{{ lang.edit.allowed_protocols }}</label> <div class="col-sm-10"> <select data-acl="{{ acl.protocol_access }}" name="protocol_access" multiple class="form-control"> <option value="imap"{% if result.attributes.imap_access == '1' %} selected{% endif %}>IMAP</option> <option value="pop3"{% if result.attributes.pop3_access == '1' %} selected{% endif %}>POP3</option> <option value="smtp"{% if result.attributes.smtp_access == '1' %} selected{% endif %}>SMTP</option> <option value="sieve"{% if result.attributes.sieve_access == '1' %} selected{% endif %}>Sieve</option> </select> </div> </div> <div hidden data-acl="{{ acl.smtp_ip_access }}" class="row"> <label class="control-label col-sm-2" for="allow_from_smtp">{{ lang.edit.allow_from_smtp }}</label> <div class="col-sm-10"> <input type="text" class="form-control" name="allow_from_smtp" value="{{ allow_from_smtp }}" placeholder="1.1.1.1, 10.2.0.0/24, ..."> <small class="text-muted">{{ lang.edit.allow_from_smtp_info }}</small> </div> </div> <hr> <div class="row my-2"> <div class="offset-sm-2 col-sm-10"> <select name="active" class="form-control"> <option value="1"{% if result.active == '1' %} selected{% endif %}>{{ lang.edit.active }}</option> <option value="2"{% if result.active == '2' %} selected{% endif %}>{{ lang.edit.disable_login }}</option> <option value="0"{% if result.active == '0' %} selected{% endif %}>{{ lang.edit.inactive }}</option> </select> </div> </div> <div class="row"> <div class="offset-sm-2 col-sm-10"> <div class="checkbox"> <label><input type="checkbox" value="1" name="force_pw_update"{% if result.attributes.force_pw_update == '1' %} checked{% endif %}> {{ lang.edit.force_pw_update }}</label> <small class="text-muted">{{ lang.edit.force_pw_update_info|format(ui_texts.main_name) }}</small> </div> </div> </div> {% if not skip_sogo %} <div data-acl="{{ acl.sogo_access }}" class="row"> <div class="offset-sm-2 col-sm-10"> <div class="checkbox"> <label><input type="checkbox" value="1" name="sogo_access"{% if result.attributes.sogo_access == '1' %} checked{% endif %}> {{ lang.edit.sogo_access }}</label> <small class="text-muted">{{ lang.edit.sogo_access_info }}</small> </div> </div> </div> {% endif %} <div class="row my-2"> <div class="offset-sm-2 col-sm-10"> <button class="btn btn-xs-lg d-block d-sm-inline btn-success" data-action="edit_selected" data-id="editmailbox" data-item="{{ result.username }}" data-api-url='edit/mailbox' data-api-attr='{}' href="#">{{ lang.edit.save }}</button> </div> </div> </form> </div> <div id="macl" class="tab-pane fade" role="tabpanel" aria-labelledby="mailbox-acl"> <form data-id="useracl" class="form-inline well" method="post"> <div class="row"> <div class="col-sm-1"> <p class="text-muted">ACL</p> </div> <div class="col-sm-10"> <select id="user_acl" name="user_acl" size="10" multiple> {% for acl, val in user_acls %} <option value="{{ acl }}"{% if val == 1 %} selected{% endif %}>{{ lang.acl[acl] }}</option> {% endfor %} </select> <button class="btn btn-xs-lg d-block d-sm-inline btn-secondary" data-action="edit_selected" data-id="useracl" data-item="{{ mailbox }}" data-api-url='edit/user-acl' data-api-attr='{}' href="#">{{ lang.edit.save }}</button> </div> </div> </form> </div> <div id="mrl" class="tab-pane fade" role="tabpanel" aria-labelledby="mailbox-rl"> <form data-id="mboxratelimit" class="form-inline well" method="post"> <div class="row"> <div class="col-sm-1"> <p class="text-muted">{{ lang.acl.ratelimit }}</p> </div> <div class="col-sm-10"> <input name="rl_value" type="number" autocomplete="off" value="{{ rl.value }}" class="form-control mb-4" placeholder="{{ lang.ratelimit.disabled }}"> <select name="rl_frame" class="form-control"> {% include 'mailbox/rl-frame.twig' %} </select> <button class="btn btn-xs-lg d-block d-sm-inline btn-secondary" data-action="edit_selected" data-id="mboxratelimit" data-item="{{ mailbox }}" data-api-url='edit/rl-mbox' data-api-attr='{}' href="#">{{ lang.edit.save }}</button> <p class="text-muted mt-3">{{ lang.edit.mbox_rl_info }}</p> </div> </div> </form> </div> </div> {% else %} {{ parent() }} {% endif %} {% endblock %}