mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-20 06:08:35 +02:00
Ticket #52
From now, users can store their own "preferences" inside MailNG.
This commit is contained in:
+14
-14
@@ -3,17 +3,17 @@
|
||||
from mailng.lib import parameters
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
parameters.register("admin","STORAGE_PATH", "string", "/var/vmail",
|
||||
help=_("Path to the root directory where messages are stored"))
|
||||
parameters.register("admin", "VIRTUAL_UID", "string", "vmail",
|
||||
help=_("UID of the virtual user which owns domains/mailboxes/messages on the filesystem"))
|
||||
parameters.register("admin", "VIRTUAL_GID", "string", "vmail",
|
||||
help=_("GID of the virtual user which owns domains/mailboxes/messages on the filesystem"))
|
||||
parameters.register("admin", "MAILBOX_TYPE", "list", "maildir",
|
||||
values=[("maildir", "maildir"), ("mbox", "mbox")],
|
||||
help=_("Mailboxes storage format"))
|
||||
parameters.register("admin", "MAILDIR_ROOT", "string", ".maildir",
|
||||
help=_("Sub-directory (inside the mailbox) where messages are stored when using the maildir format"))
|
||||
parameters.register("admin", "PASSWORD_SCHEME", "list", "crypt",
|
||||
values=[("crypt", "crypt"), ("md5", "md5"), ("clear", "clear")],
|
||||
help=_("Scheme used to crypt mailbox passwords"))
|
||||
parameters.register_admin("admin","STORAGE_PATH", type="string", deflt="/var/vmail",
|
||||
help=_("Path to the root directory where messages are stored"))
|
||||
parameters.register_admin("admin", "VIRTUAL_UID", type="string", deflt="vmail",
|
||||
help=_("UID of the virtual user which owns domains/mailboxes/messages on the filesystem"))
|
||||
parameters.register_admin("admin", "VIRTUAL_GID", type="string", deflt="vmail",
|
||||
help=_("GID of the virtual user which owns domains/mailboxes/messages on the filesystem"))
|
||||
parameters.register_admin("admin", "MAILBOX_TYPE", type="list", deflt="maildir",
|
||||
values=[("maildir", "maildir"), ("mbox", "mbox")],
|
||||
help=_("Mailboxes storage format"))
|
||||
parameters.register_admin("admin", "MAILDIR_ROOT", type="string", deflt=".maildir",
|
||||
help=_("Sub-directory (inside the mailbox) where messages are stored when using the maildir format"))
|
||||
parameters.register_admin("admin", "PASSWORD_SCHEME", type="list", deflt="crypt",
|
||||
values=[("crypt", "crypt"), ("md5", "md5"), ("clear", "clear")],
|
||||
help=_("Scheme used to crypt mailbox passwords"))
|
||||
|
||||
+8
-8
@@ -19,17 +19,17 @@ class Domain(models.Model):
|
||||
)
|
||||
|
||||
def create_dir(self):
|
||||
path = "%s/%s" % (parameters.get("admin", "STORAGE_PATH"), self.name)
|
||||
path = "%s/%s" % (parameters.get_admin("admin", "STORAGE_PATH"), self.name)
|
||||
return exec_as_vuser("mkdir -p %s" % path)
|
||||
|
||||
def rename_dir(self, newname):
|
||||
stpath = parameters.get("admin", "STORAGE_PATH")
|
||||
stpath = parameters.get_admin("admin", "STORAGE_PATH")
|
||||
return exec_as_vuser("mv %s/%s %s/%s" \
|
||||
% (stpath, self.name, stpath, newname))
|
||||
|
||||
def delete_dir(self):
|
||||
return exec_as_vuser("rm -r %s/%s" \
|
||||
% (parameters.get("admin", "STORAGE_PATH"),
|
||||
% (parameters.get_admin("admin", "STORAGE_PATH"),
|
||||
self.name))
|
||||
|
||||
def __str__(self):
|
||||
@@ -57,14 +57,14 @@ class Mailbox(models.Model):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(Mailbox, self).__init__(*args, **kwargs)
|
||||
self.mbtype = parameters.get("admin", "MAILBOX_TYPE")
|
||||
self.mdirroot = parameters.get("admin", "MAILDIR_ROOT")
|
||||
self.mbtype = parameters.get_admin("admin", "MAILBOX_TYPE")
|
||||
self.mdirroot = parameters.get_admin("admin", "MAILDIR_ROOT")
|
||||
|
||||
def __str__(self):
|
||||
return "%s" % (self.address)
|
||||
|
||||
def create_dir(self, domain):
|
||||
path = "%s/%s/%s" % (parameters.get("admin", "STORAGE_PATH"),
|
||||
path = "%s/%s/%s" % (parameters.get_admin("admin", "STORAGE_PATH"),
|
||||
domain.name, self.address)
|
||||
if os.path.exists(path):
|
||||
return True
|
||||
@@ -86,7 +86,7 @@ class Mailbox(models.Model):
|
||||
return True
|
||||
|
||||
def rename_dir(self, domain, newaddress):
|
||||
path = "%s/%s" % (parameters.get("admin", "STORAGE_PATH"), domain)
|
||||
path = "%s/%s" % (parameters.get_admin("admin", "STORAGE_PATH"), domain)
|
||||
code = exec_as_vuser("mv %s/%s %s/%s" \
|
||||
% (path, self.address, path, newaddress))
|
||||
if code:
|
||||
@@ -95,7 +95,7 @@ class Mailbox(models.Model):
|
||||
|
||||
def delete_dir(self):
|
||||
return exec_as_vuser("rm -r %s/%s/%s" \
|
||||
% (parameters.get("admin", "STORAGE_PATH"),
|
||||
% (parameters.get_admin("admin", "STORAGE_PATH"),
|
||||
self.domain.name, self.address))
|
||||
|
||||
class Alias(models.Model):
|
||||
|
||||
+11
-10
@@ -179,8 +179,8 @@ def newmailbox(request, dom_id=None):
|
||||
|
||||
mb.password = crypt_password(request.POST["password1"])
|
||||
|
||||
mb.uid = pwd.getpwnam(parameters.get("admin", "VIRTUAL_UID")).pw_uid
|
||||
mb.gid = pwd.getpwnam(parameters.get("admin", "VIRTUAL_GID")).pw_gid
|
||||
mb.uid = pwd.getpwnam(parameters.get_admin("admin", "VIRTUAL_UID")).pw_uid
|
||||
mb.gid = pwd.getpwnam(parameters.get_admin("admin", "VIRTUAL_GID")).pw_gid
|
||||
mb.domain = domain
|
||||
mb.quota = request.POST["quota"]
|
||||
if not mb.quota:
|
||||
@@ -415,14 +415,15 @@ def viewparameters(request):
|
||||
gparams = []
|
||||
for app in apps:
|
||||
tmp = {"name" : app, "params" : []}
|
||||
for p in sorted(parameters._params[app]):
|
||||
for p in sorted(parameters._params[app]['A']):
|
||||
param_def = parameters._params[app]['A'][p]
|
||||
newdef = {"name" : p,
|
||||
"value" : parameters.get(app, p),
|
||||
"help" : parameters._params[app][p]["help"],
|
||||
"default" : parameters._params[app][p]["default"],
|
||||
"type" : parameters._params[app][p]["type"]}
|
||||
if "values" in parameters._params[app][p].keys():
|
||||
newdef["values"] = parameters._params[app][p]["values"]
|
||||
"value" : parameters.get_admin(app, p),
|
||||
"help" : param_def["help"],
|
||||
"default" : param_def["default"],
|
||||
"type" : param_def["type"]}
|
||||
if "values" in param_def.keys():
|
||||
newdef["values"] = param_def["values"]
|
||||
tmp["params"] += [newdef]
|
||||
gparams += [tmp]
|
||||
|
||||
@@ -437,6 +438,6 @@ def saveparameters(request):
|
||||
if pname == "update":
|
||||
continue
|
||||
app, name = pname.split('.')
|
||||
parameters.save(app, name, v)
|
||||
parameters.save_admin(app, name, v)
|
||||
request.user.message_set.create(message=_("Configuration saved."))
|
||||
return HttpResponseRedirect(reverse(admin.views.viewparameters))
|
||||
|
||||
Reference in New Issue
Block a user