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.http import HttpResponse,HttpResponseRedirect
|
||||||
from django import newforms as forms
|
from django import newforms as forms
|
||||||
from django.template import RequestContext, Context, loader
|
from django.template import RequestContext
|
||||||
from django.shortcuts import get_object_or_404
|
from django.shortcuts import render_to_response
|
||||||
from ietf.idtracker.models import PersonOrOrgInfo, EmailAddress
|
from ietf.idtracker.models import PersonOrOrgInfo
|
||||||
|
|
||||||
def my(request, addr=None):
|
def my(request, addr=None):
|
||||||
if addr is None:
|
if request.user:
|
||||||
# get email address from logged in user
|
person = request.user.get_profile().person
|
||||||
return
|
else:
|
||||||
person = PersonOrOrgInfo.objects.filter(emailaddresses__email_address=addr).distinct()
|
person = PersonOrOrgInfo.objects.distinct().get(emailaddresses__email_address=addr)
|
||||||
if len(person) != 1:
|
return render_to_response('my/my.html', {
|
||||||
if len(person) == 0:
|
'me': person,
|
||||||
raise Http404
|
}, context_instance=RequestContext(request))
|
||||||
# multiple people matched!
|
|
||||||
return "Oops"
|
|
||||||
t = loader.get_template('my/my.html')
|
|
||||||
c = RequestContext(request, {
|
|
||||||
'me': person[0],
|
|
||||||
})
|
|
||||||
return HttpResponse(t.render(c))
|
|
||||||
|
|
|
@ -9,7 +9,8 @@
|
||||||
{% block css %}{% endblock %}
|
{% block css %}{% endblock %}
|
||||||
-->
|
-->
|
||||||
</style>
|
</style>
|
||||||
</head><body {% block body_attributes %}{% endblock %}><center>
|
</head><body {% block body_attributes %}{% endblock %}>
|
||||||
|
<center>
|
||||||
<table border=0 cellpadding=0 cellspacing=0>
|
<table border=0 cellpadding=0 cellspacing=0>
|
||||||
<tr>
|
<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>
|
<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>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</center>
|
</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>
|
<hr>
|
||||||
<!-- end new headers and layout -->
|
<!-- end new headers and layout -->
|
||||||
<div id="content">
|
<div id="content">
|
||||||
|
@ -35,10 +41,6 @@
|
||||||
{% block main_content %}{% endblock %}
|
{% block main_content %}{% endblock %}
|
||||||
</div>
|
</div>
|
||||||
<hr/>
|
<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>
|
<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" %}
|
{% include "debug.html" %}
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -1,8 +1,12 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
<p>
|
<p>
|
||||||
{{ me.person_or_org_tag }}
|
Hello, {{ me }}!
|
||||||
<h1>Internet Drafts</h1>
|
<h1>Internet Drafts that you Author (probably useless but hey)</h1>
|
||||||
<ul>
|
<ul>
|
||||||
{% for doc in me.idauthors_set.all %}
|
{% for doc in me.idauthors_set.all %}
|
||||||
<li>{{ doc.document.filename }}: {{ doc.document.status }} / {{ doc.document.idstate }}
|
<li>{{ doc.document.filename }}: {{ doc.document.status }} / {{ doc.document.idstate }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</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'^(?P<path>public|cgi-bin)/', include('ietf.redirects.urls')),
|
||||||
(r'^ipr/', include('ietf.ipr.urls')),
|
(r'^ipr/', include('ietf.ipr.urls')),
|
||||||
(r'^meeting/', include('ietf.meeting.urls')),
|
(r'^meeting/', include('ietf.meeting.urls')),
|
||||||
|
(r'^accounts/', include('ietf.ietfauth.urls')),
|
||||||
|
|
||||||
(r'^$', ietf.views.apps),
|
(r'^$', ietf.views.apps),
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue