Пример #1
0
        
        for user in User.objects.filter(groups__name='DomainAdmins'):
            try:
                controls.create_pool(user)
            except IntegrityError:
                pass

    def load(self):
        from app_settings import ParametersForm
        parameters.register(ParametersForm, _("Limits"))

    def destroy(self):
        parameters.unregister()
        Group.objects.get(name="Resellers").delete()

exts_pool.register_extension(Limits)

@events.observe("GetExtraRoles")
def get_extra_roles(user):
    if user.is_superuser:
        return [("Resellers", _("Reseller")),]
    return []

@events.observe("ExtraAdminContent")
def display_pool_usage(user, target, currentpage):
    from django.template.loader import render_to_string

    if target != "leftcol" or user.is_superuser:
        return []
    if currentpage == "identities":
        names = ["mailboxes_limit", "mailbox_aliases_limit"]
Пример #2
0
class Stats(ModoExtension):
    name = "stats"
    label = "Statistics"
    version = "1.0"
    description = ugettext_lazy("Graphical statistics about emails traffic using RRDtool")
    needs_media = True

    def load(self):
        from app_settings import ParametersForm
        events.registerEvent("GetGraphSets")
        parameters.register(ParametersForm, ugettext_lazy("Graphical statistics"))

    def destroy(self):
        events.unregister("AdminMenuDisplay", menu)

exts_pool.register_extension(Stats)


@events.observe("UserMenuDisplay")
def menu(target, user):
    if target != "top_menu" or user.group == "SimpleUsers":
        return []
    return [
        {"name": "stats",
         "label": _("Statistics"),
         "url": reverse('fullindex')}
    ]


@events.observe("GetGraphSets")
def get_default_graph_sets():
Пример #3
0

class AdminConsole(ModoExtension):
    name = "admin"
    label = ugettext_lazy("Administration console")
    version = "1.0"
    description = ugettext_lazy(
        "Web based console to manage domains, accounts and aliases")
    always_active = True

    def load(self):
        from app_settings import GeneralParametersForm
        parameters.register(GeneralParametersForm, _("General"))

    def destroy(self):
        parameters.unregister()


exts_pool.register_extension(AdminConsole, show=False)


@events.observe("ExtDisabled")
def unset_default_topredirection(extension):
    """
    Simple callback to change the default redirection if the
    corresponding extension is being disabled.
    """
    topredirection = parameters.get_admin("DEFAULT_TOP_REDIRECTION")
    if topredirection == extension.name:
        parameters.save_admin("DEFAULT_TOP_REDIRECTION", "userprefs")
Пример #4
0
                    onCreateMailbox(None, mb)

    def load(self):
        from app_settings import ParametersForm
        parameters.register(ParametersForm, ugettext_lazy("Automatic replies"))

    def destroy(self):
        events.unregister("CreateDomain", onCreateDomain)
        events.unregister("DeleteDomain", onDeleteDomain)
        events.unregister("CreateMailbox", onCreateMailbox)
        events.unregister("DeleteMailbox", onDeleteMailbox)
        events.unregister("ModifyMailbox", onModifyMailbox)
        events.unregister("UserMenuDisplay", menu)
        parameters.unregister()

exts_pool.register_extension(PostfixAutoreply)


@events.observe("ExtraUprefsRoutes")
def extra_routes():
    return [(r'^autoreply/$', 'modoboa.extensions.postfix_autoreply.views.autoreply'),]


@events.observe("ExtraUprefsJS")
def extra_js(user):
    return ["""function autoreply_cb() {
    $('#id_untildate').datepicker({format: 'yyyy-mm-dd', language: '%s'});
}
""" % parameters.get_user(user, "LANG", app="general")
    ]
Пример #5
0
                Users.objects.create(email="@%s" % dom.name,
                                     fullname=dom.name,
                                     priority=7,
                                     policy=p)

    def load(self):
        from app_settings import ParametersForm, UserSettings
        parameters.register(ParametersForm, "Amavis")
        parameters.register(UserSettings, _("Quarantine"))

    def destroy(self):
        events.unregister("UserMenuDisplay", menu)
        parameters.unregister()


exts_pool.register_extension(Amavis)


