{# @profile_type @mail @user_profile @maillists: All mail list accounts under same domain. @nonExistListEmails Mail list addresses which already assigned but not exist @aliases All mail list accounts under same domain. @defaultStorageBaseDirectory Default storage base directory which set in settings.ini # profile_type == 'password' @domainAccountSetting # profile_type == 'throttle' @throttleOfSender @throttleOfRecipient @[msg,] #} {% extends "layout.html" %} {% from "macros/general.html" import display_subnav, set_account_status_img, display_input_cn, display_quota, display_input_employeeid, display_input_jobtitle, display_input_mobile, display_input_phone, display_account_status, display_enabled_services, display_reset_password, display_per_user_wblist, display_recipient_bcc, display_sender_bcc, displayedInGlobalAddressBook, display_button_submit, with context %} {% from "macros/policyd.html" import display_policyd_enable_throttling, display_policyd_timeunit_of_throttle, display_policyd_max_messages_per_timeunit, display_policyd_max_message_size_per_timeunit, display_policyd_size_of_single_message, display_policyd_higher_priority_of_throttle, with context %} {% from "macros/msgHandlers.html" import userMsgHandler with context %} {% block title %}{{ _('Edit account profile') }}{% endblock %} {% block navlinks_active_domains %}class="active"{% endblock %} {# User profile. #} {% set user = user_profile[0] %} {% set entries = user[1] %} {% set mail = entries.get('mail')[0] %} {% set cn = entries.get('cn', [ mail.split('@')[0] ])[0].decode('utf-8') %} {% set username, cur_domain = mail.split('@', 1) %} {% set employeeNumber = entries.get('employeeNumber', [''])[0].decode('utf-8') %} {% set accountStatus = entries.get('accountStatus', ['disabled'])[0] %} {# Get enabledService #} {% if profile_type in ['general', 'forwarding', 'aliases', 'advanced',] %} {% set enabledService = entries.get('enabledService', ['']) %} {% endif %} {% if profile_type == 'general' %} {% set jobtitle = entries.get('title', [''])[0].decode('utf-8') %} {% set mobile = entries.get('mobile', [''])[0] %} {% set telephoneNumber = entries.get('telephoneNumber', []) %} {% set mailQuota = '%d' % (entries.get('mailQuota', [0])[0] |int /1024/1024) %} {% set usedQuota = accountUsedQuota.get(mail, {}).get('bytes', 0) %} {#-- Member of Groups --#} {% set memberOfGroup = entries.get('memberOfGroup', []) %} {% elif profile_type == 'forwarding' %} {% set mailForwardingAddress = entries.get('mailForwardingAddress', ['']) %} {% elif profile_type == 'aliases' %} {% set shadowAddresses = entries.get('shadowAddress', ['']) %} {% elif profile_type == 'wblist' %} {% set whitelistSender = entries.get('amavisWhitelistSender', ['']) %} {% set blacklistSender = entries.get('amavisBlacklistSender', ['']) %} {% set whitelistRecipient = entries.get('mailWhitelistRecipient', ['']) %} {% set blacklistRecipient = entries.get('mailBlacklistRecipient', ['']) %} {% elif profile_type == 'advanced' %} {# ---- Maildir ---- #} {% set storageBaseDirectory = entries.get('storageBaseDirectory', [defaultStorageBaseDirectory])[0] %} {% set mailMessageStore = entries.get('mailMessageStore', [''])[0] %} {# ---- BCC ---- #} {% set userRecipientBccAddress = entries.get('userRecipientBccAddress', [''])[0] %} {% set userSenderBccAddress = entries.get('userSenderBccAddress', [''])[0] %} {# ---- Relay/Transport ---- #} {% set mtaTransport = entries.get('mtaTransport', [''])[0] %} {% endif %} {% block breadcrumb %} {% set crumbs = [ (ctx.homepath + '/domains', _('All domains'),), (ctx.homepath + '/profile/domain/general/' + cur_domain, cur_domain,), (ctx.homepath + '/users/' + cur_domain, _('Users'),), (None, _('Profile of user:') + ' ' + mail,), (ctx.homepath + '/maillists/' + cur_domain, _('Mail Lists'),), (ctx.homepath + '/aliases/' + cur_domain, _('Aliases'),), ] %} {{ display_subnav(crumbs) }} {% endblock %} {% block main %} {#-- Show system message --#} {{ userMsgHandler(msg) }} {% set navlinks = [ ('general', _('General'), [true,]), ('forwarding', _('Forwarding'), [true,]), ('aliases', _('Aliases'), [true,]), ('throttle', _('Throttling'), [session.get('domainGlobalAdmin'), session.get('enablePolicyd'),]), ('wblist', _('White/Blacklist'), [session.get('domainGlobalAdmin'),]), ('password', _('Password'), [true,]), ('advanced', _('Advanced'), [true,]), ] %}
    {% for nav in navlinks %} {% if not false in nav[2] and not none in nav[2] %}
  • {{ nav[1] }}
  • {% endif %} {% endfor %}

{{ _('Profile of user:') }} {{ mail }}

{% if profile_type == 'general' %}
{{ display_account_status(accountStatus) }} {{ displayedInGlobalAddressBook(enabledService=enabledService) }}
{{ display_input_cn(cn) }} {{ display_quota(value=mailQuota, show_value_in_input='yes', used_quota=usedQuota) }}
{{ display_input_employeeid(employeeNumber) }} {{ display_input_jobtitle(jobtitle) }}
{{ display_input_mobile(value=mobile) }} {{ display_input_phone(value=telephoneNumber) }}
{#-- .col2-3 --#} {% if session.get('domainGlobalAdmin') is sameas true %}

{{ _('Export account to') }}

{% endif %}
{#-- .columns --#}

{{ _('Member of Mail Lists') }}

{% for ml in maillists %} {% set mlentry = ml[1] %} {% set gmail = mlentry.get('mail')[0] %} {% set group_cn = mlentry.get('cn', [''])[0].decode('utf-8') %} {% if group_cn == '' %} {% set group_cn = gmail.split('@', 1)[0] %} {% endif %}
{% endfor %} {% for addr in nonExistListEmails %}
{% endfor %}
{#-- End checklist --#}
{#-- End form-field --#}
{#-- .col2-3 --#}
{#-- .columns --#}

{{ _('Member of Mail Aliases') }}

{% for als in aliases %} {% set alsentry = als[1] %} {% set alsmail = alsentry.get('mail')[0] %} {% set alsMembers = alsentry.get('mailForwardingAddress', []) %} {% set alscn= alsentry.get('cn', [''])[0].decode('utf-8') %} {% if alscn == '' %} {% set alscn = alsmail.split('@', 1)[0] %} {% endif %}
{% if mail in alsMembers %} {% else %} {% endif %}
{% endfor %}
{#-- .checklist --#}
{#-- form-field --#}
{#-- End col2-3 -- #}
{#-- End .columns --#} {% elif profile_type == 'forwarding' %}

{{ _('Enable mail forwarding') }}

{{ _('Save a copy in mailbox') }}

 
{% if mailForwardingAddress |length > 0 %} {% for addr in mailForwardingAddress %}
{% if loop.index != 1 %}

 

{% else %}

{{ _('Forward mails to address') }}

{% endif %}
{% endfor %} {% endif %} {#-- Always display two empty fields to add new value --#} {% for i in [1, 2] %}

 

{% endfor %} {% elif profile_type == 'aliases' %}

{{ _('Enable alias account') }}

{% if shadowAddresses |length > 0 %} {% for addr in shadowAddresses %}
{% if loop.index != 1 %}

 

{% else %}

{{ _('Email addresses of alias accounts') }}

{% endif %}
{% endfor %} {% endif %} {#-- Always display two empty fields to add new value --#} {% for i in [1, 2] %}

 

{% endfor %}
{#-- .col2-3 --#}
  • {{ _('Emails sent to alias accounts will be delivered to user %s.') |format('' + mail + '') }}
  • {{ _('Email address of alias account must end with domain name(s): %s.') |format('' + ', '.join(availableDomainNames) + '') }}
{#-- .columns --#} {% elif profile_type == 'wblist' %}
{{ display_per_user_wblist( values=whitelistSender, htmlInputName='whitelistSender', label=_('Bypass mails from below senders'), ) }} {{ display_per_user_wblist( values=blacklistSender, htmlInputName='blacklistSender', label=_('Reject mails from below senders'), ) }} {{ display_per_user_wblist( values=whitelistRecipient, htmlInputName='whitelistRecipient', label=_('Bypass mails sent to below recipients'), ) }} {{ display_per_user_wblist( values=blacklistRecipient, htmlInputName='blacklistRecipient', label=_('Reject mails sent to below recipients'), ) }}
{# .col2-3 #}
{% if session.get('domainGlobalAdmin') is sameas true %}

{{ _('Note') }}: {{ _("Make sure you have iRedAPD work as expected:") }} {{ _('Install iRedAPD') }}

{% endif %}
  • {{ _('This is per-user white/blacklist.') }}
  • {{ _('Whitelist has higher priority than blacklist.') }}

{{ _('Format of sender and recipient') }}

  • {{ _('Single User') }}: user@domain.ltd
  • {{ _('Entire domain') }}: @domain.ltd
  • {{ _('Domain and its sub-domains') }}: @.domain.ltd
  • {{ _('All accounts') }}: @.
{# .columns #} {% elif profile_type == 'throttle' %} {# ---- Throttling in Policyd ---- #} {% if session.get('domainGlobalAdmin') is sameas true %} {# -- Sender throttle in Policyd -- #}
{{ display_policyd_enable_throttling(accountType='sender', enabled=throttleOfSender.get('_from', false)) }} {{ display_policyd_higher_priority_of_throttle( value=throttleOfSender.get('_priority', session.get('priorityOfUserThrottling', 10)), accountDomain=cur_domain, accountType='sender', ) }} {{ display_policyd_size_of_single_message(value=throttleOfSender.get('_mail_size', 0)) }} {{ display_policyd_max_messages_per_timeunit( value=throttleOfSender.get('_count_max', 0), accountType='sender',) }} {{ display_policyd_max_message_size_per_timeunit( value=throttleOfSender.get('_quota_max', 0), accountType='sender') }} {{ display_policyd_timeunit_of_throttle( value=throttleOfSender.get('_time_limit', 0), accountType='sender') }} {# -- Recipient throttle in Policyd -- #}
 
{{ display_policyd_enable_throttling( accountType='recipient', enabled=throttleOfRecipient.get('_rcpt', false), ) }} {{ display_policyd_max_messages_per_timeunit( value=throttleOfRecipient.get('_count_max', 0), accountType='recipient', ) }} {{ display_policyd_timeunit_of_throttle( value=throttleOfRecipient.get('_time_limit', 0), accountType='recipient', ) }} {% endif %}
{#-- .col2-3 --#}
  • {{ _('Set value to 0 or leave it empty for unlimited.') }}
{#-- .columns --#} {% elif profile_type == 'password' %} {# Password length #} {% set minPasswordLength = domainAccountSetting.get('minPasswordLength', '0') %} {% set maxPasswordLength = domainAccountSetting.get('maxPasswordLength', '0') %} {{ display_reset_password( min_passwd_length=minPasswordLength, max_passwd_length=maxPasswordLength, show_confirmpw=true, ) }} {% elif profile_type == 'advanced' %} {# ---- Maildir ---- #} {% if session.get('domainGlobalAdmin') is sameas true %}

{{ _('Path to mailbox') }}

/
{% endif %} {# ---- Relay/Transport ---- #}
 

{{ _('Relay/Transport Setting') }}

{# ---- BCC ---- #}
{{ display_recipient_bcc(address=userRecipientBccAddress) }} {{ display_sender_bcc(address=userSenderBccAddress) }}
  • {{ _('Multiple addresses are NOT supported.') }}
  • {{ _('Per-domain bcc settings will override per-user bcc settings.') }}
{#-- .col1-3 --#}
 
{{ display_enabled_services(accountType='user', enabledService=enabledService) }} {% endif %} {{ display_button_submit() }}
{% endblock main %}