mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
@@ -1 +1 @@
|
||||
[{"pk": 1, "model": "auth.group", "fields": {"name": "DomainAdmins", "permissions": [["add_user", "auth", "user"], ["change_user", "auth", "user"], ["delete_user", "auth", "user"], ["add_mailbox", "admin", "mailbox"], ["change_mailbox", "admin", "mailbox"], ["delete_mailbox", "admin", "mailbox"], ["add_alias", "admin", "alias"], ["change_alias", "admin", "alias"], ["delete_alias", "admin", "alias"], ["view_mailboxes", "admin", "mailbox"], ["view_aliases", "admin", "alias"], ["view_domaliases", "admin", "domainalias"], ["add_domainalias", "admin", "domainalias"], ["change_domainalias", "admin", "domainalias"], ["delete_domainalias", "admin", "domainalias"]]}},{"pk": 2, "model": "auth.group", "fields": {"name": "SimpleUsers", "permissions": []}},{"pk": 1, "model": "auth.user", "fields": {"username": "admin", "first_name": "", "last_name": "", "is_active": true, "is_superuser": true, "is_staff": false, "last_login": "2012-01-26 15:19:25", "groups": [], "user_permissions": [], "password": "{CRYPT}dTTsGDkA5ZHKg", "email": "", "date_joined": "2012-01-26 15:19:25"}},{"pk": 1, "model": "admin.objectaccess", "fields": {"is_owner": false, "user": 1, "content_type": ["admin", "user"], "object_id": 1}}]
|
||||
[{"pk": 1, "model": "auth.group", "fields": {"name": "DomainAdmins", "permissions": [["add_user", "auth", "user"], ["change_user", "auth", "user"], ["delete_user", "auth", "user"], ["view_domains", "admin", "domain"], ["add_mailbox", "admin", "mailbox"], ["change_mailbox", "admin", "mailbox"], ["delete_mailbox", "admin", "mailbox"], ["add_alias", "admin", "alias"], ["change_alias", "admin", "alias"], ["delete_alias", "admin", "alias"], ["view_mailboxes", "admin", "mailbox"], ["view_aliases", "admin", "alias"], ["view_domaliases", "admin", "domainalias"], ["add_domainalias", "admin", "domainalias"], ["change_domainalias", "admin", "domainalias"], ["delete_domainalias", "admin", "domainalias"]]}},{"pk": 2, "model": "auth.group", "fields": {"name": "SimpleUsers", "permissions": []}},{"pk": 1, "model": "auth.user", "fields": {"username": "admin", "first_name": "", "last_name": "", "is_active": true, "is_superuser": true, "is_staff": false, "last_login": "2012-01-26 15:19:25", "groups": [], "user_permissions": [], "password": "{CRYPT}dTTsGDkA5ZHKg", "email": "", "date_joined": "2012-01-26 15:19:25"}},{"pk": 1, "model": "admin.objectaccess", "fields": {"is_owner": false, "user": 1, "content_type": ["admin", "user"], "object_id": 1}}]
|
||||
|
||||
+11
-11
@@ -101,10 +101,13 @@ class DomainFormGeneral(forms.ModelForm, DynamicForm):
|
||||
class DomainForm(TabForms):
|
||||
def __init__(self, user, *args, **kwargs):
|
||||
self.user = user
|
||||
self.forms = [
|
||||
dict(id="general", title=_("General"), formtpl="admin/domain_general_form.html",
|
||||
cls=DomainFormGeneral, mandatory=True),
|
||||
]
|
||||
self.forms = []
|
||||
if user.has_perm("admin.change_domain"):
|
||||
self.forms.append(dict(
|
||||
id="general", title=_("General"), formtpl="admin/domain_general_form.html",
|
||||
cls=DomainFormGeneral, mandatory=True
|
||||
))
|
||||
|
||||
cbargs = [user]
|
||||
if kwargs.has_key("instances"):
|
||||
cbargs += [kwargs["instances"]["general"]]
|
||||
@@ -115,14 +118,11 @@ class DomainForm(TabForms):
|
||||
def save(self, user):
|
||||
"""Custom save method
|
||||
|
||||
As forms interact with each other, it is simpler to make
|
||||
custom code to save them.
|
||||
As forms interact with each other, it is easier to make custom
|
||||
code to save them.
|
||||
"""
|
||||
self.forms[0]["instance"].save(user)
|
||||
if len(self.forms) <= 1:
|
||||
return
|
||||
for f in self.forms[1:]:
|
||||
f["instance"].save()
|
||||
for f in self.forms:
|
||||
f["instance"].save(user)
|
||||
|
||||
class DlistForm(forms.ModelForm, DynamicForm):
|
||||
email = forms.EmailField(
|
||||
|
||||
@@ -62,6 +62,9 @@ def settings_menu(selection, user):
|
||||
|
||||
@register.simple_tag
|
||||
def domains_menu(selection, user):
|
||||
if not user.has_perm("admin.add_domain"):
|
||||
return ""
|
||||
|
||||
entries = [
|
||||
{"name" : "newdomain",
|
||||
"label" : _("Add domain"),
|
||||
@@ -76,6 +79,7 @@ def domains_menu(selection, user):
|
||||
"modal" : True,
|
||||
"modalcb" : "importform_cb"}
|
||||
]
|
||||
|
||||
return render_to_string('common/menu.html', {
|
||||
"entries" : entries,
|
||||
"css" : "nav nav-list",
|
||||
@@ -126,13 +130,14 @@ def identities_menu(user):
|
||||
|
||||
@register.simple_tag
|
||||
def domain_actions(user, domid):
|
||||
actions = [
|
||||
{"name" : "deldomain",
|
||||
"url" : reverse(admin.views.deldomain) + "?selection=%s" % domid,
|
||||
"img" : "icon-trash"},
|
||||
]
|
||||
|
||||
return render_actions(actions)
|
||||
if user.has_perm("admin.delete_domain"):
|
||||
actions = [
|
||||
{"name" : "deldomain",
|
||||
"url" : reverse(admin.views.deldomain) + "?selection=%s" % domid,
|
||||
"img" : "icon-trash"},
|
||||
]
|
||||
return render_actions(actions)
|
||||
return "---"
|
||||
|
||||
@register.simple_tag
|
||||
def identity_actions(user, iid):
|
||||
@@ -204,16 +209,22 @@ def param(app, definition):
|
||||
if definition["type"] == "text":
|
||||
result += "<textarea name='%s' id='%s'>%s</textarea>" \
|
||||
% (name, name, value)
|
||||
|
||||
if definition["type"] == "list_yesno":
|
||||
for v in [("yes", _("Yes")), ("no", _("No"))]:
|
||||
checked = "checked" if value == v[0] else ""
|
||||
result += """<label for="%(id)s" class="radio inline">
|
||||
%(label)s
|
||||
<input type="radio" name="%(id)s" id="%(id)s" value="%(value)s"%(checked)s />
|
||||
</label>
|
||||
""" % dict(id=name, value=v[0], label=v[1], checked=checked)
|
||||
|
||||
if definition["type"] in ["list", "list_yesno"]:
|
||||
if definition["type"] == "list":
|
||||
result += """
|
||||
<select name='%s' id='%s'>""" % (name, name)
|
||||
values = []
|
||||
if definition["type"] == "list_yesno":
|
||||
values = [("yes", _("Yes")), ("no", _("No"))]
|
||||
else:
|
||||
if definition.has_key("values"):
|
||||
values = definition["values"]
|
||||
if definition.has_key("values"):
|
||||
values = definition["values"]
|
||||
for v in values:
|
||||
selected = ""
|
||||
if value == v[0]:
|
||||
|
||||
@@ -91,7 +91,7 @@ def newdomain(request, tplname="admin/newdomainform.html"):
|
||||
return _render(request, tplname, commonctx)
|
||||
|
||||
@login_required
|
||||
@permission_required("admin.change_domain")
|
||||
@permission_required("admin.view_domains")
|
||||
def editdomain(request, dom_id, tplname="admin/editdomainform.html"):
|
||||
domain = Domain.objects.get(pk=dom_id)
|
||||
if not request.user.can_access(domain):
|
||||
|
||||
@@ -143,7 +143,7 @@ def alert(msg, typ):
|
||||
return t.render(Context(dict(type=typ, msg=msg)))
|
||||
|
||||
@register.simple_tag
|
||||
def render_link(linkdef, mdclass=None):
|
||||
def render_link(linkdef, mdclass=""):
|
||||
t = Template("""<a href="{{ link.url }}" name="{{ link.name }}" title="{{ link.title }}"
|
||||
{% if link.modal %}data-toggle="ajaxmodal{% if link.autowidth %}-autowidth{% endif %}"{% endif %}
|
||||
{% if link.modalcb %}modalcb="{{ link.modalcb }}"{% endif %}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
</ul>
|
||||
</li>
|
||||
{% else %}
|
||||
<li {% if selection == entry.name %}class="active"{% endif %}>
|
||||
<li class="{% if selection == entry.name %}active{% endif %}">
|
||||
{% render_link entry %}
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
Reference in New Issue
Block a user