platform_details = execute_query(self.request, platform_query)
account_details = execute_query(self.request, account_query)
- # initial assignment needed for users having no account
+ # initial assignment needed for users having account.config = {}
platform_name = ''
account_type = ''
account_usr_hrn = ''
account_pub_key = ''
account_reference = ''
+ my_users = ''
+ my_slices = ''
+ my_auths = ''
+ secondary_list = ''
platform_name_list = []
platform_name_secondary_list = []
platform_access_list = []
account_type_secondary_list = []
account_reference_list = []
delegation_type_list = []
- exp_user_cred_list = []
+ user_cred_exp_list = []
slice_list = []
auth_list = []
slice_cred_exp_list = []
pub_key_list = []
for platform_detail in platform_details:
- if 'sfa' in platform_detail['gateway_type']:
+ if 'sfa' in platform_detail['gateway_type'] and platform_detail['disabled']==0:
total_platform = platform_detail['platform']
total_platform_list.append(total_platform)
account_pub_key = account_config.get('user_public_key','N/A')
account_reference = account_config.get ('reference_platform','N/A')
# credentials
+ acc_user_cred = account_config.get('delegated_user_credential','N/A')
acc_slice_cred = account_config.get('delegated_slice_credentials','N/A')
acc_auth_cred = account_config.get('delegated_authority_credentials','N/A')
+ if 'N/A' not in acc_user_cred:
+ exp_date = re.search('<expires>(.*)</expires>', acc_user_cred)
+ if exp_date:
+ user_exp_date = exp_date.group(1)
+ user_cred_exp_list.append(user_exp_date)
+
+ my_users = [{'cred_exp': t[0]}
+ for t in zip(user_cred_exp_list)]
+
+
if 'N/A' not in acc_slice_cred:
for key, value in acc_slice_cred.iteritems():
slice_list.append(key)
for t in zip(auth_list, auth_cred_exp_list)]
- account_user_credential = account_config.get('delegated_user_credential','N/A')
- # Expiration date
- result = re.search('<expires>(.*)</expires>', account_user_credential)
- if result:
- exp_user_cred = result.group(1)
# for reference accounts
if 'reference' in account_detail['auth_type']:
account_type = 'Reference'
platform_name_list.append(platform_name)
account_type_list.append(account_type)
delegation_type_list.append(delegation)
- exp_user_cred_list.append(exp_user_cred)
usr_hrn_list.append(account_usr_hrn)
pub_key_list.append(account_pub_key)
# combining 5 lists into 1 [to render in the template]
- lst = [{'platform_name': t[0], 'account_type': t[1], 'delegation_type': t[2], 'credential_expiration':t[3], 'usr_hrn':t[4], 'usr_pubkey':t[5]}
- for t in zip(platform_name_list, account_type_list, delegation_type_list, exp_user_cred_list, usr_hrn_list, pub_key_list)]
+ lst = [{'platform_name': t[0], 'account_type': t[1], 'delegation_type': t[2], 'usr_hrn':t[3], 'usr_pubkey':t[4]}
+ for t in zip(platform_name_list, account_type_list, delegation_type_list, usr_hrn_list, pub_key_list)]
# to hide private key row if it doesn't exist
if 'myslice' in platform_detail['platform']:
account_config = json.loads(account_detail['config'])
platform_access_list.append(platform_access)
# Removing the platform which already has access
- print platform_access_list
- print total_platform_list
for platform in platform_access_list:
- print platform
total_platform_list.remove(platform)
# we could use zip. this one is used if columns have unequal rows
platform_list = [{'platform_no_access': t[0]}
for t in itertools.izip_longest(total_platform_list)]
-
context = super(AccountView, self).get_context_data(**kwargs)
context['data'] = lst
context['ref_acc'] = secondary_list
context['platform_list'] = platform_list
+ context['my_users'] = my_users
context['my_slices'] = my_slices
context['my_auths'] = my_auths
context['person'] = self.request.user
else:
messages.error(request, 'Account error: You need an account in myslice platform to perform this action')
return HttpResponseRedirect("/portal/account/")
-
- elif 'fuseco' in request.POST:
+
+ # add reference platforms
+ elif 'add_fuseco' in request.POST:
# The recipients are the PI of the authority
#recipients = authority_get_pi_emails(request, authority_hrn)
recipients = ["support@myslice.info"]
messages.info(request, 'Request to get access on Fuseco platform received. Please wait for PI\'s reply.')
return HttpResponseRedirect("/portal/account/")
- elif 'ple' in request.POST:
+ elif 'add_ple' in request.POST:
# The recipients are the PI of the authority
#recipients = authority_get_pi_emails(request, authority_hrn)
recipients = ["support@myslice.info"]
messages.info(request, 'Request to get access on PLE platform received. Please wait for PI\'s reply.')
return HttpResponseRedirect("/portal/account/")
- elif 'omf' in request.POST:
+ elif 'add_omf' in request.POST:
# The recipients are the PI of the authority
#recipients = authority_get_pi_emails(request, authority_hrn)
recipients = ["support@myslice.info"]
messages.info(request, 'Request to get access on OMF:NITOS platform received. Please wait for PI\'s reply.')
return HttpResponseRedirect("/portal/account/")
- elif 'wilab' in request.POST:
+ elif 'add_wilab' in request.POST:
# The recipients are the PI of the authority
#recipients = authority_get_pi_emails(request, authority_hrn)
recipients = ["support@myslice.info"]
send_mail("Onelab user %s requested an account in IOTLab"%requester , msg, sender, recipients)
messages.info(request, 'Request to get access on IOTLab platform received. Please wait for PI\'s reply.')
return HttpResponseRedirect("/portal/account/")
+
+ #delete reference platoforms
else:
messages.info(request, 'Under Construction. Please try again later!')
{% block unfold_main %}
-<h2>User Details</h2>
+<h2>User Profile <small>User info. in Myslice platform</small></h2>
{% if messages %}
<ul class="messages">
<td class="key">Email</td>
<td class="value">
<span id="emailval" class="value" >{{ person.email }}</span>
- <img class="logo" src="{{STATIC_URL}}/img/ques_icon.png" onclick="emailAlert()" title="To change your email please contact the administrator"
- style="height: 20px; width: 20px; position: absolute; left: 625px; left: 900px; margin-top: -9px;">
+ <img class="img-thumbnail" src="{{STATIC_URL}}/img/ques_icon.png" onclick="emailAlert()" title="To change your email please contact the administrator"
+ style="height: 24px; position: absolute; left: 625px; left: 900px; margin-top: -3px;">
</td>
</tr>
<tr class="odd">
<td class="key">Password</td>
<td class="value">
- <button class="edit" type="button" title="Password" name="edit_pass" id="edit_pass">Edit</button>
+ <button class="btn btn-default btn-xs" type="button" title="Password" name="edit_pass" id="edit_pass">Edit</button>
<span id="passval"class="value">******** </span>
<span class="hide_this" id="span_pass">
- <button type="button" class="cancel" title="Cancel" id="cancel_pass_change"> Cancel </button>
+ <button type="button" class="btn btn-default btn-xs" title="Cancel" id="cancel_pass_change"> Cancel </button>
<div style='display:none;' id="pass_form">
<input type='hidden' value='' /></div>
<table id="edit_password">
<td>Confirm password: </td>
<td class="field">
<input type="password" name="confirmpassword" id="confirmpassword" />
- <input type="submit" name="submit_pass" value="Save"/>
+ <input type="submit" class="btn btn-default btn-xs" name="submit_pass" value="Save"/>
</td>
</tr>
</table>
<td class="value">
<span id="nameval" class="value" >{{ fullname }} </span>
<span class="hide_this" id="span_name">
- <button type="button" class="cancel" title="Cancel" id="cancel_name_change"> Cancel </button>
+ <button type="button" class="btn btn-default btn-xs" title="Cancel" id="cancel_name_change"> Cancel </button>
<div style='display:none;'><input type='hidden' name='nameform' /></div>
<input id="fname" type="text" name="fname" class="required" maxlength="200" value="{{firstname}}" />
<input id="lname" type="text" name="lname" class="required" maxlength="200" value="{{lastname}}" />
- <input type="submit" name="submit_name" value="Save"/>
+ <input type="submit" class="btn btn-default btn-xs" name="submit_name" value="Save"/>
</span>
- <button class="edit" type="button"title="Full Name" id="edit_name">Edit</button>
+ <button class="btn btn-default btn-xs" type="button"title="Full Name" id="edit_name">Edit</button>
</td>
</tr>
<tr class="odd">
<td class="key">Authority</td>
<td class="value">
<span id="affval" class="value">{{ authority }}</span>
- <img class="logo" src="{{STATIC_URL}}/img/ques_icon.png" onclick="affAlert()" title="To change your affiliation please contact the administrator"
- style="height: 20px; width: 20px; position: absolute; left: 625px; left: 900px; ">
+ <img class="img-thumbnail" src="{{STATIC_URL}}/img/ques_icon.png" onclick="affAlert()" title="To change your affiliation please contact the administrator"
+ style="height: 24px; position: absolute; left: 625px; left: 900px; margin-top:-3px; ">
</td>
</tr>
<tr class="even">
<td class="key">Generate Keys</td>
<td>
- <button id="generate_keypair" name="generate" type="submit" onclick="myFunction()"
+ <button id="generate_keypair" class="btn btn-danger btn-xs" name="generate" type="submit" onclick="myFunction()"
title="Generate a new key pair. After it is generated, you will need to download your public and private keys again.">Generate a new Key Pair
</button>
</td>
<td class="value">
<span id="keyval" class="value">******** </span>
<span class="hide_this" id="span_upload">
- <button type="button" class="cancel" title="Cancel" id="cancel_upload"> Cancel </button>
+ <button type="button" class="btn btn-default btn-xs" title="Cancel" id="cancel_upload"> Cancel </button>
<div style='display:none;'>
<input type='hidden' name='upload' /></div>
<input type="file" name="pubkey" class="required" id="pubkey"/>
- <button name="upload_key" id="upload_key" type="submit" title="Delete your private key">Upload </button>
+ <button class="btn btn-default btn-xs" name="upload_key" id="upload_key" type="submit" title="Delete your private key">Upload </button>
</span>
<div style='display:none;'> <input type='hidden' name='dload' /> </div>
- <button type="submit" name="dl_pubkey" class="download" title="Download your public key" id="dl_file"> Download </button>
- <button id="upload_file" type="button" title="Upload a public key"> Upload </button>
+ <button type="submit" name="dl_pubkey" class="btn btn-default btn-xs" title="Download your public key" id="dl_file"> Download </button>
+ <button class="btn btn-default btn-xs" id="upload_file" type="button" title="Upload a public key"> Upload </button>
</td>
</tr>
<tr class="even" id="pkey_row">
{%if 'N/A' not in user_private_key%}
<td class="key">Private Key </td> <!-- Hide if priv_key doesn't exist in myslice platform -->
<td class="value">********<a href="#">
- <button type="submit" name="dl_pkey" class="download" title="Download your privaye key" id="dl_pkey"> Download </button>
- <button id="delete" name="delete" type="submit" title="Delete your private key">Delete </button>
+ <button type="submit" name="dl_pkey" class="btn btn-default btn-xs" title="Download your privaye key" id="dl_pkey"> Download </button>
+ <button class="btn btn-danger btn-xs" id="delete" name="delete" type="submit" title="Delete your private key">Delete </button>
</td>
{%endif%}
</tr>
</div>
<h2>Account Information</h2>
-<h3>Principal Account</h3>
+<h3>Principal Account <small>Account used for delegating credentials</small></h3>
<div id="middle" align="center">
<div class="well">
- <table class="mytable">
+ <table class="table table-bordered table-hover mytable">
<tr class="odd">
<th>Platform</th>
<th>Account Type</th>
{% for row in data %}
<tr class="border_bottom">
<td class="odd"> {{ row.platform_name }} </td>
- <td class="even"> {{ row.account_type }} </td>
+ <td class="odd"> {{ row.account_type }} </td>
<td class="odd"> {{ row.delegation_type }} </td>
<td class="odd"> {{ row.usr_hrn }} </td>
<!-- <td class="even"> {{ row.usr_pubkey }} </td> -->
<h3>Credentials</h3>
<div id="middle" align="center">
<div class="well">
- <table class="mytable">
+ <table class="mytable table table-bordered table-hover">
<caption><b>Delegated User Credential</b></caption>
<tr class="odd">
<th>Expiration Date</th>
+ <th>Download</th>
</tr>
- {% for row in data %}
+ {% for row in my_users %}
<tr class="border_bottom">
- <td class="even"> {{ row.credential_expiration }} </td>
+ <td class="odd"> {{ row.cred_exp }} </td>
+ <td class="odd"><button class="btn btn-default btn-xs" name= "dl_user_cred" type="submit" title="Download User Credential">Download</button></td>
</tr>
{%endfor%}
</table>
- <p><button id="dl_user_cred" name= "dl_user_cred" type="submit" title="Download User Credential">Download</button></p>
- <table class="mytable">
+ <p></p>
+ <table class="mytable table table-bordered table-hover">
<caption><b>Delegated Slice Credentials</b></caption>
<tr class="odd">
<th>Slice Name</th>
<th>Expiration Date</th>
+ <th>Download</th>
</tr>
{% for row in my_slices %}
<tr class="border_bottom">
- <td class="even"> {{ row.slice_name }} </td>
+ <td class="odd"> {{ row.slice_name }} </td>
<td class="odd"> {{ row.cred_exp }} </td>
+ <td class="odd"> <button class="btn btn-default btn-xs" name= "dl_slice_cred" type="submit" title="Download Slice Credentials">Download</button> </td>
</tr>
{%endfor%}
</table>
- <p><button id="dl_slice_cred" name= "dl_slice_cred" type="submit" title="Download Slice Credentials">Download</button></p>
- <table class="mytable">
+ <p></p>
+ <table class="mytable table table-bordered table-hover">
<caption><b>Delegated Authority Credentials</b></caption>
<tr class="odd">
<th>Authority Name</th>
<th>Expiration Date</th>
+ <th>Download</th>
</tr>
{% for row in my_auths %}
<tr class="border_bottom">
- <td class="even"> {{ row.auth_name }} </td>
+ <td class="odd"> {{ row.auth_name }} </td>
<td class="odd"> {{ row.cred_exp }} </td>
+ <td class="odd"><button class="btn btn-default btn-xs" name= "dl_auth_cred" type="submit" title="Download Authority Credentials">Download</button></td>
</tr>
{%endfor%}
</table>
- <p><button id="dl_auth_cred" name= "dl_auth_cred" type="submit" title="Download Authority Credentials">Download</button></p>
<p></p>
- <p><button id="clear_cred" name= "clear_cred" type="submit" title="Clear All Credentials">Clear Credentials</button></p>
+ <p><button class="btn btn-danger btn-lg btn-block" name= "clear_cred" type="submit" title="Clear All Credentials">Clear Credentials</button></p>
</div>
</div>
-<h3>Testbed Accounts</h3>
+<h3>Testbed Accounts <small>User accounts in other testbeds</small></h3>
<div id="middle" align="center">
<div class="well">
- <table class="mytable">
+ <table class="mytable table table-bordered table-hover">
<tr class="odd">
<th>Platform</th>
<th>Account Type</th>
<th>Reference to</th>
+ <th>Remove Account</th>
</tr>
{% for row in ref_acc %}
<tr class="border_bottom">
<td class="odd"> {{ row.platform_name }} </td>
- <td class="even"> {{ row.account_type }} </td>
+ <td class="odd"> {{ row.account_type }} </td>
<td class="odd"> {{ row.account_reference }} </td>
+ <td class="odd">
+ <button class="btn btn-default btn-xs" name="delete_{{platform.platform_no_access}}" type="submit" title="Delete account from this platform">Delete {{row.platform_name}}</button>
+ </td>
</tr>
{%endfor%}
</table>
<h3>Add Accounts</h3>
<div id="middle" align="center">
<div class="well">
- <table class="mytable">
+ <table class="mytable table table-bordered table-hover">
<tr class="odd">
<th>Platforms</th>
<th>Request Access</th>
{% for platform in platform_list %}
<tr class="border_bottom">
<td class="odd"> {{ platform.platform_no_access }} </td>
- <td class="even">
- <button id="request_access" name= {{platform.platform_no_access}} type="submit" title="Add account to this platform">Add {{platform.platform_no_access}}</button>
+ <td class="odd">
+ <button class="btn btn-default btn-xs" name= "add_{{platform.platform_no_access}}" type="submit" title="Add account to this platform">Add {{platform.platform_no_access}}</button>
</td>
</tr>
{%endfor%}