From 60462cdeeec230c0fa909eaeabb5369ba36cae92 Mon Sep 17 00:00:00 2001 From: MG Date: Wed, 15 May 2019 03:12:59 +0200 Subject: [PATCH] Init implementation of an user deletion system --- src/account_helper/admin.py | 3 ++- src/account_helper/models.py | 10 +++++++++- src/account_manager/views/user_views.py | 5 ++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/account_helper/admin.py b/src/account_helper/admin.py index cbad20e..1929cf8 100644 --- a/src/account_helper/admin.py +++ b/src/account_helper/admin.py @@ -1,5 +1,6 @@ from django.contrib import admin -from .models import Realm +from .models import Realm, DeletedUser # Register your models here. admin.site.register(Realm) +admin.site.register(DeletedUser) diff --git a/src/account_helper/models.py b/src/account_helper/models.py index 93beed0..bc55b2b 100644 --- a/src/account_helper/models.py +++ b/src/account_helper/models.py @@ -1,4 +1,4 @@ -from django.contrib.auth.models import Group +from django.contrib.auth.models import Group, User from django.db import models @@ -12,3 +12,11 @@ class Realm(models.Model): def __str__(self): return f'{self.name} - {self.ldap_base_dn}' + + +class DeletedUser(models.Model): + deletion_date = models.DateField(auto_now=True) + user = models.ForeignKey(User, on_delete=models.CASCADE) + + def __str__(self): + return f'{self.user.username} - {self.deletion_date}' diff --git a/src/account_manager/views/user_views.py b/src/account_manager/views/user_views.py index 999d8d9..fa7b068 100644 --- a/src/account_manager/views/user_views.py +++ b/src/account_manager/views/user_views.py @@ -12,7 +12,7 @@ from django.shortcuts import render, redirect from django.utils.translation import gettext as _ from ldap import ALREADY_EXISTS, OBJECT_CLASS_VIOLATION -from account_helper.models import Realm +from account_helper.models import Realm, DeletedUser from account_manager.forms import AddLDAPUserForm, UserDeleteListForm, UpdateLDAPUserForm, AdminUpdateLDAPUserForm, \ UserGroupListForm from account_manager.main_views import is_realm_admin @@ -460,6 +460,9 @@ def user_delete_controller(ldap_user, realm): try: django_user = User.objects.get(username=ldap_user.username) django_user.delete() + # TODO user deletion cron + # DeletedUser.objects.create(user=django_user) + except ObjectDoesNotExist: pass return