| Server IP : 85.214.239.14 / Your IP : 216.73.216.178 Web Server : Apache/2.4.65 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 8.2.29 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /proc/3/task/3/cwd/srv/modoboa/env/lib/python3.5/site-packages/modoboa_webmail/ |
Upload File : |
"""Webmail handlers."""
from django.urls import reverse
from django.dispatch import receiver
from django.utils.translation import ugettext as _
from modoboa.core import signals as core_signals
from . import exceptions
from . import lib
@receiver(core_signals.extra_user_menu_entries)
def menu(sender, location, user, **kwargs):
"""Return extra menu entry."""
if location != "top_menu" or not hasattr(user, "mailbox"):
return []
return [
{"name": "webmail",
"label": _("Webmail"),
"url": reverse("modoboa_webmail:index")},
]
@receiver(core_signals.user_logout)
def userlogout(sender, request, **kwargs):
"""Close IMAP connection."""
if not hasattr(request.user, "mailbox"):
return
try:
m = lib.IMAPconnector(user=request.user.username,
password=request.session["password"])
except Exception:
# TODO silent exception are bad : we should at least log it
return
# The following statement may fail under Python 2.6...
try:
m.logout()
except exceptions.ImapError:
pass
@receiver(core_signals.extra_static_content)
def extra_js(sender, caller, st_type, user, **kwargs):
"""Add javascript."""
if caller != "user_index" or st_type != "js":
return ""
return """function toggleSignatureEditor() {
var editorId = 'id_modoboa_webmail-signature';
if ($(this).val() === 'html') {
CKEDITOR.replace(editorId, $('#' + editorId).data('config'));
} else {
var instance = CKEDITOR.instances[editorId];
instance.destroy();
}
}
$(document).on(
'change', 'input[name=modoboa_webmail-editor]', toggleSignatureEditor);
$(document).on('preferencesLoaded', function() {
$('input[name=modoboa_webmail-editor]:checked').change();
});
"""