mirror of
https://github.com/nikdoof/test-auth.git
synced 2026-01-30 16:08:14 +00:00
Added basic password reset function
This commit is contained in:
@@ -11,6 +11,8 @@ urlpatterns = patterns('',
|
|||||||
(r'^profile/add/service', views.service_add),
|
(r'^profile/add/service', views.service_add),
|
||||||
(r'^profile/del/service/$', views.service_del),
|
(r'^profile/del/service/$', views.service_del),
|
||||||
(r'^profile/del/service/(?P<serviceid>\d+)/$', views.service_del),
|
(r'^profile/del/service/(?P<serviceid>\d+)/$', views.service_del),
|
||||||
|
(r'^profile/reset/service/(?P<serviceid>\d+)/$', views.service_reset),
|
||||||
|
(r'^profile/reset/service/(?P<serviceid>\d+)/(?P<accept>\d+)$', views.service_reset),
|
||||||
(r'^profile/add/reddit', views.reddit_add),
|
(r'^profile/add/reddit', views.reddit_add),
|
||||||
(r'^profile/del/reddit/$', views.reddit_del),
|
(r'^profile/del/reddit/$', views.reddit_del),
|
||||||
(r'^profile/del/reddit/(?P<redditid>\d+)/$', views.reddit_del),
|
(r'^profile/del/reddit/(?P<redditid>\d+)/$', views.reddit_del),
|
||||||
|
|||||||
23
sso/views.py
23
sso/views.py
@@ -98,7 +98,7 @@ def service_add(request):
|
|||||||
|
|
||||||
acc.service = form.cleaned_data['service']
|
acc.service = form.cleaned_data['service']
|
||||||
acc.character = form.cleaned_data['character']
|
acc.character = form.cleaned_data['character']
|
||||||
acc.password = hashlib.sha1('%s%s' % (form.cleaned_data['service'].name, settings.SECRET_KEY)).hexdigest()
|
acc.password = hashlib.sha1('%s%s' % (form.cleaned_data['character'].name, settings.SECRET_KEY)).hexdigest()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
acc.save()
|
acc.save()
|
||||||
@@ -128,6 +128,27 @@ def service_del(request, serviceid=0):
|
|||||||
|
|
||||||
return HttpResponseRedirect(reverse('sso.views.profile'))
|
return HttpResponseRedirect(reverse('sso.views.profile'))
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
def service_reset(request, serviceid=0, accept=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:
|
||||||
|
if not accept:
|
||||||
|
return render_to_response('sso/serviceaccount_reset.html', locals())
|
||||||
|
|
||||||
|
passwd = hashlib.sha1('%s%s' % (acc.service_uid, settings.SECRET_KEY)).hexdigest()
|
||||||
|
|
||||||
|
api = acc.service.api_class
|
||||||
|
api.enable_user(acc.service_uid, passwd)
|
||||||
|
return render_to_response('sso/serviceaccount_resetcomplete.html', locals())
|
||||||
|
|
||||||
|
return HttpResponseRedirect(reverse('sso.views.profile'))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def reddit_add(request):
|
def reddit_add(request):
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ a new service click the Add Service link</p>
|
|||||||
<td>{{ acc.service_uid }}</td>
|
<td>{{ acc.service_uid }}</td>
|
||||||
<td>******</td>
|
<td>******</td>
|
||||||
<td>{{ acc.active }}</td>
|
<td>{{ acc.active }}</td>
|
||||||
<td><a href="/profile/del/service/{{ acc.id }}/">Delete</a>
|
<td><a href="/profile/del/service/{{ acc.id }}/">Delete</a> / <a href="/profile/reset/service/{{ acc.id }}/">Reset</a>
|
||||||
{% if acc.service.provide_login %}
|
{% if acc.service.provide_login %}
|
||||||
/ <a href="/profile/login/service/{{ acc.id }}/">Login</a>
|
/ <a href="/profile/login/service/{{ acc.id }}/">Login</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
12
templates/sso/serviceaccount_reset.html
Normal file
12
templates/sso/serviceaccount_reset.html
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block title %}Service Account Password Reset{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
|
||||||
|
<p>This service will reset your password for account {{ acc.service_uid }} on {{ acc.service }}. If you wish to continue please click the link
|
||||||
|
below.</p>
|
||||||
|
|
||||||
|
<p><a href="/profile/reset/service/{{ serviceid }}/1">Reset my Password</a></p>
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
25
templates/sso/serviceaccount_resetcomplete.html
Normal file
25
templates/sso/serviceaccount_resetcomplete.html
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block title %}Service Account{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
{% if error %}
|
||||||
|
<div style="border: 1px solid #FF0000; background: #FF7D7D; width: 100%; text-align: center;">
|
||||||
|
<b>Error:</b> Your account has not been created. Either you already have a user on this service or a error has occured. If you think
|
||||||
|
this is incorrect please raise a bug on the tracker.
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
<p>Your account on {{ acc.service }} has been reset. Your login details are as follows:</p>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr><td>Username:</td><td>{{ acc.service_uid }}</td></tr>
|
||||||
|
<tr><td>Password:</td><td>{{ passwd }}</td></tr>
|
||||||
|
</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
|
||||||
|
will remember. Service passwords are not stored in the Auth system.</p>
|
||||||
|
|
||||||
|
<p><a href="/profile">Return to your profile page</a></p>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
Reference in New Issue
Block a user