From 855e46b60b032b50cc949d53e3ed1888589b261a Mon Sep 17 00:00:00 2001 From: Alex Clemesha Date: Thu, 11 Feb 2010 12:06:24 -0800 Subject: [PATCH] small additions to the create user/cert functionality. --- .gitignore | 1 + web/src/python/nimbusweb/portal/usercreate/util.py | 13 ++++++------- web/src/python/nimbusweb/portal/usercreate/views.py | 12 ++++++++---- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 491ae1e1..ff83dfb1 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ *.iml *.ipr *.iws +*.swp build/ dist/ autocontainer/downloads/ diff --git a/web/src/python/nimbusweb/portal/usercreate/util.py b/web/src/python/nimbusweb/portal/usercreate/util.py index 72e11ea6..ea0e4549 100644 --- a/web/src/python/nimbusweb/portal/usercreate/util.py +++ b/web/src/python/nimbusweb/portal/usercreate/util.py @@ -6,14 +6,13 @@ def create_nimbus_user_stub(dn): return nimbus_userid create_nimbus_user = create_nimbus_user_stub -def extract_dn_stub(cert, key): - new_users_dn = "test_dn" - return new_users_dn -extract_dn = extract_dn_stub +def extract_dn(cert): + ezpz = EzPzCA(settings.NIMBUS_CADIR, settings.WEBDIR) + (DN, cert, key) = ezpz.get_cert_dn(cert) + return (DN, cert, key) + -def autocreate_cert_stub(cn): - new_users_dn = "test_dn" - return new_users_dn +autocreate_cert_stub = lambda x: ("test_dn", "test_cert", "test_key") autocreate_cert = autocreate_cert_stub def autocreate_cert(cn): diff --git a/web/src/python/nimbusweb/portal/usercreate/views.py b/web/src/python/nimbusweb/portal/usercreate/views.py index 0a9eeb16..7bb6d89c 100644 --- a/web/src/python/nimbusweb/portal/usercreate/views.py +++ b/web/src/python/nimbusweb/portal/usercreate/views.py @@ -30,11 +30,11 @@ def method(request, method): cert = form.cleaned_data["cert"] key = form.cleaned_data["key"] print cert, key, type(cert), type(key) + #TODO get string contents out of cert try: - dn = util.extract_dn(cert, key) + dn = util.extract_dn(cert) except: - #TODO: better error: - raise Exception("Failed getting DN from cert and key") + raise Exception("Failed getting DN from cert.") #TODO: better error. else: form = CertKeyForm() @@ -54,7 +54,10 @@ def method(request, method): form = AutoCreateForm(request.POST) if form.is_valid(): cn = form.cleaned_data["username"] #username is used as the CN (common name) - (dn, cert, key) = util.autocreate_cert(cn) + try: + (dn, cert, key) = util.autocreate_cert(cn) + except: + raise Exception("Failed autocreating new cert and key.") #TODO: better error. else: form = AutoCreateForm() @@ -67,6 +70,7 @@ def method(request, method): nimbus_userid = util.create_nimbus_user(dn) #if this fails, new User is deleted. #TODO save 'nimbus_userid' to UserProfile here, or does util.create_nimbus_user do it? print "=== final data ==> ", username, firstname, lastname, email, nimbus_userid + #TODO: use 'nimbus.adminops._newuser(newuserform, request_files)' here: unique_new_user_token="abc123" return HttpResponseRedirect("/usercreate/success?token="+unique_new_user_token) except: