diff --git a/permissions_tool/templates/permissions_tool/audit.html b/permissions_tool/templates/permissions_tool/audit.html
index 92c8756d..d3ad50a9 100644
--- a/permissions_tool/templates/permissions_tool/audit.html
+++ b/permissions_tool/templates/permissions_tool/audit.html
@@ -33,6 +33,15 @@
{% include 'permissions_tool/audit_row.html' %}
{% endfor %}
{% endfor %}
+ {% for state in permission.states %}
+ {% for profile in state.userprofile_set.all %}
+ {% with profile.user as user %}
+
+ {% include 'permissions_tool/audit_state_row.html' %}
+
+ {% endwith %}
+ {% endfor %}
+ {% endfor %}
diff --git a/permissions_tool/templates/permissions_tool/audit_state_row.html b/permissions_tool/templates/permissions_tool/audit_state_row.html
new file mode 100644
index 00000000..dd8baa5f
--- /dev/null
+++ b/permissions_tool/templates/permissions_tool/audit_state_row.html
@@ -0,0 +1,11 @@
+{% load i18n %}
+
+
+ {% if forloop.first %}
+ {% trans 'State' %}: {{ state }}
+ {% endif %}
+ |
+
+ {{ user }}
+ |
+
diff --git a/permissions_tool/templates/permissions_tool/overview.html b/permissions_tool/templates/permissions_tool/overview.html
index 76ece30e..1eae6456 100644
--- a/permissions_tool/templates/permissions_tool/overview.html
+++ b/permissions_tool/templates/permissions_tool/overview.html
@@ -41,7 +41,7 @@
{% trans "Groups" %}
- {% trans "Groups Users" %}
+ {% trans "States" %}
|
@@ -66,10 +66,10 @@
{{ perm.users }}
- {{ perm.groups }}
+ {{ perm.groups }} ({{ perm.group_users }})
|
-
- {{ perm.group_users }}
+ |
+ {{ perm.states }} ({{ perm.state_users }})
|
{% endfor %}
diff --git a/permissions_tool/views.py b/permissions_tool/views.py
index c0e95f77..c9d4c26d 100644
--- a/permissions_tool/views.py
+++ b/permissions_tool/views.py
@@ -1,8 +1,9 @@
from __future__ import unicode_literals
from django.contrib.auth.decorators import login_required, permission_required
-from django.contrib.auth.models import Permission
+from django.contrib.auth.models import Permission, User
from django.shortcuts import render, get_object_or_404
from django.db.models import Count
+from authentication.models import UserProfile
import logging
@@ -22,14 +23,16 @@ def permissions_overview(request):
this_perm = {
'users': perm.user_set.all().count(),
'groups': perm.group_set.all().count(),
+ 'states': perm.state_set.all().count(),
'permission': perm
}
- if get_all or this_perm['users'] > 0 or this_perm['groups'] > 0:
+ if get_all or this_perm['users'] > 0 or this_perm['groups'] > 0 or this_perm['states'] > 0:
# Only add if we're getting everything or one of the objects has this permission
# Add group_users separately to improve performance
this_perm['group_users'] = sum(group.user_count for group in
perm.group_set.annotate(user_count=Count('user')))
+ this_perm['state_users'] = UserProfile.objects.filter(state__in=perm.state_set.all()).count()
context['permissions'].append(this_perm)
return render(request, 'permissions_tool/overview.html', context=context)
@@ -48,7 +51,9 @@ def permissions_audit(request, app_label, model, codename):
'permission': perm,
'users': perm.user_set.all(),
'groups': perm.group_set.all(),
- 'group_users': [group.user_set.all() for group in perm.group_set.all()]
+ 'states': perm.state_set.all(),
+ 'group_users': [group.user_set.all() for group in perm.group_set.all()],
+ 'state_users': User.objects.filter(profile__state__in=perm.state_set.all()),
}
}