From 39fc5147ff71510cc7ed43da5b7cfca45f0d3b13 Mon Sep 17 00:00:00 2001 From: Tobias Bengfort Date: Wed, 2 May 2018 15:11:34 +0200 Subject: [PATCH 1/2] copy basic UserAdmin for further extension --- .../castellum_core/castellum_auth/admin.py | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/castellum_core/castellum_core/castellum_auth/admin.py b/castellum_core/castellum_core/castellum_auth/admin.py index 7dd7477dd..1da9507ef 100644 --- a/castellum_core/castellum_core/castellum_auth/admin.py +++ b/castellum_core/castellum_core/castellum_auth/admin.py @@ -1,7 +1,23 @@ from django.contrib import admin -from django.contrib.auth.admin import UserAdmin +from django.contrib.auth.admin import UserAdmin as BaseUserAdmin +from django.utils.translation import ugettext_lazy as _ from .models import User -admin.site.register(User, UserAdmin) +@admin.register(User) +class UserAdmin(BaseUserAdmin): + fieldsets = ( + (None, { + 'fields': ('username', 'password') + }), + (_('Personal info'), { + 'fields': ('first_name', 'last_name', 'email') + }), + (_('Permissions'), { + 'fields': ('is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions') + }), + (_('Important dates'), { + 'fields': ('last_login', 'date_joined') + }), + ) -- GitLab From 7815a0505b4599ab7527eb109992421b49e9f2e0 Mon Sep 17 00:00:00 2001 From: Tobias Bengfort Date: Wed, 2 May 2018 15:21:49 +0200 Subject: [PATCH 2/2] add expiration_date I was not sure whether to use DateField or DateTimeField Reasons for DateField: - No need to enter time Reasons for DateTimeField - other User fields are also DateTimeField (last_login, date_joined) - more explicit (no confusion about inclusive/exclusive) - more flexible (if it becomes a requirement we are prepared) --- .../castellum_core/castellum_auth/admin.py | 2 +- .../migrations/0002_user_expiration_date.py | 18 ++++++++++++++++++ .../castellum_core/castellum_auth/models.py | 4 +++- 3 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 castellum_core/castellum_core/castellum_auth/migrations/0002_user_expiration_date.py diff --git a/castellum_core/castellum_core/castellum_auth/admin.py b/castellum_core/castellum_core/castellum_auth/admin.py index 1da9507ef..48500b0c1 100644 --- a/castellum_core/castellum_core/castellum_auth/admin.py +++ b/castellum_core/castellum_core/castellum_auth/admin.py @@ -18,6 +18,6 @@ class UserAdmin(BaseUserAdmin): 'fields': ('is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions') }), (_('Important dates'), { - 'fields': ('last_login', 'date_joined') + 'fields': ('last_login', 'date_joined', 'expiration_date') }), ) diff --git a/castellum_core/castellum_core/castellum_auth/migrations/0002_user_expiration_date.py b/castellum_core/castellum_core/castellum_auth/migrations/0002_user_expiration_date.py new file mode 100644 index 000000000..63dfdb35b --- /dev/null +++ b/castellum_core/castellum_core/castellum_auth/migrations/0002_user_expiration_date.py @@ -0,0 +1,18 @@ +# Generated by Django 2.0.4 on 2018-05-02 12:55 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('castellum_auth', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='user', + name='expiration_date', + field=models.DateTimeField(blank=True, null=True, verbose_name='Expiration date'), + ), + ] diff --git a/castellum_core/castellum_core/castellum_auth/models.py b/castellum_core/castellum_core/castellum_auth/models.py index 3d305253b..9ec483e55 100644 --- a/castellum_core/castellum_core/castellum_auth/models.py +++ b/castellum_core/castellum_core/castellum_auth/models.py @@ -1,5 +1,7 @@ +from django.db import models from django.contrib.auth.models import AbstractUser +from django.utils.translation import ugettext_lazy as _ class User(AbstractUser): - pass + expiration_date = models.DateTimeField(_('Expiration date'), blank=True, null=True) -- GitLab