+
+ #clear all creds
+ elif 'clear_cred' in request.POST:
+ for account_detail in account_details:
+ for platform_detail in platform_details:
+ if platform_detail['platform_id'] == account_detail['platform_id']:
+ if 'myslice' in platform_detail['platform']:
+ account_config = json.loads(account_detail['config'])
+ user_cred = account_config.get('delegated_user_credential','N/A')
+ if 'N/A' not in user_cred:
+ user_hrn = account_config.get('user_hrn','N/A')
+ user_pub_key = account_config.get('user_public_key','N/A')
+ user_priv_key = account_config.get('user_private_key','N/A')
+ updated_config = '{"user_public_key":"'+ user_pub_key + '", "user_private_key":"'+ user_priv_key + '", "user_hrn":"'+ user_hrn + '"}'
+ updated_config = ''.join(updated_config.split())
+ user_params = { 'config': updated_config}
+ manifold_update_account(request,user_params)
+ messages.success(request, 'All Credentials cleared')
+ return HttpResponseRedirect("/portal/account/")
+ else:
+ messages.error(request, 'Delete error: Credentials are not stored in the server')
+ return HttpResponseRedirect("/portal/account/")
+ else:
+ messages.error(request, 'Account error: You need an account in myslice platform to perform this action')
+ return HttpResponseRedirect("/portal/account/")
+
+
+ # Download delegated_user_cred
+ elif 'dl_user_cred' in request.POST:
+ if 'delegated_user_credential' in account_config:
+ user_cred = account_config['delegated_user_credential']
+ response = HttpResponse(user_cred, content_type='text/plain')
+ response['Content-Disposition'] = 'attachment; filename="user_cred.txt"'
+ return response
+ else:
+ messages.error(request, 'Download error: User credential is not stored in the server')
+ return HttpResponseRedirect("/portal/account/")
+
+ # add reference platforms
+ elif 'add_fuseco' in request.POST:
+ for platform_detail in platform_details:
+ if platform_detail['platform'] == "fuseco":
+ platform_id = platform_detail['platform_id']
+
+ user_params = {'platform_id': platform_id, 'user_id': user_id, 'auth_type': "reference", 'config': '{"reference_platform": "myslice"}'}
+ manifold_add_account(request,user_params)
+
+ messages.info(request, 'Reference Account added on Fuseco platform. You have now access to Fuseco resources.')
+ return HttpResponseRedirect("/portal/account/")
+
+ elif 'add_ple' in request.POST:
+ for platform_detail in platform_details:
+ if platform_detail['platform'] == "ple":
+ platform_id = platform_detail['platform_id']
+ user_params = {'platform_id': platform_id, 'user_id': user_id, 'auth_type': "reference", 'config': '{"reference_platform": "myslice"}'}
+ manifold_add_account(request,user_params)
+ messages.info(request, 'Reference Account added on PLE platform. You have now access to PLE resources.')
+ return HttpResponseRedirect("/portal/account/")
+
+ elif 'add_omf' in request.POST:
+ for platform_detail in platform_details:
+ if platform_detail['platform'] == "omf":
+ platform_id = platform_detail['platform_id']
+ user_params = {'platform_id': platform_id, 'user_id': user_id, 'auth_type': "reference", 'config': '{"reference_platform": "myslice"}'}
+ manifold_add_account(request,user_params)
+ messages.info(request, 'Reference Account added on OMF:Nitos platform. You have now access to OMF:Nitos resources.')
+ return HttpResponseRedirect("/portal/account/")
+
+ elif 'add_wilab' in request.POST:
+ for platform_detail in platform_details:
+ if platform_detail['platform'] == "wilab":
+ platform_id = platform_detail['platform_id']
+ user_params = {'platform_id': platform_id, 'user_id': user_id, 'auth_type': "reference", 'config': '{"reference_platform": "myslice"}'}
+ manifold_add_account(request,user_params)
+ messages.info(request, 'Reference Account added on Wilab platform. You have now access to Wilab resources.')
+ return HttpResponseRedirect("/portal/account/")
+
+ elif 'iotlab' in request.POST:
+ for platform_detail in platform_details:
+ if platform_detail['platform'] == "iotlab":
+ platform_id = platform_detail['platform_id']
+ user_params = {'platform_id': platform_id, 'user_id': user_id, 'auth_type': "reference", 'config': '{"reference_platform": "myslice"}'}
+ manifold_add_account(request,user_params)
+ messages.info(request, 'Reference Account added on IOTLab platform. You have now access to IOTLab resources.')
+ return HttpResponseRedirect("/portal/account/")
+
+ # delete reference platforms
+ elif 'delete_fuseco' in request.POST:
+ for platform_detail in platform_details:
+ if platform_detail['platform'] == "fuseco":
+ platform_id = platform_detail['platform_id']
+ user_params = {'user_id':user_id}
+ manifold_delete_account(request,platform_id,user_params)
+ messages.info(request, 'Reference Account is removed from Fuseco platform. You have no access to Fuseco resources anymore.')
+ return HttpResponseRedirect("/portal/account/")
+
+ elif 'delete_ple' in request.POST:
+ for platform_detail in platform_details:
+ if platform_detail['platform'] == "ple":
+ platform_id = platform_detail['platform_id']
+ user_params = {'user_id':user_id}
+ manifold_delete_account(request,platform_id,user_params)
+ messages.info(request, 'Reference Account is removed from PLE platform. You have no access to PLE resources anymore.')
+ return HttpResponseRedirect("/portal/account/")
+
+ elif 'delete_omf' in request.POST:
+ for platform_detail in platform_details:
+ if platform_detail['platform'] == "omf":
+ platform_id = platform_detail['platform_id']
+ user_params = {'user_id':user_id}
+ manifold_delete_account(request,platform_id,user_params)
+ messages.info(request, 'Reference Account is removed from OMF:Nitos platform. You have no access to OMF:Nitos resources anymore.')
+ return HttpResponseRedirect("/portal/account/")
+
+ elif 'delete_wilab' in request.POST:
+ for platform_detail in platform_details:
+ if platform_detail['platform'] == "wilab":
+ platform_id = platform_detail['platform_id']
+ user_params = {'user_id':user_id}
+ manifold_delete_account(request,platform_id,user_params)
+ query = Query.delete('local:account').filter_by('platform_id','==',platform_id)
+ results = execute_query(request,query)
+ messages.info(request, 'Reference Account is removed from Wilab platform. You have no access to Wilab resources anymore.')
+ return HttpResponseRedirect("/portal/account/")
+
+ elif 'delete_iotlab' in request.POST:
+ for platform_detail in platform_details:
+ if platform_detail['platform'] == "iotlab":
+ platform_id = platform_detail['platform_id']
+ user_params = {'user_id':user_id}
+ manifold_delete_account(request,platform_id,user_params)
+ messages.info(request, 'Reference Account is removed from IOTLab platform. You have no access to IOTLab resources anymore.')
+ return HttpResponseRedirect("/portal/account/")
+