mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-19 05:58:34 +02:00
Some work about permissions. Not finished yet...
This commit is contained in:
@@ -36,3 +36,10 @@ class AliasForm(forms.ModelForm):
|
||||
model = Alias
|
||||
fields = ('address', 'mbox', 'enabled')
|
||||
|
||||
class PermissionForm(forms.Form):
|
||||
domain = forms.ModelChoiceField(queryset=Domain.objects.all(), label=_("Domain"),
|
||||
required=True)
|
||||
user = forms.ChoiceField(label=_("User"), required=True)
|
||||
role = forms.ChoiceField(label=_("Role"), required=True,
|
||||
choices=(("SuperAdmin", _("Super administrator")),
|
||||
("DomainAdmin", _("Domain administrator"))))
|
||||
|
||||
@@ -39,6 +39,9 @@ class Domain(models.Model):
|
||||
return False
|
||||
return True
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
class Mailbox(models.Model):
|
||||
name = models.CharField(_('name'), max_length=100)
|
||||
address = models.CharField(_('address'), max_length=100)
|
||||
|
||||
@@ -16,4 +16,5 @@ urlpatterns = patterns('mailng.admin.views',
|
||||
url(r'^domains/(?P<dom_id>\d+)/aliases/(?P<mbox_id>\d+)/$', "aliases", name="mbox-aliases"),
|
||||
(r'^domains/(?P<dom_id>\d+)/delalias/(?P<alias_id>\d+)/$', 'delalias'),
|
||||
(r'^settings/$', 'settings'),
|
||||
(r'^settings/addperm/$', 'addpermission')
|
||||
)
|
||||
|
||||
+13
-2
@@ -10,7 +10,7 @@ from django.contrib.auth.decorators import login_required
|
||||
from django.contrib.auth.models import User
|
||||
from mailng import admin
|
||||
from mailng.admin.models import Domain, Mailbox, Alias
|
||||
from forms import MailboxForm, DomainForm, AliasForm
|
||||
from forms import MailboxForm, DomainForm, AliasForm, PermissionForm
|
||||
import md5
|
||||
|
||||
def _ctx_ok(url):
|
||||
@@ -280,4 +280,15 @@ def delalias(request, dom_id, alias_id):
|
||||
|
||||
@login_required
|
||||
def settings(request):
|
||||
return _render(request, 'admin/permissions.html', {})
|
||||
admins = User.objects.filter(is_superuser=True)
|
||||
domadmins = User.objects.filter(groups__name="DomainAdmins")
|
||||
return _render(request, 'admin/permissions.html', {
|
||||
"admins" : admins, "domadmins" : domadmins
|
||||
})
|
||||
|
||||
@login_required
|
||||
def addpermission(request):
|
||||
form = PermissionForm()
|
||||
return _render(request, 'admin/addpermission.html', {
|
||||
"form" : form
|
||||
})
|
||||
|
||||
@@ -146,7 +146,7 @@ msgstr "Domaines disponibles"
|
||||
|
||||
#: templates/admin/domains.html:13
|
||||
msgid "No domain defined."
|
||||
msgstr "Aucun alias défini."
|
||||
msgstr "Aucun domaine défini."
|
||||
|
||||
#: templates/admin/domains.html:18 templates/admin/mailboxes.html:15
|
||||
msgid "Name"
|
||||
|
||||
@@ -37,4 +37,10 @@ window.addEvent("domready", function() {
|
||||
|
||||
if ($("aliasform"))
|
||||
$("aliasform").addEvent("submit", alias_submit);
|
||||
|
||||
if ($("permform")) {
|
||||
$("id_domain").addEvent("change", function(event) {
|
||||
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
window.addEvent('domready', function() {
|
||||
SqueezeBox.assign($$('a.boxed'), {
|
||||
parse: 'rel',
|
||||
|
||||
});
|
||||
});
|
||||
@@ -254,6 +254,10 @@ body {
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
#setcontent {
|
||||
margin: 0px auto;
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
.button {
|
||||
margin-left: 35px;
|
||||
@@ -272,4 +276,8 @@ body {
|
||||
|
||||
.header h1 {
|
||||
font-size: medium;
|
||||
}
|
||||
|
||||
#setcontent h4 {
|
||||
margin-top: 0;
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{% extends "admin/layout_simple.html" %}
|
||||
{% load i18n %}
|
||||
{% block html_head %}
|
||||
<script src="/static/js/form.js" type="text/javascript"></script>
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<div class="title"><h1>{% trans "Add permission" %}</h1></div>
|
||||
|
||||
{% if error %}<div class="error">{{ error }}</div>{% endif %}
|
||||
{% url admin.views.add_permission as addperm_url %}
|
||||
<form action="{{ addperm_url }}" method="POST" id="permform" name="permform">
|
||||
{% include "admin/genericform.html" %}
|
||||
<div class="spacer"></div>
|
||||
|
||||
<div class="lastrow" align="center">
|
||||
<input type="submit" name="submit" value="{% trans 'Create' %}" />
|
||||
</div>
|
||||
</form>
|
||||
{% endblock %}
|
||||
@@ -2,4 +2,37 @@
|
||||
{% block menu %}
|
||||
{% load admin_extras %}
|
||||
{% settings_menu "permissions" %}
|
||||
{% endblock %}
|
||||
{% block setcontent %}
|
||||
{% load i18n %}
|
||||
{% if not admins %}
|
||||
<p>{% trans "No superuser defined?!" %}</p>
|
||||
{% else %}
|
||||
<h4>Super admins</h4>
|
||||
<table>
|
||||
<tr>
|
||||
<th width="50px">{% trans "Actions" %}</th>
|
||||
<th>{% trans "Full name" %}</th>
|
||||
<th>{% trans "User name" %}</th>
|
||||
<th>{% trans "Enabled" %}</th>
|
||||
</tr>
|
||||
{% for admin in admins %}
|
||||
<tr class="{% cycle 'odd' 'even' %}">
|
||||
<td>
|
||||
<a href=""><img src="/static/pics/remove.png" border="0" title="{% trans 'Remove permission' %}" /></a>
|
||||
</td>
|
||||
<td>{{ admin.first_name }} {{ admin.last_name }}</td>
|
||||
<td>{{ admin.username }}</td>
|
||||
<td>{{ admin.is_active }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
<br/><br/>
|
||||
{% endif %}
|
||||
<h4>Domain admins</h4>
|
||||
{% if not domadmins %}
|
||||
<p>{% trans "No domain admin defined." %}</p>
|
||||
{% else %}
|
||||
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
@@ -1,5 +1,6 @@
|
||||
{% extends "admin/layout.html" %}
|
||||
{% block html_head %}
|
||||
<script src="/static/js/settings.js" type="text/javascript"></script>
|
||||
{% endblock %}
|
||||
{% block mainframe %}
|
||||
{% load i18n %}
|
||||
|
||||
@@ -7,4 +7,12 @@
|
||||
{% trans "Permissions" %}
|
||||
</a>
|
||||
</li>
|
||||
{% url admin.views.addpermission as addperm_url %}
|
||||
<li>
|
||||
<a href="{{ addperm_url }}" class="boxed"
|
||||
rel="{handler:'iframe',size:{x:320,y:210}}">
|
||||
<img src="/static/pics/add.png" border="0" />
|
||||
{% trans "Add permission" %}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
Reference in New Issue
Block a user