initial openid integration
[qcg-portal.git] / qcg / views.py
1 from django.conf import settings
2 from django.contrib.auth import REDIRECT_FIELD_NAME
3 from django.core.urlresolvers import reverse
4 from django.http import HttpResponse
5 from django.shortcuts import render
6 from django.utils.http import urlencode
7 from django_openid_auth.views import make_consumer
8 from openid.extensions import ax
9
10
11 def index(request):
12     return render(request, 'qcg/base.html')
13
14
15 def openid_login(request):
16     openid_request = make_consumer(request).begin(settings.OPENID_SSO_SERVER_URL)
17
18     fetch_request = ax.FetchRequest()
19     for (attr, alias) in [('http://axschema.org/namePerson/friendly', 'nickname'),
20                           ('http://axschema.org/contact/email', 'email'),
21                           ('http://axschema.org/namePerson', 'fullname'),
22                           # ('http://openid.plgrid.pl/certificate/proxy', 'proxy'),
23                           # ('http://openid.plgrid.pl/certificate/userCert', 'userCert'),
24                           # ('http://openid.plgrid.pl/certificate/proxyPrivKey', 'proxyPrivKey'),
25                           ('http://openid.plgrid.pl/POSTresponse', 'POSTresponse')]:
26         fetch_request.add(ax.AttrInfo(attr, alias=alias, required=True))
27     openid_request.addExtension(fetch_request)
28
29     return_to = request.build_absolute_uri(reverse('openid-complete'))
30
31     redirect_to = request.GET.get(REDIRECT_FIELD_NAME)
32     if redirect_to:
33         return_to += '?' + urlencode({REDIRECT_FIELD_NAME: redirect_to})
34
35     return HttpResponse(openid_request.htmlMarkup(request.build_absolute_uri('/'), return_to))
36
37
38 def jobs_list(request):
39     return render(request, 'qcg/jobs.html')
40
41
42 def job_details(request):
43     return render(request, 'qcg/job.html')