X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=portal%2Factions.py;h=07943ef32f99088639bedb0399f89e9e6ba298f7;hb=43a4dfd5c95080af83cc2ccf2c7d75218e985e57;hp=feef871d2d25ddf5d2fc4fe3092a58359e938a9f;hpb=d1accda30ea287adde0500b5280ee360e1c357a3;p=myslice.git diff --git a/portal/actions.py b/portal/actions.py index feef871d..07943ef3 100644 --- a/portal/actions.py +++ b/portal/actions.py @@ -578,44 +578,56 @@ def ls_create_user(wsgi_request, request, user_detail): organization = request['username'].split('@')[1] lsClient = LaboraSchedulerClient( organization ) - org_gidnumber = lsClient.get_testbed_info()['gidnumber'] - user_homedirectory = "/home/" + organization + "/" + request['username'].split('@')[0] - user_homedirectory = user_homedirectory.encode('utf-8') + orgGIDNumber = lsClient.get_testbed_info()['gidnumber'] + userHomeDirectory = "/home/" + organization + "/" + request['username'].split('@')[0] + userHomeDirectory = userHomeDirectory.encode('utf-8') - user_data = { + userData = { 'username' : request['username'], 'email' : request['email'].encode('utf-8'), 'password' : request['password'].encode('utf-8'), 'name' : str( request['first_name'].encode('latin1') ) + ' ' + str( request['last_name'].encode('latin1') ), - 'gidnumber' : org_gidnumber, - 'homedirectory' : user_homedirectory + 'gidnumber' : orgGIDNumber, + 'homedirectory' : userHomeDirectory, + 'created_by' : "myslice" } - # Add user in the island: - addUser = lsClient.add_user( user_data ) - - + # Add user in the island. + addUser = lsClient.add_user( userData ) + + # User successfully created, upload user public key. + if addUser: + ls_update_public_key( wsgi_request, request, lsClient, addUser ) + return addUser def ls_validate_user(wsgi_request, request): organization = request['username'].split('@')[1] lsClient = LaboraSchedulerClient( organization ) - user_id = lsClient.get_user_id_by_username( { 'username': str(request['username']) } ) + userId = lsClient.get_user_id_by_username( { 'username': str( request['username'] ) } ) validate = False - if user_id: - user_data = { - 'user_id' : user_id, + if userId: + userData = { + 'user_id' : userId, 'new_user_data' : { 'enable': 'TRUE' } } - validate = lsClient.update_user( user_data ) - - addUserPublicKey = lsClient.add_user_public_key( { 'user_id' : user_id, 'public_key': request['public_key'] } ) + validate = lsClient.update_user( userData ) return validate and addUserPublicKey +def ls_update_public_key( wsgi_request, request, lsClient, userId ): + userPbKey = { + 'user_id' : userId, + 'public_key' : request['public_key'] + } + + addUserPublicKey = lsClient.add_user_public_key( userPbKey ) + + return addUserPublicKey + def create_user(wsgi_request, request): # XXX This has to be stored centrally