manager: show user deletion status (#36788)

This commit is contained in:
Benjamin Dauvergne 2019-10-10 18:51:55 +02:00
parent 66e5bba858
commit da9857d8b7
4 changed files with 42 additions and 2 deletions

View File

@ -42,6 +42,12 @@
{% block other_actions %}
{% if object.deletion %}
<p class="a2-manager-user-deletion">
{% blocktrans with date=object.deletion.creation %}Prepared for deletion since {{ date }}{% endblocktrans %}
</p>
{% endif %}
<p class="a2-manager-user-last-login">
{% if object.last_login %}
{% blocktrans with date=object.last_login %}Last login on {{ date }}.{% endblocktrans %}

View File

@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.20 on 2019-10-09 08:47
from __future__ import unicode_literals
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('authentic2', '0024_auto_20190617_1113'),
]
operations = [
migrations.AlterField(
model_name='deleteduser',
name='user',
field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='deletion', to=settings.AUTH_USER_MODEL, verbose_name='user'),
),
]

View File

@ -47,7 +47,10 @@ class DeletedUser(models.Model):
objects = managers.DeletedUserManager()
user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=_('user'))
user = models.OneToOneField(
to=settings.AUTH_USER_MODEL,
related_name='deletion',
verbose_name=_('user'))
creation = models.DateTimeField(auto_now_add=True, verbose_name=_('creation date'))
class Meta:

View File

@ -29,7 +29,7 @@ from django.utils.six import text_type
from django_rbac.utils import get_ou_model
from authentic2.custom_user.models import User
from authentic2.models import Attribute, AttributeValue
from authentic2.models import Attribute, AttributeValue, DeletedUser
from authentic2.a2_rbac.utils import get_default_ou
from authentic2.manager import user_import
@ -426,3 +426,12 @@ def test_user_import_attributes(transactional_db, app, admin, media):
assert 'birthdate' not in et.attributes.values
assert et.attributes.values['zip'].content == '42000'
assert et.attributes.values['phone'].content == '+8885678'
def test_detail_view(app, admin, simple_user):
url = '/manage/users/{user.id}/'.format(user=simple_user)
response = login(app, admin, url)
assert not response.pyquery('.a2-manager-user-deletion')
DeletedUser.objects.create(user=simple_user)
response = app.get(url)
assert response.pyquery('.a2-manager-user-deletion')