From ec4f9da00463b26ce3e60af2d87369d801971029 Mon Sep 17 00:00:00 2001
From: Andrew Williams
Date: Sat, 10 Dec 2011 18:48:43 +0000
Subject: [PATCH] Add mass updating for corps/alliances
---
app/eve_api/templates/eve_api/alliance.html | 6 ++++++
app/eve_api/templates/eve_api/corporation.html | 6 ++++++
app/eve_api/urls.py | 12 ++++++++++++
app/sso/urls.py | 2 +-
app/sso/views.py | 14 +++++++++++++-
5 files changed, 38 insertions(+), 2 deletions(-)
diff --git a/app/eve_api/templates/eve_api/alliance.html b/app/eve_api/templates/eve_api/alliance.html
index 319ad1c..47041bf 100644
--- a/app/eve_api/templates/eve_api/alliance.html
+++ b/app/eve_api/templates/eve_api/alliance.html
@@ -16,6 +16,12 @@
+{% if request.user.is_superuser %}
+
+ Mass Update Access
+
+{% endif %}
+
Corporations
diff --git a/app/eve_api/templates/eve_api/corporation.html b/app/eve_api/templates/eve_api/corporation.html
index 1fed768..8594264 100644
--- a/app/eve_api/templates/eve_api/corporation.html
+++ b/app/eve_api/templates/eve_api/corporation.html
@@ -23,6 +23,12 @@
+{% if request.user.is_superuser %}
+
+ Mass Update Access
+
+{% endif %}
+
{% if view_members %}
{% autopaginate members 25 %}
diff --git a/app/eve_api/urls.py b/app/eve_api/urls.py
index 2f4be4c..6d014a1 100644
--- a/app/eve_api/urls.py
+++ b/app/eve_api/urls.py
@@ -17,5 +17,17 @@ urlpatterns = patterns('',
url(r'^corporation/(?P\d+)/$', views.eveapi_corporation, name="eveapi-corporation"),
url(r'^corporation/(?P\d+)/export/$', views.eveapi_corporation_members_csv, name="eveapi-corporation-members-csv"),
+
url(r'^alliance/(?P\d+)/$', views.eveapi_alliance, name="eveapi-alliance"),
)
+
+try:
+ import sso.views as ssoviews
+except ImportError:
+ pass
+else:
+ urlpatterns += patterns('',
+ url(r'^corporation/(?P\d+)/refresh/$', ssoviews.refresh_access, name='eveapi-corporation-refresh'),
+ url(r'^alliance/(?P\d+)/refresh/$', ssoviews.refresh_access, name='eveapi-alliance-refresh'),
+ )
+
diff --git a/app/sso/urls.py b/app/sso/urls.py
index 69e8144..ca131ef 100644
--- a/app/sso/urls.py
+++ b/app/sso/urls.py
@@ -15,7 +15,7 @@ urlpatterns = patterns('',
(r'^profile/reset/service/(?P\d+)/(?P\d+)$', views.service_reset),
(r'^profile/apipassword/', views.set_apipasswd),
(r'^profile/refresh/$', views.refresh_access),
- (r'^profile/refresh/(?P\d+)/$', views.refresh_access),
+ url(r'^profile/refresh/(?P\d+)/$', views.refresh_access, name='sso-refreshaccess'),
(r'^profile/change/password/$', password_change),
(r'^profile/change/email/$', views.email_change),
(r'^profile/change/primary/$', views.primarychar_change),
diff --git a/app/sso/views.py b/app/sso/views.py
index 5f77f4b..07e6ab5 100644
--- a/app/sso/views.py
+++ b/app/sso/views.py
@@ -245,7 +245,7 @@ def set_apipasswd(request):
@login_required
-def refresh_access(request, userid=0):
+def refresh_access(request, userid=0, corpid=0, allianceid=0):
""" Refreshes the user's access """
if userid > 0 and request.user.has_perm('sso.can_refresh_users'):
@@ -253,6 +253,18 @@ def refresh_access(request, userid=0):
update_user_access(u.id)
messages.add_message(request, messages.INFO, "%s's access has been updated." % u.username)
return redirect(user_view, username=u.username)
+ if corpid > 0 and request.user.has_perm('sso.can_refresh_users'):
+ users = User.objects.filter(eveaccount__characters__corporation__id=corpid).distinct()
+ for u in users:
+ update_user_access.delay(u.id)
+ messages.add_message(request, messages.INFO, "%s accounts queued for update." % users.count())
+ return redirect('eveapi-corporation', corporationid=corpid)
+ if allianceid > 0 and request.user.has_perm('sso.can_refresh_users'):
+ users = User.objects.filter(eveaccount__characters__corporation__alliance__id=allianceid).distinct()
+ for u in users:
+ update_user_access.delay(u.id)
+ messages.add_message(request, messages.INFO, "%s accounts queued for update." % users.count())
+ return redirect('eveapi-alliance', allianceid=allianceid)
else:
update_user_access(request.user.id)
messages.add_message(request, messages.INFO, "User access updated.")