Added delete confirmation for services. Generally cleanup of service views

This commit is contained in:
2010-03-23 10:49:12 +00:00
parent 596cc0bab4
commit fa4a084292
3 changed files with 39 additions and 18 deletions

View File

@@ -20,7 +20,7 @@ from reddit.models import RedditAccount
import settings import settings
def index(request): def index(request):
return render_to_response('sso/index.html') return render_to_response('sso/index.html', context_instance=RequestContext(request))
@login_required @login_required
def profile(request): def profile(request):
@@ -133,10 +133,8 @@ def service_add(request):
else: else:
error = None 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: 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')) 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: if len(availserv) == 0:
return render_to_response('sso/serviceaccount/noneavailable.html', locals(), context_instance=RequestContext(request)) return render_to_response('sso/serviceaccount/noneavailable.html', locals(), context_instance=RequestContext(request))
@@ -148,15 +146,22 @@ def service_add(request):
@login_required @login_required
def service_del(request, serviceid=0): def service_del(request, serviceid=0):
if serviceid > 0 : if serviceid > 0 :
try: try:
acc = ServiceAccount.objects.get(id=serviceid) acc = ServiceAccount.objects.get(id=serviceid)
except ServiceAccount.DoesNotExist: except ServiceAccount.DoesNotExist:
return HttpResponseRedirect(reverse('sso.views.profile')) return HttpResponseRedirect(reverse('sso.views.profile'))
if acc.user == request.user: if not acc.user == request.user:
acc.delete() return HttpResponseRedirect(reverse('sso.views.profile'))
request.user.message_set.create(message="Service account successfully deleted.")
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')) return HttpResponseRedirect(reverse('sso.views.profile'))
@login_required @login_required
@@ -169,7 +174,7 @@ def service_reset(request, serviceid=0, accept=0):
if acc.user == request.user: if acc.user == request.user:
if not accept: 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() 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, } defaults = { 'username': request.user.username, }
form = RedditAccountForm(defaults) # An unbound form 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 @login_required
def reddit_del(request, redditid=0): def reddit_del(request, redditid=0):
@@ -230,9 +235,9 @@ def user_view(request, user=None):
if form.is_valid(): if form.is_valid():
user = form.cleaned_data['username'] user = form.cleaned_data['username']
else: else:
return render_to_response('sso/userlookup.html', locals()) return render_to_response('sso/userlookup.html', locals(), context_instance=RequestContext(request))
else: 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 is_admin = request.user.is_staff
@@ -263,4 +268,4 @@ def user_view(request, user=None):
except EVEAccount.DoesNotExist: except EVEAccount.DoesNotExist:
eveaccounts = None eveaccounts = None
return render_to_response('sso/user.html', locals()) return render_to_response('sso/user.html', locals(), context_instance=RequestContext(request))

View File

@@ -9,13 +9,13 @@
this is incorrect please raise a bug on the tracker. this is incorrect please raise a bug on the tracker.
</div> </div>
{% else %} {% else %}
<p>Your account on {{ account.service }} has been created. Your login details are as follows:</p> <p>Your account on {{ acc.service }} has been created. Your login details are as follows:</p>
<table> <table>
<tr><td>Service:</td><td>{{ account.service.name }}</td></tr> <tr><td>Service:</td><td>{{ acc.service.name }}</td></tr>
<tr><td>Service URL:</td><td><a href="{{ account.service.url }}">{{ account.service.url }}</a></td></tr> <tr><td>Service URL:</td><td><a href="{{ acc.service.url }}">{{ acc.service.url }}</a></td></tr>
<tr><td>Username:</td><td>{{ account.service_uid }}</td></tr> <tr><td>Username:</td><td>{{ acc.service_uid }}</td></tr>
<tr><td>Password:</td><td>{{ account.password }}</td></tr> <tr><td>Password:</td><td>{{ acc.password }}</td></tr>
</table> </table>
<p><b>Warning:</b> You password is random, please either note it down or once logged into the service change it to something you <p><b>Warning:</b> You password is random, please either note it down or once logged into the service change it to something you

View File

@@ -0,0 +1,16 @@
{% extends "base.html" %}
{% block title %}External Service Account{% endblock %}
{% block content %}
<p><b>Warning</b>: 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 <b>use the password reset function first!</b></p>
<p>If you are sure, then please click confirm</p>
<form action="/profile/del/service/{{ acc.id }}/" method="post">
<input name="confirm-delete" type="hidden" value="1"/>
<input type="submit" value="Confirm Delete" />
</form>
{% endblock %}