from portal.models import PendingUser, PendingSlice, PendingAuthority
import json
-from portal.models import PendingSlice
+from django.contrib.auth.models import User
from django.template.loader import render_to_string
from django.core.mail import send_mail
return ['support@myslice.info']
else:
pi_user_hrns = [ hrn for x in pi_users for hrn in x['pi_users'] ]
- query = Query.get('user').filter_by('user_hrn', 'included', pi_user_hrns).select('email')
+ query = Query.get('user').filter_by('user_hrn', 'included', pi_user_hrns).select('user_email')
results = execute_admin_query(request, query)
- print "mails", [result['email'] for result in results]
- return [result['email'] for result in results]
+ return [result['user_email'] for result in results]
def is_pi(wsgi_request, user_hrn, authority_hrn):
# XXX could be done in a single query !
request['last_name'] = user.last_name
request['email'] = user.email
request['login'] = user.login
- request['keypair'] = user.keypair
+ request['user_hrn'] = user.user_hrn
+ request['public_key'] = user.public_key
+ request['private_key'] = user.private_key
return request
def make_request_slice(slice):
auth_pi = request.get('pi', None)
auth_pi = list([auth_pi]) if auth_pi else list()
- # We create a slice request with Manifold terminology
+ # We create a user request with Manifold terminology
sfa_user_params = {
- 'user_hrn' : request['user_hrn'],
- 'user_email' : request['email'],
- 'urn' : Xrn(request['user_hrn'], request['type']).get_urn(),
- 'type' : request['type'],
- 'keys' : request['public_key'],
- 'first_name' : request['first_name'],
- 'last_name' : request['last_name'],
- #'slices' : None,
- #'researcher': None,
- 'pi' : auth_pi,
- 'enabled' : True
+ 'user_hrn' : request['user_hrn'],
+ 'user_email' : request['email'],
+ 'user_urn' : Xrn(request['user_hrn'], request['type']).get_urn(),
+ 'user_type' : request['type'],
+ 'keys' : request['public_key'],
+ 'user_first_name' : request['first_name'],
+ 'user_last_name' : request['last_name'],
+ 'pi_authorities' : auth_pi,
+ 'user_enabled' : True
}
- query = Query.create('user').set(user_params).select('user_hrn')
+ query = Query.create('user').set(sfa_user_params).select('user_hrn')
results = execute_query(wsgi_request, query)
if not results:
- raise Exception, "Could not create %s. Already exists ?" % user_params['user_hrn']
+ raise Exception, "Could not create %s. Already exists ?" % sfa_user_params['user_hrn']
return results
def create_user(wsgi_request, request):
# we would have to perform the steps in create_pending_user too
# Add the user to the SFA registry
- sfa_add_user(wsgi_request, request)
+ sfa_create_user(wsgi_request, request)
# Update Manifold user status
manifold_update_user(wsgi_request, request['email'], {'status': USER_STATUS_ENABLED})
# Add reference accounts for platforms
manifold_add_reference_user_accounts(wsgi_request, request)
-def create_pending_user(wgsi_request, request, user_detail):
+def create_pending_user(wsgi_request, request, user_detail):
"""
"""
authority_hrn = request['authority_hrn'],
email = request['email'],
password = request['password'],
- keypair = request['account_config'], # XXX REMOVE
- public_key = request['public_key'], # TODO NEW
- private_key = request['private_key'], # TODO NEW
- user_hrn = request['user_hrn'], # TODO NEW
+ public_key = request['public_key'],
+ private_key = request['private_key'],
+ user_hrn = request['user_hrn'],
pi = '', # XXX Why not None ?
)
b.save()
manifold_add_account(wsgi_request, account_params)
# Send an email: the recipients are the PI of the authority
- recipients = authority_get_pi_emails(wsgi_request, authority_hrn)
+ recipients = authority_get_pi_emails(wsgi_request, request['authority_hrn'])
msg = render_to_string('user_request_email.txt', request)
send_mail("Onelab New User request for %(email)s submitted" % request, msg, 'support@myslice.info', recipients)