mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-18 05:51:26 +02:00
fix: renaming mailng to modoboa
This commit is contained in:
@@ -13,10 +13,10 @@ How to install
|
||||
|
||||
Download Mailng's tarball and extract it::
|
||||
|
||||
# tar xzf mailng-<version>.tar.gz
|
||||
# mv mailng-<version> mailng
|
||||
# tar xzf modoboa-<version>.tar.gz
|
||||
# mv modoboa-<version> modoboa
|
||||
|
||||
Then, enter the mailng directory, create a settings.py file (you can
|
||||
Then, enter the modoboa directory, create a settings.py file (you can
|
||||
use settings-sample.py as a model). Specify database relative
|
||||
informations. You must choose between mysql and postgresql, other
|
||||
types are not supported by major email projects like postfix or
|
||||
@@ -55,13 +55,13 @@ INSTALLED_APPS variable and that it contains at least::
|
||||
# Django's stuff before
|
||||
|
||||
'south',
|
||||
'mailng',
|
||||
'mailng.lib',
|
||||
'mailng.admin',
|
||||
'mailng.userprefs',
|
||||
'modoboa',
|
||||
'modoboa.lib',
|
||||
'modoboa.admin',
|
||||
'modoboa.userprefs',
|
||||
)
|
||||
|
||||
Starting with 0.8, mailng.main doesn't exist anymore. You need to
|
||||
Starting with 0.8, modoboa.main doesn't exist anymore. You need to
|
||||
remove it from your INSTALLED_APPS.
|
||||
|
||||
NB: Before doing this migration, I recommend that you make a copy of your
|
||||
@@ -111,11 +111,11 @@ Then create a vmail user::
|
||||
|
||||
# useradd -g vmail -d /var/vmail -m vmail
|
||||
|
||||
At last, the system user used to run mailng will need permissions to
|
||||
At last, the system user used to run modoboa will need permissions to
|
||||
manipulate directories in vmail's homedir. To do so, edit your /etc/sudoers
|
||||
file and add the following inside::
|
||||
|
||||
<user_that_runs_mailng> ALL=(vmail) NOPASSWD: ALL
|
||||
<user_that_runs_modoboa> ALL=(vmail) NOPASSWD: ALL
|
||||
|
||||
Testing installation
|
||||
--------------------
|
||||
@@ -126,7 +126,7 @@ server. Just run this command to start it::
|
||||
# python manage.py runserver
|
||||
|
||||
You will be able to play with MailNG by looking at
|
||||
http://<youraddress>:8000/mailng/admin/.
|
||||
http://<youraddress>:8000/modoboa/admin/.
|
||||
|
||||
Tips to link Mailng with postfix
|
||||
--------------------------------
|
||||
@@ -185,20 +185,20 @@ Since version 0.6, mail users can define an auto-reply message with MailNG.
|
||||
To activate the extension, edit your settings.py and add the following
|
||||
line inside the INSTALLED_APPS variable::
|
||||
|
||||
'mailng.extensions.postfix_autoreply',
|
||||
'modoboa.extensions.postfix_autoreply',
|
||||
|
||||
Run the following command to activate the component::
|
||||
|
||||
# export PYTHONPATH=<mailng_dir>/..
|
||||
# DJANGO_SETTINGS_MODULE=mailng.settings \
|
||||
<mailng_dir>/scripts/extension.py postfix-autoreply on
|
||||
# export PYTHONPATH=<modoboa_dir>/..
|
||||
# DJANGO_SETTINGS_MODULE=modoboa.settings \
|
||||
<modoboa_dir>/scripts/extension.py postfix-autoreply on
|
||||
|
||||
Then run the following commands to update MailNG SQL schema and content::
|
||||
|
||||
# python manage.py syncdb
|
||||
# python manage.py migrate postfix-autoreply
|
||||
# export PYTHONPATH=$PWD/..
|
||||
# DJANGO_SETTINGS_MODULE=mailng.settings ./scripts/postfix_autoreply/upgrade_autoreply.py
|
||||
# DJANGO_SETTINGS_MODULE=modoboa.settings ./scripts/postfix_autoreply/upgrade_autoreply.py
|
||||
|
||||
The user that executes the autoreply script needs to access
|
||||
settings.py. You must apply proper permissions on this file. For
|
||||
@@ -216,7 +216,7 @@ files as follow::
|
||||
|
||||
# /etc/postfix/master.cf
|
||||
autoreply unix - n n - - pipe
|
||||
flags= user=vmail:<group> argv=<path_to_mailng>/scripts/postfix_autoreply/autoreply $sender $mailbox
|
||||
flags= user=vmail:<group> argv=<path_to_modoboa>/scripts/postfix_autoreply/autoreply $sender $mailbox
|
||||
|
||||
Then, create new map files with the following content::
|
||||
|
||||
@@ -236,7 +236,7 @@ Then, create new map files with the following content::
|
||||
|
||||
Finally, edit the shell script 'autoreply' located inside the
|
||||
'scripts' directory and change the value of BASEDIR. (just put absolute path
|
||||
of the directory where mailng is installed)
|
||||
of the directory where modoboa is installed)
|
||||
|
||||
NB: auto-reply messages are just sent one time per sender for a
|
||||
pre-defined time period. By default, this period is equal to 1 day
|
||||
@@ -344,10 +344,10 @@ following inside::
|
||||
<Location "/">
|
||||
SetHandler mod_python
|
||||
PythonHandler django.core.handlers.modpython
|
||||
PythonPath "['<path to directory that contains mailng dir>'] + sys.path"
|
||||
SetEnv DJANGO_SETTINGS_MODULE mailng.settings
|
||||
PythonPath "['<path to directory that contains modoboa dir>'] + sys.path"
|
||||
SetEnv DJANGO_SETTINGS_MODULE modoboa.settings
|
||||
</Location>
|
||||
Alias "/static" "<path to mailng dir>/static"
|
||||
Alias "/static" "<path to modoboa dir>/static"
|
||||
<Location "/static/">
|
||||
SetHandler None
|
||||
</Location>
|
||||
@@ -371,13 +371,13 @@ installed on your server::
|
||||
To activate the extension, edit your settings.py and add the following
|
||||
line inside the INSTALLED_APPS variable::
|
||||
|
||||
'mailng.extensions.amavis_quarantine',
|
||||
'modoboa.extensions.amavis_quarantine',
|
||||
|
||||
Then run the following command to activate the component::
|
||||
|
||||
# export PYTHONPATH=<mailng_dir>/..
|
||||
# DJANGO_SETTINGS_MODULE=mailng.settings \
|
||||
<mailng_dir>/scripts/extension.py amavis-quarantine on
|
||||
# export PYTHONPATH=<modoboa_dir>/..
|
||||
# DJANGO_SETTINGS_MODULE=modoboa.settings \
|
||||
<modoboa_dir>/scripts/extension.py amavis-quarantine on
|
||||
|
||||
Then, you need to specify where is the database that contains the
|
||||
quarantine. Inside settings.py, add a new connection to the
|
||||
@@ -398,7 +398,7 @@ When viewing messages, you can choose to display links (addresses,
|
||||
images). In order to display images correctly, you need to create a
|
||||
tmp directory under static/ for storing them. For example::
|
||||
|
||||
# mkdir <mailng_dir>/static/tmp
|
||||
# mkdir <modoboa_dir>/static/tmp
|
||||
|
||||
To be able to release messages, first take a look at this page::
|
||||
|
||||
@@ -441,11 +441,11 @@ Last point, MailNG provides a simple script that periodically purge
|
||||
the amavisd-new quarantine database. If you plan to use it, you can
|
||||
add the following line inside root's crontab::
|
||||
|
||||
0 0 * * * PYTHONPATH=<mailng_dir/..> \
|
||||
DJANGO_SETTINGS_MODULE=mailng.settings \
|
||||
<mailng_dir>/extensions/amavis_quarantine/cleanup.py
|
||||
0 0 * * * PYTHONPATH=<modoboa_dir/..> \
|
||||
DJANGO_SETTINGS_MODULE=modoboa.settings \
|
||||
<modoboa_dir>/extensions/amavis_quarantine/cleanup.py
|
||||
|
||||
Replace mailng_dir with the installation path of MailNG.
|
||||
Replace modoboa_dir with the installation path of MailNG.
|
||||
|
||||
By default, messages older than 14 days are automatically purged. You
|
||||
can modify this value by changing the MAX_MESSAGES_AGE parameter in the admin panel.
|
||||
@@ -465,13 +465,13 @@ installed on your server::
|
||||
To activate the extension, edit your settings.py and add the following
|
||||
line inside the INSTALLED_APPS variable::
|
||||
|
||||
'mailng.extensions.stats',
|
||||
'modoboa.extensions.stats',
|
||||
|
||||
Then run the following command to activate the component::
|
||||
|
||||
# export PYTHONPATH=<mailng_dir>/..
|
||||
# DJANGO_SETTINGS_MODULE=mailng.settings \
|
||||
<mailng_dir>/scripts/extension.py stats on
|
||||
# export PYTHONPATH=<modoboa_dir>/..
|
||||
# DJANGO_SETTINGS_MODULE=modoboa.settings \
|
||||
<modoboa_dir>/scripts/extension.py stats on
|
||||
|
||||
Then, adapt the following parameters to your environnement::
|
||||
|
||||
@@ -479,25 +479,25 @@ Then, adapt the following parameters to your environnement::
|
||||
LOGFILE = "/var/log/mail.log"
|
||||
|
||||
# Path to directory where rrd files are stored
|
||||
RRD_ROOTDIR = "/tmp/mailng"
|
||||
RRD_ROOTDIR = "/tmp/modoboa"
|
||||
|
||||
# Path to directory where png files are stored
|
||||
IMG_ROOTDIR = "<mailng_dir>/static/graphs"
|
||||
IMG_ROOTDIR = "<modoboa_dir>/static/graphs"
|
||||
|
||||
Make sure the directories that will contain those files exist. If not,
|
||||
create them before going further. For example (according to previous
|
||||
parameters)::
|
||||
|
||||
$ mkdir /tmp/mailng
|
||||
$ mkdir <mailng_dir>/static/graphs
|
||||
$ mkdir /tmp/modoboa
|
||||
$ mkdir <modoboa_dir>/static/graphs
|
||||
|
||||
To finish, you need to collect information periodically in order to
|
||||
feed rrd files. To do so, just add the following lines into root's
|
||||
crontab::
|
||||
|
||||
*/5 * * * * PYTHONPATH=<mailng_dir/..> DJANGO_SETTINGS_MODULE=mailng.settings <mailng_dir>/scripts/stats/logparser.py
|
||||
*/5 * * * * PYTHONPATH=<modoboa_dir/..> DJANGO_SETTINGS_MODULE=modoboa.settings <modoboa_dir>/scripts/stats/logparser.py
|
||||
|
||||
Replace mailng_dir with the installation path of MailNG.
|
||||
Replace modoboa_dir with the installation path of MailNG.
|
||||
|
||||
Graphics are automatically created after each new parsing.
|
||||
|
||||
@@ -515,15 +515,15 @@ The following requirements are needed before going further::
|
||||
|
||||
Just run the following command to activate the component::
|
||||
|
||||
# export PYTHONPATH=<mailng_dir>/..
|
||||
# DJANGO_SETTINGS_MODULE=mailng.settings \
|
||||
<mailng_dir>/scripts/extension.py webmail on
|
||||
# export PYTHONPATH=<modoboa_dir>/..
|
||||
# DJANGO_SETTINGS_MODULE=modoboa.settings \
|
||||
<modoboa_dir>/scripts/extension.py webmail on
|
||||
|
||||
Sometimes, inline images are integrated inside emails. To display
|
||||
them, MailNG stores them inside a temporary folder. Make sure the
|
||||
following path exists, otherwise create it::
|
||||
|
||||
# mkdir <path_to_mailng>/static/tmp
|
||||
# mkdir <path_to_modoboa>/static/tmp
|
||||
|
||||
The user that is running MailNG will need the write permission inside
|
||||
this folder.
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from mailng.lib import parameters
|
||||
from modoboa.lib import parameters
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
parameters.register_admin("admin","STORAGE_PATH", type="string", deflt="/var/vmail",
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
from django import forms
|
||||
from mailng.admin.models import Domain, Mailbox, Alias
|
||||
from modoboa.admin.models import Domain, Mailbox, Alias
|
||||
from django.utils.translation import ugettext as _
|
||||
from mailng.admin.templatetags.admin_extras import gender
|
||||
from modoboa.admin.templatetags.admin_extras import gender
|
||||
|
||||
class DomainForm(forms.ModelForm):
|
||||
class Meta:
|
||||
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
from django.db import models
|
||||
from django.contrib.auth.models import User
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from mailng.lib import parameters
|
||||
from mailng.lib import exec_cmd, exec_as_vuser
|
||||
from modoboa.lib import parameters
|
||||
from modoboa.lib import exec_cmd, exec_as_vuser
|
||||
import os
|
||||
|
||||
class Domain(models.Model):
|
||||
|
||||
@@ -2,8 +2,8 @@ from django import template
|
||||
from django.template.loader import render_to_string
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.core.urlresolvers import reverse
|
||||
from mailng import admin
|
||||
from mailng.lib import events
|
||||
from modoboa import admin
|
||||
from modoboa.lib import events
|
||||
|
||||
register = template.Library()
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
from django.conf.urls.defaults import *
|
||||
|
||||
urlpatterns = patterns('mailng.admin.views',
|
||||
urlpatterns = patterns('modoboa.admin.views',
|
||||
url(r'^$', 'domains', name="index"),
|
||||
url(r'^domains/$', 'domains', name="domains"),
|
||||
(r'^domains/new/', 'newdomain'),
|
||||
|
||||
+7
-7
@@ -11,13 +11,13 @@ from django.core.urlresolvers import reverse
|
||||
from django.contrib.auth.decorators \
|
||||
import login_required, permission_required, user_passes_test
|
||||
from django.contrib.auth.models import User, Group
|
||||
from mailng import admin, userprefs
|
||||
from mailng.admin.models import Domain, Mailbox, Alias
|
||||
from modoboa import admin, userprefs
|
||||
from modoboa.admin.models import Domain, Mailbox, Alias
|
||||
from forms import MailboxForm, DomainForm, AliasForm, PermissionForm
|
||||
from mailng.lib.authbackends import crypt_password
|
||||
from mailng.lib import _render, _ctx_ok, _ctx_ko
|
||||
from mailng.lib import events, parameters
|
||||
from mailng.lib.models import Parameter
|
||||
from modoboa.lib.authbackends import crypt_password
|
||||
from modoboa.lib import _render, _ctx_ok, _ctx_ko
|
||||
from modoboa.lib import events, parameters
|
||||
from modoboa.lib.models import Parameter
|
||||
import string
|
||||
import copy
|
||||
import pwd
|
||||
@@ -125,7 +125,7 @@ def deldomain(request, dom_id):
|
||||
events.raiseEvent("DeleteDomain", dom=domain)
|
||||
domain.delete_dir()
|
||||
domain.delete()
|
||||
return HttpResponseRedirect('/mailng/admin/')
|
||||
return HttpResponseRedirect('/modoboa/admin/')
|
||||
|
||||
@login_required
|
||||
@good_domain
|
||||
|
||||
+3
-3
@@ -4,8 +4,8 @@ from django.http import HttpResponse, HttpResponseRedirect
|
||||
from django.shortcuts import render_to_response
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.utils.translation import ugettext as _
|
||||
from mailng.lib import events
|
||||
import mailng.admin
|
||||
from modoboa.lib import events
|
||||
import modoboa.admin
|
||||
from forms import LoginForm
|
||||
|
||||
def dologin(request):
|
||||
@@ -24,7 +24,7 @@ def dologin(request):
|
||||
|
||||
next = request.POST["next"]
|
||||
if next == "None":
|
||||
next = reverse(mailng.admin.views.domains)
|
||||
next = reverse(modoboa.admin.views.domains)
|
||||
return HttpResponseRedirect(next)
|
||||
else:
|
||||
error = _("Account is disabled.")
|
||||
|
||||
@@ -20,4 +20,4 @@ def loadextensions():
|
||||
return result
|
||||
|
||||
def isenabled(ext):
|
||||
return "mailng.extensions.%s" % ext in settings.INSTALLED_APPS
|
||||
return "modoboa.extensions.%s" % ext in settings.INSTALLED_APPS
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from mailng.lib import db, parameters
|
||||
from modoboa.lib import db, parameters
|
||||
|
||||
if __name__ == "__main__":
|
||||
from mailng.extensions.amavis_quarantine import main
|
||||
from modoboa.extensions.amavis_quarantine import main
|
||||
|
||||
main.init()
|
||||
conn = db.getconnection("amavis_quarantine")
|
||||
|
||||
@@ -2,7 +2,7 @@ import socket
|
||||
import re
|
||||
import struct
|
||||
import string
|
||||
from mailng.lib import parameters
|
||||
from modoboa.lib import parameters
|
||||
|
||||
class AMrelease(object):
|
||||
def __init__(self):
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
from django.conf.urls.defaults import *
|
||||
from django.utils.translation import ugettext as _, ungettext
|
||||
from django.core.urlresolvers import reverse
|
||||
from mailng.lib import events, parameters
|
||||
from modoboa.lib import events, parameters
|
||||
|
||||
def infos():
|
||||
return {
|
||||
@@ -38,8 +38,8 @@ def destroy():
|
||||
parameters.unregister_app("amavis_quarantine")
|
||||
|
||||
def urls():
|
||||
return (r'^mailng/quarantine/',
|
||||
include('mailng.extensions.amavis_quarantine.urls'))
|
||||
return (r'^modoboa/quarantine/',
|
||||
include('modoboa.extensions.amavis_quarantine.urls'))
|
||||
|
||||
def menu(**kwargs):
|
||||
import views
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
from datetime import datetime
|
||||
from django.utils.translation import ugettext as _
|
||||
from mailng.lib import tables, db
|
||||
from mailng.lib.email_listing import MBconnector, EmailListing, Email
|
||||
from modoboa.lib import tables, db
|
||||
from modoboa.lib.email_listing import MBconnector, EmailListing, Email
|
||||
|
||||
class Qtable(tables.Table):
|
||||
tableid = "emails"
|
||||
|
||||
@@ -2,7 +2,7 @@ from django import template
|
||||
from django.template.loader import render_to_string
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.core.urlresolvers import reverse
|
||||
from mailng.extensions import amavis_quarantine
|
||||
from modoboa.extensions import amavis_quarantine
|
||||
|
||||
register = template.Library()
|
||||
|
||||
|
||||
@@ -11,6 +11,6 @@ extpatterns = [
|
||||
(r'^(?P<mail_id>[\w\-\+]+)/$', 'viewmail')
|
||||
]
|
||||
|
||||
urlpatterns = patterns('mailng.extensions.amavis_quarantine.views',
|
||||
urlpatterns = patterns('modoboa.extensions.amavis_quarantine.views',
|
||||
*extpatterns
|
||||
)
|
||||
|
||||
@@ -12,12 +12,12 @@ from django.utils.translation import ugettext as _, ungettext
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.contrib.auth.decorators \
|
||||
import login_required
|
||||
from mailng.lib import _render, _ctx_ok, _ctx_ko, decode, getctx
|
||||
from mailng.lib import db
|
||||
from mailng.admin.models import Mailbox
|
||||
from modoboa.lib import _render, _ctx_ok, _ctx_ko, decode, getctx
|
||||
from modoboa.lib import db
|
||||
from modoboa.admin.models import Mailbox
|
||||
from lib import AMrelease
|
||||
from templatetags.amextras import *
|
||||
from mailng.lib.email_listing import parse_search_parameters
|
||||
from modoboa.lib.email_listing import parse_search_parameters
|
||||
from sql_listing import *
|
||||
|
||||
def __get_current_url(request):
|
||||
|
||||
@@ -10,7 +10,7 @@ functionality into Postfix.
|
||||
from django.conf.urls.defaults import include
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.utils.translation import ugettext as _
|
||||
from mailng.lib import events, parameters
|
||||
from modoboa.lib import events, parameters
|
||||
from models import *
|
||||
|
||||
def infos():
|
||||
@@ -42,8 +42,8 @@ def destroy():
|
||||
parameters.unregister_app("postfix_autoreply")
|
||||
|
||||
def urls():
|
||||
return (r'^mailng/postfix_autoreply/',
|
||||
include('mailng.extensions.postfix_autoreply.urls'))
|
||||
return (r'^modoboa/postfix_autoreply/',
|
||||
include('modoboa.extensions.postfix_autoreply.urls'))
|
||||
|
||||
def menu(**kwargs):
|
||||
import views
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from django.db import models
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from mailng.admin.models import Domain, Mailbox
|
||||
from modoboa.admin.models import Domain, Mailbox
|
||||
|
||||
class Transport(models.Model):
|
||||
domain = models.CharField(max_length=300)
|
||||
|
||||
@@ -7,5 +7,5 @@ BASEDIR=/var/www
|
||||
EGG_CACHE=""
|
||||
|
||||
PYTHON_EGG_CACHE=$EGG_CACHE PYTHONPATH=$BASEDIR \
|
||||
DJANGO_SETTINGS_MODULE=mailng.settings $PYTHON \
|
||||
$BASEDIR/mailng/scripts/postfix_autoreply/autoreply.py $1 $2
|
||||
DJANGO_SETTINGS_MODULE=modoboa.settings $PYTHON \
|
||||
$BASEDIR/modoboa/scripts/postfix_autoreply/autoreply.py $1 $2
|
||||
|
||||
@@ -5,10 +5,10 @@ import sys
|
||||
import smtplib
|
||||
from email.mime.text import MIMEText
|
||||
import datetime
|
||||
from mailng.lib import parameters
|
||||
from mailng.admin.models import Mailbox
|
||||
from mailng.extensions.postfix_autoreply import main
|
||||
from mailng.extensions.postfix_autoreply.models import ARmessage, ARhistoric
|
||||
from modoboa.lib import parameters
|
||||
from modoboa.admin.models import Mailbox
|
||||
from modoboa.extensions.postfix_autoreply import main
|
||||
from modoboa.extensions.postfix_autoreply.models import ARmessage, ARhistoric
|
||||
|
||||
if __name__ == "__main__":
|
||||
if len(sys.argv) != 3:
|
||||
|
||||
@@ -3,15 +3,15 @@
|
||||
|
||||
import sys
|
||||
from django.conf import settings
|
||||
from mailng.admin.models import Domain, Mailbox
|
||||
from modoboa.admin.models import Domain, Mailbox
|
||||
|
||||
if __name__ == "__main__":
|
||||
if not "mailng.extensions.postfix_autoreply" in settings.INSTALLED_APPS:
|
||||
if not "modoboa.extensions.postfix_autoreply" in settings.INSTALLED_APPS:
|
||||
print "Postfix autoreply extension is not activated"
|
||||
sys.exit(1)
|
||||
|
||||
import mailng.extensions.postfix_autoreply.main as par
|
||||
from mailng.extensions.postfix_autoreply.models import Transport, Alias
|
||||
import modoboa.extensions.postfix_autoreply.main as par
|
||||
from modoboa.extensions.postfix_autoreply.models import Transport, Alias
|
||||
|
||||
par.init()
|
||||
doms = Domain.objects.all()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from django.conf.urls.defaults import *
|
||||
|
||||
urlpatterns = patterns('mailng.extensions.postfix_autoreply.views',
|
||||
urlpatterns = patterns('modoboa.extensions.postfix_autoreply.views',
|
||||
url(r'^$', 'autoreply'),
|
||||
)
|
||||
|
||||
@@ -6,7 +6,7 @@ from django.contrib.auth.decorators \
|
||||
import login_required
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.utils.translation import ugettext as _
|
||||
from mailng.lib import _render, _ctx_ok, _ctx_ko, is_not_localadmin
|
||||
from modoboa.lib import _render, _ctx_ok, _ctx_ko, is_not_localadmin
|
||||
from forms import *
|
||||
from models import *
|
||||
|
||||
@@ -25,7 +25,7 @@ def autoreply(request):
|
||||
form = ARmessageForm(request.POST)
|
||||
error = None
|
||||
if form.is_valid():
|
||||
from mailng import userprefs
|
||||
from modoboa import userprefs
|
||||
|
||||
arm = form.save(commit=False)
|
||||
arm.mbox = mb
|
||||
|
||||
@@ -5,7 +5,7 @@ import time
|
||||
import datetime
|
||||
import rrdtool
|
||||
from django.utils.translation import ugettext as _
|
||||
from mailng.lib import parameters
|
||||
from modoboa.lib import parameters
|
||||
|
||||
traffic_avg_template = {
|
||||
'name' : 'traffic',
|
||||
|
||||
@@ -10,7 +10,7 @@ sent, received, bounced, rejected
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.conf.urls.defaults import *
|
||||
from mailng.lib import events, parameters
|
||||
from modoboa.lib import events, parameters
|
||||
|
||||
def infos():
|
||||
return {
|
||||
@@ -25,18 +25,18 @@ def init():
|
||||
deflt="/var/log/mail.log",
|
||||
help=_("Path to log file used to collect statistics"))
|
||||
parameters.register_admin("stats", "RRD_ROOTDIR", type="string",
|
||||
deflt="/tmp/mailng",
|
||||
deflt="/tmp/modoboa",
|
||||
help=_("Path to directory where RRD files are stored"))
|
||||
parameters.register_admin("stats", "IMG_ROOTDIR", type="string",
|
||||
deflt="/tmp/mailng",
|
||||
deflt="/tmp/modoboa",
|
||||
help=_("Path to directory where PNG files are stored"))
|
||||
|
||||
def destroy():
|
||||
events.unregister("AdminMenuDisplay", menu)
|
||||
|
||||
def urls():
|
||||
return (r'^mailng/stats/',
|
||||
include('mailng.extensions.stats.urls'))
|
||||
return (r'^modoboa/stats/',
|
||||
include('modoboa.extensions.stats.urls'))
|
||||
|
||||
def menu(**kwargs):
|
||||
if kwargs["target"] == "admin_menu_bar":
|
||||
|
||||
@@ -7,9 +7,9 @@ import re
|
||||
import rrdtool
|
||||
import string, pdb
|
||||
from optparse import OptionParser
|
||||
from mailng.lib import parameters
|
||||
from mailng.admin.models import Domain
|
||||
import mailng.extensions.stats.grapher as grapher
|
||||
from modoboa.lib import parameters
|
||||
from modoboa.admin.models import Domain
|
||||
import modoboa.extensions.stats.grapher as grapher
|
||||
|
||||
"""
|
||||
Postfix log parser.
|
||||
@@ -257,7 +257,7 @@ class LogParser(object):
|
||||
G.make_defaults(dom, tpl=grapher.size_avg_template)
|
||||
|
||||
if __name__ == "__main__":
|
||||
from mailng.extensions.stats import main
|
||||
from modoboa.extensions.stats import main
|
||||
|
||||
main.init()
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from django.conf.urls.defaults import *
|
||||
|
||||
urlpatterns = patterns('mailng.extensions.stats.views',
|
||||
urlpatterns = patterns('modoboa.extensions.stats.views',
|
||||
url(r'^$', 'adminindex', name='fullindex'),
|
||||
url(r'^(?P<dom_id>\d+)/$', 'index', name='domindex'),
|
||||
url(r'^graph/$', "getgraph", name="getgraph_root"),
|
||||
|
||||
@@ -5,9 +5,9 @@ from django.core.urlresolvers import reverse
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.utils import simplejson
|
||||
from django.template.loader import render_to_string
|
||||
from mailng.lib import parameters, _render, getctx
|
||||
from mailng.admin.views import good_domain
|
||||
from mailng.admin.models import Domain, Mailbox
|
||||
from modoboa.lib import parameters, _render, getctx
|
||||
from modoboa.admin.views import good_domain
|
||||
from modoboa.admin.models import Domain, Mailbox
|
||||
from django.contrib.auth.decorators \
|
||||
import login_required, user_passes_test, permission_required
|
||||
from extensions.stats.grapher import *
|
||||
|
||||
@@ -12,9 +12,9 @@ from datetime import datetime, timedelta
|
||||
from email.header import decode_header
|
||||
import email.utils
|
||||
from django.utils.translation import ugettext as _
|
||||
from mailng.lib import decode, tables, imap_utf7, Singleton
|
||||
from mailng.lib.email_listing import MBconnector, EmailListing, Email
|
||||
from mailng.lib import tables, imap_utf7, parameters
|
||||
from modoboa.lib import decode, tables, imap_utf7, Singleton
|
||||
from modoboa.lib.email_listing import MBconnector, EmailListing, Email
|
||||
from modoboa.lib import tables, imap_utf7, parameters
|
||||
|
||||
|
||||
class WMtable(tables.Table):
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.conf.urls.defaults import include
|
||||
from mailng.lib import events, parameters
|
||||
from modoboa.lib import events, parameters
|
||||
|
||||
def init():
|
||||
events.register("UserMenuDisplay", menu)
|
||||
@@ -50,8 +50,8 @@ def infos():
|
||||
}
|
||||
|
||||
def urls():
|
||||
return (r'^mailng/webmail/',
|
||||
include('mailng.extensions.webmail.urls'))
|
||||
return (r'^modoboa/webmail/',
|
||||
include('modoboa.extensions.webmail.urls'))
|
||||
|
||||
def menu(**kwargs):
|
||||
import views
|
||||
|
||||
@@ -2,9 +2,9 @@ from django import template
|
||||
from django.template.loader import render_to_string
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.core.urlresolvers import reverse
|
||||
from mailng.extensions import webmail
|
||||
from mailng.extensions.webmail.lib import IMAPheader
|
||||
from mailng.lib import parameters
|
||||
from modoboa.extensions import webmail
|
||||
from modoboa.extensions.webmail.lib import IMAPheader
|
||||
from modoboa.lib import parameters
|
||||
|
||||
register = template.Library()
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from django.conf.urls.defaults import *
|
||||
|
||||
urlpatterns = patterns('mailng.extensions.webmail.views',
|
||||
urlpatterns = patterns('modoboa.extensions.webmail.views',
|
||||
(r'^$', "index"),
|
||||
(r'^compose/$', "compose"),
|
||||
(r'^move/$', "move"),
|
||||
|
||||
@@ -8,9 +8,9 @@ from django.utils import simplejson
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from mailng.admin.models import Mailbox
|
||||
from mailng.lib import parameters, _render, _render_error, getctx, is_not_localadmin
|
||||
from mailng.lib.email_listing import parse_search_parameters
|
||||
from modoboa.admin.models import Mailbox
|
||||
from modoboa.lib import parameters, _render, _render_error, getctx, is_not_localadmin
|
||||
from modoboa.lib.email_listing import parse_search_parameters
|
||||
from lib import *
|
||||
from forms import *
|
||||
from templatetags.webextras import *
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ from django.template import RequestContext
|
||||
from django.shortcuts import render_to_response
|
||||
from django.template.loader import render_to_string
|
||||
from django.utils.translation import ugettext as _
|
||||
from mailng.lib import parameters
|
||||
from modoboa.lib import parameters
|
||||
|
||||
def exec_cmd(cmd, **kwargs):
|
||||
import subprocess
|
||||
|
||||
+2
-2
@@ -1,10 +1,10 @@
|
||||
from django.contrib.auth.models import User
|
||||
from mailng.admin.models import Mailbox
|
||||
from modoboa.admin.models import Mailbox
|
||||
import hashlib
|
||||
import crypt
|
||||
import string
|
||||
from random import Random
|
||||
from mailng.lib import parameters
|
||||
from modoboa.lib import parameters
|
||||
|
||||
class SimpleBackend:
|
||||
def authenticate(self, username=None, password=None):
|
||||
|
||||
@@ -10,7 +10,7 @@ from lxml import etree
|
||||
from django.template.loader import render_to_string
|
||||
from django.template import Template, Context
|
||||
from django.utils.translation import ugettext as _
|
||||
from mailng.lib import _render, decode
|
||||
from modoboa.lib import _render, decode
|
||||
|
||||
attached_map = {}
|
||||
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import string
|
||||
from mailng.lib.models import *
|
||||
from modoboa.lib.models import *
|
||||
|
||||
"""
|
||||
This interface provides a simple way to declare and store parameters
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import os
|
||||
from django.conf import settings
|
||||
from django import template
|
||||
from mailng.lib import exec_cmd
|
||||
from modoboa.lib import exec_cmd
|
||||
|
||||
register = template.Library()
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ if __name__ == "__main__":
|
||||
if not os.path.isdir(extdir):
|
||||
print "Extension not found"
|
||||
sys.exit(1)
|
||||
extname = "mailng.extensions.%s" % sys.argv[1]
|
||||
extname = "modoboa.extensions.%s" % sys.argv[1]
|
||||
update_extension(sys.argv[1], extdir, sys.argv[2])
|
||||
if sys.argv[2] == "on":
|
||||
print "Make sure you have added '%s' to INSTALLED_APPS (inside settings.py)" % extname
|
||||
|
||||
+10
-10
@@ -1,4 +1,4 @@
|
||||
# Django settings for mailng project.
|
||||
# Django settings for modoboa project.
|
||||
import os.path
|
||||
|
||||
DEBUG = False
|
||||
@@ -11,7 +11,7 @@ ADMINS = (
|
||||
MANAGERS = ADMINS
|
||||
|
||||
DATABASE_ENGINE = '' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
|
||||
DATABASE_NAME = 'mailng' # Or path to database file if using sqlite3.
|
||||
DATABASE_NAME = 'modoboa' # Or path to database file if using sqlite3.
|
||||
DATABASE_USER = '' # Not used with sqlite3.
|
||||
DATABASE_PASSWORD = '' # Not used with sqlite3.
|
||||
DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3.
|
||||
@@ -34,7 +34,7 @@ SITE_ID = 1
|
||||
# to load the internationalization machinery.
|
||||
USE_I18N = True
|
||||
|
||||
LOGIN_REDIRECT_URL = '/mailng/admin/'
|
||||
LOGIN_REDIRECT_URL = '/modoboa/admin/'
|
||||
|
||||
# Absolute path to the directory that holds media.
|
||||
# Example: "/home/media/media.lawrence.com/"
|
||||
@@ -66,7 +66,7 @@ MIDDLEWARE_CLASSES = (
|
||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||
)
|
||||
|
||||
ROOT_URLCONF = 'mailng.urls'
|
||||
ROOT_URLCONF = 'modoboa.urls'
|
||||
|
||||
MAILNG_DIR = os.path.dirname(__file__)
|
||||
STATIC_ROOTDIR = os.path.join(MAILNG_DIR, 'static')
|
||||
@@ -83,18 +83,18 @@ INSTALLED_APPS = (
|
||||
'django.contrib.sessions',
|
||||
'django.contrib.sites',
|
||||
'south',
|
||||
'mailng',
|
||||
'mailng.lib',
|
||||
'mailng.admin',
|
||||
'mailng.userprefs',
|
||||
'modoboa',
|
||||
'modoboa.lib',
|
||||
'modoboa.admin',
|
||||
'modoboa.userprefs',
|
||||
|
||||
# MailNG extensions here.
|
||||
# 'mailng.extensions.postfix_autoreply'
|
||||
# 'modoboa.extensions.postfix_autoreply'
|
||||
)
|
||||
|
||||
AUTHENTICATION_BACKENDS = (
|
||||
'django.contrib.auth.backends.ModelBackend',
|
||||
'mailng.lib.authbackends.SimpleBackend'
|
||||
'modoboa.lib.authbackends.SimpleBackend'
|
||||
)
|
||||
|
||||
# Amavis quarantine
|
||||
|
||||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
+2
-2
@@ -250,7 +250,7 @@ confirmation = function(question, action, callback) {
|
||||
}
|
||||
}
|
||||
});
|
||||
SqueezeBox.open("/mailng/userprefs/confirm/?question=" + question);
|
||||
SqueezeBox.open("/modoboa/userprefs/confirm/?question=" + question);
|
||||
}
|
||||
|
||||
setDivHeight = function(id, extrah, modulo) {
|
||||
@@ -331,4 +331,4 @@ gethref = function(obj) {
|
||||
var baseurl = "http://" + location.host + location.pathname;
|
||||
|
||||
return url.replace(baseurl, "");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
</li>
|
||||
|
||||
<li>
|
||||
{% url mailng.auth.views.dologout as logout_url %}
|
||||
{% url modoboa.auth.views.dologout as logout_url %}
|
||||
<a href="{{ logout_url }}">
|
||||
<img src="/static/pics/logout.png" border="0" />{% trans "Logout" %}</a>
|
||||
</li>
|
||||
@@ -71,7 +71,7 @@
|
||||
</div>
|
||||
<div id="page">
|
||||
<div id="header">
|
||||
<img class="logo" src="/static/css/mailng.png" />
|
||||
<img class="logo" src="/static/css/modoboa.png" />
|
||||
<h1>{% block middletitle %}{% endblock %}</h1>
|
||||
<div id="menubar" class="menubar">
|
||||
{% block menu %}{% endblock %}
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
<body>
|
||||
<div id="loginbox">
|
||||
<div id="logo">
|
||||
<img src="/static/css/mailng.png" />
|
||||
<img src="/static/css/modoboa.png" />
|
||||
{% if error %}
|
||||
<div class="error"><p>{{ error }}</p></div>
|
||||
{% endif %}
|
||||
|
||||
@@ -5,12 +5,12 @@ from django.conf import settings
|
||||
# from django.contrib import admin
|
||||
# admin.autodiscover()
|
||||
|
||||
from mailng.extensions import *
|
||||
from mailng.lib import parameters
|
||||
from modoboa.extensions import *
|
||||
from modoboa.lib import parameters
|
||||
|
||||
urlpatterns = patterns('',
|
||||
# Example:
|
||||
# (r'^mailng/', include('mailng.foo.urls')),
|
||||
# (r'^modoboa/', include('modoboa.foo.urls')),
|
||||
|
||||
# Uncomment the admin/doc line below and add 'django.contrib.admindocs'
|
||||
# to INSTALLED_APPS to enable admin documentation:
|
||||
@@ -19,12 +19,12 @@ urlpatterns = patterns('',
|
||||
# Uncomment the next line to enable the admin:
|
||||
# (r'^admin/(.*)', admin.site.root),
|
||||
|
||||
(r'^mailng/admin/', include('mailng.admin.urls')),
|
||||
(r'^mailng/userprefs/', include('mailng.userprefs.urls')),
|
||||
(r'^accounts/login/$', 'mailng.auth.views.dologin'),
|
||||
(r'^accounts/logout/$', 'mailng.auth.views.dologout'),
|
||||
(r'^modoboa/admin/', include('modoboa.admin.urls')),
|
||||
(r'^modoboa/userprefs/', include('modoboa.userprefs.urls')),
|
||||
(r'^accounts/login/$', 'modoboa.auth.views.dologin'),
|
||||
(r'^accounts/logout/$', 'modoboa.auth.views.dologout'),
|
||||
(r'^jsi18n/$', 'django.views.i18n.javascript_catalog',
|
||||
{'packages': ('mailng',),}),
|
||||
{'packages': ('modoboa',),}),
|
||||
|
||||
*loadextensions()
|
||||
)
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
from django import forms
|
||||
from mailng.admin.models import Mailbox
|
||||
from mailng.lib.authbackends import _check_password
|
||||
from modoboa.admin.models import Mailbox
|
||||
from modoboa.lib.authbackends import _check_password
|
||||
from django.contrib.auth.models import check_password
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ from django import template
|
||||
from django.template.loader import render_to_string
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.core.urlresolvers import reverse
|
||||
from mailng import userprefs
|
||||
from mailng.lib import events
|
||||
from modoboa import userprefs
|
||||
from modoboa.lib import events
|
||||
|
||||
register = template.Library()
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
from django.conf.urls.defaults import *
|
||||
|
||||
urlpatterns = patterns('mailng.userprefs.views',
|
||||
urlpatterns = patterns('modoboa.userprefs.views',
|
||||
url(r'^$', 'index'),
|
||||
(r'^preferences/$', 'preferences'),
|
||||
(r'^preferences/save/$', 'savepreferences'),
|
||||
|
||||
+3
-3
@@ -8,10 +8,10 @@ from django.contrib.auth.decorators \
|
||||
import login_required
|
||||
from django.utils import simplejson
|
||||
from django.utils.translation import ugettext as _
|
||||
from mailng.lib import _render, _ctx_ok, _ctx_ko, parameters
|
||||
from mailng.lib.authbackends import crypt_password
|
||||
from modoboa.lib import _render, _ctx_ok, _ctx_ko, parameters
|
||||
from modoboa.lib.authbackends import crypt_password
|
||||
from forms import ChangePasswordForm
|
||||
from mailng.admin.models import Mailbox
|
||||
from modoboa.admin.models import Mailbox
|
||||
|
||||
@login_required
|
||||
def index(request):
|
||||
|
||||
Reference in New Issue
Block a user