From 4fa84eb6c39eed3d7ae9125e0368eb3271908abf Mon Sep 17 00:00:00 2001 From: Yasin Date: Tue, 26 Nov 2013 18:07:01 +0100 Subject: [PATCH] REG: create local:user+local:account --- portal/actions.py | 8 ++++---- portal/registrationview.py | 31 +++++++++++++++++++++++-------- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/portal/actions.py b/portal/actions.py index 72895944..bdb752fb 100644 --- a/portal/actions.py +++ b/portal/actions.py @@ -1,6 +1,6 @@ from django.http import HttpResponse from manifold.core.query import Query -from manifold.manifoldapi import execute_query +from manifold.manifoldapi import execute_query,execute_admin_query from portal.models import PendingUser, PendingSlice import json @@ -54,7 +54,7 @@ def sfa_add_slice(request, slice_params): def manifold_add_user(request, user_params): # user_params: email, password e.g., user_params = {'email':'aa@aa.com','password':'demo'} query = Query.create('local:user').set(user_params).select('email') - results = execute_query(request, query) + results = execute_admin_query(request, query) if not results: raise Exception, "Failed creating manifold user: %s" % user_params['email'] result, = results @@ -73,11 +73,11 @@ def manifold_update_user(request, user_params): def manifold_add_account(request, account_params): query = Query.create('local:account').set(account_params).select(['user', 'platform']) - results = execute_query(request,query) + results = execute_admin_query(request,query) if not results: raise Exception, "Failed creating manifold account on platform %s for user: %s" % (account_params['platform'], account_params['user']) result, = results - return (result['user'], result['platform']) + return result['user_id'] def manifold_update_account(request,account_params): # account_params: config diff --git a/portal/registrationview.py b/portal/registrationview.py index d3049dda..b9f35ffb 100644 --- a/portal/registrationview.py +++ b/portal/registrationview.py @@ -37,13 +37,13 @@ class RegistrationView (FreeAccessView): #onelab_enabled_query = Query.get('local:platform').filter_by('platform', '==', 'ple').filter_by('disabled', '==', 'False') #onelab_enabled = not not execute_admin_query(request, onelab_enabled_query) #if onelab_enabled: - if True: - print "ONELAB ENABLED" - authorities_query = Query.get('ple:authority').select('name', 'authority_hrn').filter_by('authority_hrn', 'included', ['ple.inria', 'ple.upmc', 'ple.ibbtple', 'ple.nitos']) - else: - print "FIREXP ENABLED" + #if True: + # print "ONELAB ENABLED" + # authorities_query = Query.get('ple:authority').select('name', 'authority_hrn').filter_by('authority_hrn', 'included', ['ple.inria', 'ple.upmc', 'ple.ibbtple', 'ple.nitos']) + #else: + # print "FIREXP ENABLED" - authorities = execute_admin_query(request, authorities_query) + #authorities = execute_admin_query(request, authorities_query) # xxx tocheck - if authorities is empty, it's no use anyway # (users won't be able to validate the form anyway) @@ -94,6 +94,7 @@ class RegistrationView (FreeAccessView): # public_key = "ssh-rsa " + public_key # Saving to DB keypair = '{"user_public_key":'+ public_key + ', "user_private_key":'+ private_key + ', "user_hrn":"'+ user_hrn + '"}' + auth_type = 'managed' #keypair = re.sub("\r", "", keypair) #keypair = re.sub("\n", "\\n", keypair) #keypair = keypair.rstrip('\r\n') @@ -109,6 +110,7 @@ class RegistrationView (FreeAccessView): keypair = re.sub("\r", "", keypair) keypair = re.sub("\n", "\\n",keypair) keypair = ''.join(keypair.split()) + auth_type = 'user' # for sending email public_key = file_content else: @@ -152,7 +154,20 @@ class RegistrationView (FreeAccessView): msg = render_to_string('user_request_email.txt', ctx) send_mail("Onelab New User request for %s submitted"%reg_email, msg, reg_email, recipients) - return render(request, 'user_register_complete.html') + #return render(request, 'user_register_complete.html') + + #creating local:account in manifold + user_query = Query().get('local:user').select('user_id','email') + user_details = execute_admin_query(self.request, user_query) + + for user_detail in user_details: + if user_detail['email']==reg_email: + user_id = user_detail['user_id'] + #print "test" + #print user_id + user_params = {'platform_id': 5, 'user_id': user_id, 'auth_type': auth_type, 'config': keypair} + manifold_add_account(request,user_params) + return render(request, 'user_register_complete.html') template_env = { 'topmenu_items': topmenu_items('Register', request), @@ -163,7 +178,7 @@ class RegistrationView (FreeAccessView): 'authority_hrn': request.POST.get('authority_hrn', ''), 'email': request.POST.get('email', ''), 'password': request.POST.get('password', ''), - 'authorities': authorities, + #'authorities': authorities, } template_env.update(page.prelude_env ()) return render(request, 'registration_view.html',template_env) -- 2.43.0