From fa4a084292cc1c323868e94e87937c899dcf8b3b Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Tue, 23 Mar 2010 10:49:12 +0000 Subject: [PATCH] Added delete confirmation for services. Generally cleanup of service views --- sso/views.py | 31 +++++++++++-------- templates/sso/serviceaccount/created.html | 10 +++--- .../sso/serviceaccount/deleteconfirm.html | 16 ++++++++++ 3 files changed, 39 insertions(+), 18 deletions(-) create mode 100644 templates/sso/serviceaccount/deleteconfirm.html diff --git a/sso/views.py b/sso/views.py index 894023e..360a4fe 100644 --- a/sso/views.py +++ b/sso/views.py @@ -20,7 +20,7 @@ from reddit.models import RedditAccount import settings def index(request): - return render_to_response('sso/index.html') + return render_to_response('sso/index.html', context_instance=RequestContext(request)) @login_required def profile(request): @@ -133,10 +133,8 @@ def service_add(request): else: error = None - return render_to_response('sso/serviceaccount/created.html', { 'account': acc, 'error': error }, context_instance=RequestContext(request)) + return render_to_response('sso/serviceaccount/created.html', locals(), context_instance=RequestContext(request)) else: - #defaults = { 'username': request.user.username, 'password': request.user.get_profile().default_service_passwd } - availserv = Service.objects.filter(groups__in=request.user.groups.all()).exclude(id__in=ServiceAccount.objects.filter(user=request.user).values('service')) if len(availserv) == 0: return render_to_response('sso/serviceaccount/noneavailable.html', locals(), context_instance=RequestContext(request)) @@ -148,15 +146,22 @@ def service_add(request): @login_required def service_del(request, serviceid=0): if serviceid > 0 : - try: acc = ServiceAccount.objects.get(id=serviceid) except ServiceAccount.DoesNotExist: return HttpResponseRedirect(reverse('sso.views.profile')) - if acc.user == request.user: - acc.delete() - request.user.message_set.create(message="Service account successfully deleted.") + if not acc.user == request.user: + return HttpResponseRedirect(reverse('sso.views.profile')) + + if request.method == 'POST': + print request.POST + if 'confirm-delete' in request.POST: + acc.delete() + request.user.message_set.create(message="Service account successfully deleted.") + else: + return render_to_response('sso/serviceaccount/deleteconfirm.html', locals(), context_instance=RequestContext(request)) + return HttpResponseRedirect(reverse('sso.views.profile')) @login_required @@ -169,7 +174,7 @@ def service_reset(request, serviceid=0, accept=0): if acc.user == request.user: if not accept: - return render_to_response('sso/serviceaccount/reset.html', locals()) + return render_to_response('sso/serviceaccount/reset.html', locals(), context_instance=RequestContext(request)) passwd = hashlib.sha1('%s%s%s' % (acc.service_uid, settings.SECRET_KEY, random.randint(0, 2147483647))).hexdigest() @@ -201,7 +206,7 @@ def reddit_add(request): defaults = { 'username': request.user.username, } form = RedditAccountForm(defaults) # An unbound form - return render_to_response('sso/redditaccount.html', locals()) + return render_to_response('sso/redditaccount.html', locals(), context_instance=RequestContext(request)) @login_required def reddit_del(request, redditid=0): @@ -230,9 +235,9 @@ def user_view(request, user=None): if form.is_valid(): user = form.cleaned_data['username'] else: - return render_to_response('sso/userlookup.html', locals()) + return render_to_response('sso/userlookup.html', locals(), context_instance=RequestContext(request)) else: - return render_to_response('sso/userlookup.html', locals()) + return render_to_response('sso/userlookup.html', locals(), context_instance=RequestContext(request)) is_admin = request.user.is_staff @@ -263,4 +268,4 @@ def user_view(request, user=None): except EVEAccount.DoesNotExist: eveaccounts = None - return render_to_response('sso/user.html', locals()) + return render_to_response('sso/user.html', locals(), context_instance=RequestContext(request)) diff --git a/templates/sso/serviceaccount/created.html b/templates/sso/serviceaccount/created.html index a69c94b..8e00c80 100644 --- a/templates/sso/serviceaccount/created.html +++ b/templates/sso/serviceaccount/created.html @@ -9,13 +9,13 @@ this is incorrect please raise a bug on the tracker. {% else %} -

Your account on {{ account.service }} has been created. Your login details are as follows:

+

Your account on {{ acc.service }} has been created. Your login details are as follows:

- - - - + + + +
Service:{{ account.service.name }}
Service URL:{{ account.service.url }}
Username:{{ account.service_uid }}
Password:{{ account.password }}
Service:{{ acc.service.name }}
Service URL:{{ acc.service.url }}
Username:{{ acc.service_uid }}
Password:{{ acc.password }}

Warning: You password is random, please either note it down or once logged into the service change it to something you diff --git a/templates/sso/serviceaccount/deleteconfirm.html b/templates/sso/serviceaccount/deleteconfirm.html new file mode 100644 index 0000000..9a9bce7 --- /dev/null +++ b/templates/sso/serviceaccount/deleteconfirm.html @@ -0,0 +1,16 @@ +{% extends "base.html" %} + +{% block title %}External Service Account{% endblock %} + +{% block content %} +

Warning: This will delete your account on {{ acc.service.name }}, you will no longer be able to login and in some situtations unable to +create a new account until fixed by a Sysop. If you are having issues logging in then please use the password reset function first!

+ +

If you are sure, then please click confirm

+ +
+ + +
+{% endblock %} +