Implement deletion information on user list
This commit is contained in:
parent
10cda0783a
commit
95a18884bb
@ -12,6 +12,7 @@ from ldap import NO_SUCH_OBJECT, ALREADY_EXISTS
|
||||
from ldapdb.models import fields as ldap_fields
|
||||
from ldapdb.models.base import Model
|
||||
|
||||
from account_helper.models import DeletedUser
|
||||
from account_manager.utils.dbldap import get_filterstr
|
||||
from account_manager.utils.mail_utils import send_welcome_mail
|
||||
|
||||
@ -61,6 +62,23 @@ class LdapUser(Model):
|
||||
else:
|
||||
raise ALREADY_EXISTS('User already exists')
|
||||
|
||||
@staticmethod
|
||||
def get_extended_user(ldap_user):
|
||||
wrapper = {'user': ldap_user}
|
||||
try:
|
||||
wrapper['deleted_user'] = DeletedUser.objects.get(ldap_dn=ldap_user.dn)
|
||||
except ObjectDoesNotExist:
|
||||
wrapper['deleted_user'] = {}
|
||||
try:
|
||||
django_user = User.objects.get(username=ldap_user.username)
|
||||
if django_user.last_login:
|
||||
wrapper['active'] = True
|
||||
else:
|
||||
wrapper['active'] = False
|
||||
except ObjectDoesNotExist:
|
||||
wrapper['active'] = False
|
||||
return wrapper
|
||||
|
||||
@staticmethod
|
||||
def password_reset(user, raw_password):
|
||||
LdapUser.base_dn = LdapUser.ROOT_DN
|
||||
|
||||
@ -47,14 +47,7 @@ def realm_user(request, realm_id):
|
||||
realm_users = LdapUser.objects.all()
|
||||
user_wrappers = []
|
||||
for user in realm_users:
|
||||
try:
|
||||
django_user = User.objects.get(username=user.username)
|
||||
if django_user.last_login:
|
||||
user_wrappers.append({'user': user, 'active': True})
|
||||
else:
|
||||
user_wrappers.append({'user': user, 'active': False})
|
||||
except ObjectDoesNotExist:
|
||||
user_wrappers.append({'user': user, 'active': False})
|
||||
user_wrappers.append(LdapUser.get_extended_user(user))
|
||||
return render(request, 'realm/realm_user.jinja2', {'realm': realm, 'realm_user': user_wrappers})
|
||||
|
||||
|
||||
|
||||
@ -36,11 +36,12 @@
|
||||
<th scope="col">Nachname</th>
|
||||
<th scope="col">Aktiv</th>
|
||||
<th scope="col">Letzer Login</th>
|
||||
<th scope="col">Löschdatum</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for user in users %}
|
||||
<tr>
|
||||
<tr class="{% if user.deleted_user %}bg-warning{% endif %}">
|
||||
<td>
|
||||
<a href="{{ url('realm-user-detail', args=[realm.id, user.user.dn]) }}">{{ user.user.username }}</a>
|
||||
</td>
|
||||
@ -57,6 +58,11 @@
|
||||
<i class="far fa-times-circle text-danger"></i><span class="d-none">+</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="text-center">
|
||||
{% if user.deleted_user %}
|
||||
{{ user.deleted_user.deletion_date.strftime('%Y-%m-%d') }}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
|
||||
Reference in New Issue
Block a user