associated certificate to new registered user

This commit is contained in:
Serghei Mihai 2015-05-20 19:27:22 +02:00
parent a7a828bb46
commit 3768a0c103
2 changed files with 11 additions and 3 deletions

View File

@ -14,6 +14,7 @@ def get_x509_url(request):
return 'https://%s:%s' % (request.get_host(),
app_settings.AUTH_PORT)
def get_user_names(dn):
def get_user_names(ssl_info):
dn = ssl_info.get('subject_dn')
data = dict(explode_dn(dn))
return data['GN'].split(' ', 1)

View File

@ -73,7 +73,7 @@ def delete_beid(request, certificate_pk):
def x509(request, registration_token):
ssl_info = SSLInfo(request)
request.session['subject_dn'] = ssl_info.subject_dn
request.session['ssl_info'] = ssl_info.__dict__
return redirect(request, 'beid_registration_activate',
kwargs={'registration_token': registration_token})
@ -88,8 +88,15 @@ class BeIDRegistrationCompletionView(RegistrationCompletionView):
def get_form_kwargs(self, **kwargs):
kw = super(BeIDRegistrationCompletionView, self).get_form_kwargs(**kwargs)
# get first and last names from certificate and fill the form
f_name, l_name = get_user_names(self.request.session['subject_dn'])
f_name, l_name = get_user_names(self.request.session['ssl_info'])
kw['initial'].update({'first_name': f_name, 'last_name': l_name})
return kw
def form_valid(self, form):
ret = super(BeIDRegistrationCompletionView, self).form_valid(form)
cert = models.ClientCertificate(user=self.object)
cert.__dict__.update(self.request.session['ssl_info'])
cert.save()
return ret
registration_completion = valid_token(BeIDRegistrationCompletionView.as_view())