@events.observe("UserMenuDisplay")
def menu(target, user):
    from modoboa.lib.webutils import static_url

    if target == "top_menu":
        return [{
            "name": "quarantine",
            "label": _("Quarantine"),
            "url": reverse('modoboa.extensions.amavis.views.index')
        }]
    return []

Пример #6
0
    def load(self):
        from app_settings import ParametersForm
        parameters.register(ParametersForm, ugettext_lazy("Automatic replies"))

    def destroy(self):
        events.unregister("CreateDomain", onCreateDomain)
        events.unregister("DeleteDomain", onDeleteDomain)
        events.unregister("CreateMailbox", onCreateMailbox)
        events.unregister("DeleteMailbox", onDeleteMailbox)
        events.unregister("ModifyMailbox", onModifyMailbox)
        events.unregister("UserMenuDisplay", menu)
        parameters.unregister()


exts_pool.register_extension(PostfixAutoreply)


@events.observe("ExtraUprefsRoutes")
def extra_routes():
    return [
        (r'^autoreply/$',
         'modoboa.extensions.postfix_autoreply.views.autoreply'),
    ]


@events.observe("ExtraUprefsJS")
def extra_js(user):
    return [
        """function autoreply_cb() {
    $('#id_untildate').datepicker({format: 'yyyy-mm-dd', language: '%s'});
Пример #7
0
    name = "sievefilters"
    label = "Sieve filters"
    version = "1.0"
    description = ugettext_lazy("Plugin to easily create server-side filters")
    url = "sfilters"

    def load(self):
        from app_settings import ParametersForm, UserSettings
        parameters.register(ParametersForm, _("Sieve filters"))
        parameters.register(UserSettings, _("Message filters"))

    def destroy(self):
        events.unregister("UserMenuDisplay", menu)
        parameters.unregister()

exts_pool.register_extension(SieveFilters)

@events.observe("UserMenuDisplay")
def menu(target, user):
    import views

    if target != "options_menu":
        return []
    if not user.has_mailbox:
        return []
    return [
        {"name" : "sievefilters",
         "label" : _("Message filters"),
         "url" : reverse(views.index),
         "img" : "icon-check"}
        ]
Пример #8
0
from modoboa.extensions import ModoExtension, exts_pool
from modoboa.lib import parameters, events


class AdminConsole(ModoExtension):
    name = "admin"
    label = ugettext_lazy("Administration console")
    version = "1.0"
    description = ugettext_lazy("Web based console to manage domains, accounts and aliases")
    always_active = True

    def load(self):
        from app_settings import GeneralParametersForm
        parameters.register(GeneralParametersForm, _("General"))

    def destroy(self):
        parameters.unregister()

exts_pool.register_extension(AdminConsole, show=False)


@events.observe("ExtDisabled")
def unset_default_topredirection(extension):
    """
    Simple callback to change the default redirection if the
    corresponding extension is being disabled.
    """
    topredirection = parameters.get_admin("DEFAULT_TOP_REDIRECTION")
    if topredirection == extension.name:
        parameters.save_admin("DEFAULT_TOP_REDIRECTION", "userprefs")
Пример #9
0
# coding: utf-8
from django.utils.translation import ugettext_lazy
from modoboa.extensions import ModoExtension, exts_pool
from modoboa.lib import parameters


class UserPreferences(ModoExtension):
    name = "userprefs"
    label = ugettext_lazy("User preferences")
    version = "1.0"
    description = ugettext_lazy("Per-user settings")
    always_active = True

    def load(self):
        from app_settings import UserSettings
        parameters.register(UserSettings, ugettext_lazy("General"))

    def destroy(self):
        parameters.unregister()


exts_pool.register_extension(UserPreferences, show=False)
Пример #10
0
        for user in User.objects.filter(groups__name='DomainAdmins'):
            try:
                controls.create_pool(user)
            except IntegrityError:
                pass

    def load(self):
        from app_settings import ParametersForm
        parameters.register(ParametersForm, _("Limits"))

    def destroy(self):
        parameters.unregister()
        Group.objects.get(name="Resellers").delete()


exts_pool.register_extension(Limits)


@events.observe("GetExtraRoles")
def get_extra_roles(user):
    if user.is_superuser:
        return [
            ("Resellers", _("Reseller")),
        ]
    return []


@events.observe("ExtraAdminContent")
def display_pool_usage(user, target, currentpage):
    from django.template.loader import render_to_string
Пример #11
0
# coding: utf-8
from django.utils.translation import ugettext_lazy
from modoboa.extensions import ModoExtension, exts_pool
from modoboa.lib import parameters

class UserPreferences(ModoExtension):
    name = "userprefs"
    label = ugettext_lazy("User preferences")
    version = "1.0"
    description = ugettext_lazy("Per-user settings")
    always_active = True

    def load(self):
        from app_settings import UserSettings
        parameters.register(UserSettings, ugettext_lazy("General"))

    def destroy(self):
        parameters.unregister()

exts_pool.register_extension(UserPreferences, show=False)
Пример #12
0
    version = "1.0"
    description = ugettext_lazy(
        "Graphical statistics about emails traffic using RRDtool")
    needs_media = True

    def load(self):
        from app_settings import ParametersForm
        events.registerEvent("GetGraphSets")
        parameters.register(ParametersForm,
                            ugettext_lazy("Graphical statistics"))

    def destroy(self):
        events.unregister("AdminMenuDisplay", menu)


exts_pool.register_extension(Stats)


@events.observe("UserMenuDisplay")
def menu(target, user):
    if target != "top_menu" or user.group == "SimpleUsers":
        return []
    return [{
        "name": "stats",
        "label": _("Statistics"),
        "url": reverse('fullindex')
    }]


@events.observe("GetGraphSets")
def get_default_graph_sets():
Пример #13
0
    label = "Sieve filters"
    version = "1.0"
    description = ugettext_lazy("Plugin to easily create server-side filters")
    url = "sfilters"

    def load(self):
        from app_settings import ParametersForm, UserSettings
        parameters.register(ParametersForm, ugettext_lazy("Sieve filters"))
        parameters.register(UserSettings, ugettext_lazy("Message filters"))

    def destroy(self):
        events.unregister("UserMenuDisplay", menu)
        parameters.unregister()


exts_pool.register_extension(SieveFilters)


@events.observe("UserMenuDisplay")
def menu(target, user):
    import views

    if target != "options_menu":
        return []
    if not user.has_mailbox:
        return []
    return [{
        "name": "sievefilters",
        "label": _("Message filters"),
        "url": reverse(views.index),
        "img": "icon-check"
Пример #14
0
                u = Users.objects.get(email="@%s" % dom.name)
            except Users.DoesNotExist:
                p = Policy.objects.create(policy_name=dom.name)
                Users.objects.create(email="@%s" % dom.name, fullname=dom.name,
                                     priority=7, policy=p)

    def load(self):
        from app_settings import ParametersForm, UserSettings
        parameters.register(ParametersForm, "Amavis")
        parameters.register(UserSettings, ugettext_lazy("Quarantine"))
       
    def destroy(self):
        events.unregister("UserMenuDisplay", menu)
        parameters.unregister()

exts_pool.register_extension(Amavis)


@events.observe("UserMenuDisplay")
def menu(target, user):
    from modoboa.lib.webutils import static_url

    if target == "top_menu":
        return [
            {"name": "quarantine",
             "label": _("Quarantine"),
             "url": reverse('modoboa.extensions.amavis.views.index')}
            ]
    return []

Пример #15
0
    label = "Webmail"
    version = "1.0"
    description = ugettext_lazy("Simple IMAP webmail")
    needs_media = True

    def load(self):
        from app_settings import ParametersForm, UserSettings

        parameters.register(ParametersForm, "Webmail")
        parameters.register(UserSettings, "Webmail")

    def destroy(self):
        events.unregister("UserMenuDisplay", menu)
        parameters.unregister()

exts_pool.register_extension(Webmail)

@events.observe("UserMenuDisplay")
def menu(target, user):
    if target != "top_menu":
        return []
    if not user.has_mailbox:
        return []
    return [
        {"name" : "webmail",
         "label" : _("Webmail"),
         "url" : reverse("modoboa.extensions.webmail.views.index")},
        ]

@events.observe("UserLogout")
def userlogout(request):