From f68e17bf51dca1bd6a89a3a77ba93d648469d273 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Thu, 23 Jun 2011 14:49:45 +0200 Subject: [PATCH] Using User.date_joined field to record the permissions' definition date. fixed #146 --- admin/forms.py | 6 ++++-- admin/models.py | 1 + admin/permissions.py | 4 ++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/admin/forms.py b/admin/forms.py index 403f8e15e..8e0799555 100644 --- a/admin/forms.py +++ b/admin/forms.py @@ -177,12 +177,14 @@ class SuperAdminsTable(tables.Table): selection = tables.SelectionColumn("selection", width="4%", first=True) _1_user_name = tables.Column("user_name", label=_("User name")) _2_full_name = tables.Column("full_name", label=_("Full name")) - _3_enabled = tables.Column("enabled", label=gender("Enabled", "m"), width="10%") + _3_date_joined = tables.Column("date_joined", label=_("Defined")) + _4_enabled = tables.Column("enabled", label=gender("Enabled", "m"), width="10%") class DomainAdminsTable(tables.Table): idkey = "id" selection = tables.SelectionColumn("selection", width="4%", first=True) _1_domain = tables.Column("domain", label=_("Domain")) _2_full_name = tables.Column("full_name", label=_("Full name")) - _3_enabled = tables.Column("enabled", label=gender("Enabled", "m"), width="10%") + _3_date_joined = tables.Column("date_joined", label=_("Defined")) + _4_enabled = tables.Column("enabled", label=gender("Enabled", "m"), width="10%") diff --git a/admin/models.py b/admin/models.py index 744eef5e0..ad167ce14 100644 --- a/admin/models.py +++ b/admin/models.py @@ -249,6 +249,7 @@ class Mailbox(DatesAware): "id" : self.id, "domain" : self.domain.name, "full_name" : self.name, + "date_joined" : self.user.date_joined, "enabled" : self.user.is_active } diff --git a/admin/permissions.py b/admin/permissions.py index ebfaed44d..e85678629 100644 --- a/admin/permissions.py +++ b/admin/permissions.py @@ -1,5 +1,6 @@ # coding: utf-8 +import datetime from django.utils.translation import ugettext as _ from django.contrib.auth.models import User, Group from modoboa.lib import _render, getctx, _render_to_string @@ -43,6 +44,7 @@ class SuperAdminsPerms(Permissions): if form.is_valid(): user = User.objects.get(pk=request.POST["user"]) user.is_superuser = True + user.date_joined = datetime.datetime.now() user.groups.clear() user.save() return True, None @@ -69,6 +71,7 @@ class SuperAdminsPerms(Permissions): for admin in admins: admins_list += [{"id" : admin.id, "user_name" : admin.username, "full_name" : "%s %s" % (admin.first_name, admin.last_name), + "date_joined" : admin.date_joined, "enabled" : admin.is_active}] return SuperAdminsTable(admins_list).render(request) @@ -97,6 +100,7 @@ class DomainAdminsPerms(Permissions): form.fields["user"].choices = [(mboxid, mb),] if form.is_valid(): mb.user.is_superuser = False + user.date_joined = datetime.datetime.now() mb.user.groups.add(Group.objects.get(name="DomainAdmins")) mb.user.save() return True, None