Allow login/logout/password change. The initial view once logged
in (unless it's a forced login) will be the (incomplete) "my" view. Username and logout link are in the upper right corner while logged in. - Legacy-Id: 163
This commit is contained in:
parent
78186c7406
commit
cb94159896
21
ietf/ietfauth/urls.py
Normal file
21
ietf/ietfauth/urls.py
Normal file
|
@ -0,0 +1,21 @@
|
|||
from django.conf.urls.defaults import *
|
||||
from ietf.my.views import my
|
||||
|
||||
urlpatterns = patterns('django.contrib.auth.views',
|
||||
(r'^login/$', 'login'),
|
||||
# need to provide templates for logout, password_change,
|
||||
# password_change_done
|
||||
# right now they use the admin templates, which are not
|
||||
# really appropriate.
|
||||
(r'^logout/$', 'logout'),
|
||||
(r'^password_change/$', 'password_change'),
|
||||
(r'^password_change/done/$', 'password_change_done'),
|
||||
# Built-in password reset changes before validation
|
||||
# so we want to implement a scheme similar to henrik's
|
||||
# loginmgr.
|
||||
#(r'^password_reset/$', 'password_reset'),
|
||||
#(r'^password_reset/done/$', 'password_reset_done'),
|
||||
)
|
||||
urlpatterns += patterns('',
|
||||
(r'^profile/$', my)
|
||||
)
|
|
@ -1,21 +1,14 @@
|
|||
from django.http import HttpResponse,HttpResponseRedirect
|
||||
from django import newforms as forms
|
||||
from django.template import RequestContext, Context, loader
|
||||
from django.shortcuts import get_object_or_404
|
||||
from ietf.idtracker.models import PersonOrOrgInfo, EmailAddress
|
||||
from django.template import RequestContext
|
||||
from django.shortcuts import render_to_response
|
||||
from ietf.idtracker.models import PersonOrOrgInfo
|
||||
|
||||
def my(request, addr=None):
|
||||
if addr is None:
|
||||
# get email address from logged in user
|
||||
return
|
||||
person = PersonOrOrgInfo.objects.filter(emailaddresses__email_address=addr).distinct()
|
||||
if len(person) != 1:
|
||||
if len(person) == 0:
|
||||
raise Http404
|
||||
# multiple people matched!
|
||||
return "Oops"
|
||||
t = loader.get_template('my/my.html')
|
||||
c = RequestContext(request, {
|
||||
'me': person[0],
|
||||
})
|
||||
return HttpResponse(t.render(c))
|
||||
if request.user:
|
||||
person = request.user.get_profile().person
|
||||
else:
|
||||
person = PersonOrOrgInfo.objects.distinct().get(emailaddresses__email_address=addr)
|
||||
return render_to_response('my/my.html', {
|
||||
'me': person,
|
||||
}, context_instance=RequestContext(request))
|
||||
|
|
|
@ -9,7 +9,8 @@
|
|||
{% block css %}{% endblock %}
|
||||
-->
|
||||
</style>
|
||||
</head><body {% block body_attributes %}{% endblock %}><center>
|
||||
</head><body {% block body_attributes %}{% endblock %}>
|
||||
<center>
|
||||
<table border=0 cellpadding=0 cellspacing=0>
|
||||
<tr>
|
||||
<td><a href="http://www.ietf.org/home.html"><img src="https://www1.ietf.org/images/header/ietflogo_sm.gif" border="0"></a></td>
|
||||
|
@ -28,6 +29,11 @@
|
|||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
{% if user.is_authenticated %}
|
||||
<span style="float: right; font-size: 80%;">Logged in as {{ user }}
|
||||
|
|
||||
<a href="/accounts/logout/">Log Out</a></span>
|
||||
{% endif %}
|
||||
<hr>
|
||||
<!-- end new headers and layout -->
|
||||
<div id="content">
|
||||
|
@ -35,10 +41,6 @@
|
|||
{% block main_content %}{% endblock %}
|
||||
</div>
|
||||
<hr/>
|
||||
<address>
|
||||
This page provided by Bill Fenner's proof-of-concept IETF web page front
|
||||
ends.
|
||||
</address>
|
||||
<a href="http://www.djangoproject.com/"><img src="http://media.djangoproject.com/img/badges/djangomade124x25.gif" border="0" alt="Made with Django." title="Made with Django." /></a>
|
||||
{% include "debug.html" %}
|
||||
</body>
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<p>
|
||||
{{ me.person_or_org_tag }}
|
||||
<h1>Internet Drafts</h1>
|
||||
Hello, {{ me }}!
|
||||
<h1>Internet Drafts that you Author (probably useless but hey)</h1>
|
||||
<ul>
|
||||
{% for doc in me.idauthors_set.all %}
|
||||
<li>{{ doc.document.filename }}: {{ doc.document.status }} / {{ doc.document.idstate }}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endblock %}
|
||||
|
|
19
ietf/templates/registration/login.html
Normal file
19
ietf/templates/registration/login.html
Normal file
|
@ -0,0 +1,19 @@
|
|||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
{% if form.has_errors %}
|
||||
<p>Your username and password didn't match our records. Please try again.</p>
|
||||
{% endif %}
|
||||
|
||||
<form method="post" action=".">
|
||||
<table>
|
||||
<tr><td><label for="id_username">Username (or email address):</label></td><td>{{ form.username }}</td></tr>
|
||||
<tr><td><label for="id_password">Password:</label></td><td>{{ form.password }}</td></tr>
|
||||
</table>
|
||||
|
||||
<input type="submit" value="login" />
|
||||
<input type="hidden" name="next" value="{{ next }}" />
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
|
@ -24,6 +24,7 @@ urlpatterns = patterns('',
|
|||
(r'^(?P<path>public|cgi-bin)/', include('ietf.redirects.urls')),
|
||||
(r'^ipr/', include('ietf.ipr.urls')),
|
||||
(r'^meeting/', include('ietf.meeting.urls')),
|
||||
(r'^accounts/', include('ietf.ietfauth.urls')),
|
||||
|
||||
(r'^$', ietf.views.apps),
|
||||
|
||||
|
|
Loading…
Reference in a new issue