Files
test-auth/app/sso/templates/sso/profile.html

208 lines
8.3 KiB
HTML

{% extends "base.html" %}
{% load naturaltimediff %}
{% load installed %}
{% load gargoyle_tags %}
{% block title %}Your Profile{% endblock %}
{% block content %}
<script src="{{ STATIC_URL }}bootstrap/js/bootstrap-tabs.js"></script>
<script src="{{ STATIC_URL }}js/jquery.tablesorter.min.js"></script>
<script src="{{ STATIC_URL }}bootstrap/js/bootstrap-twipsy.js"></script>
<script src="{{ STATIC_URL }}bootstrap/js/bootstrap-popover.js"></script>
<div class="page-header">
<h1>Your Profile</h1>
</div>
<ul class="tabs">
<li class="active"><a href="#overview">Overview</a></li>
<li><a href="#eveapi">EVE API Keys</a></li>
{% if "reddit"|installed %}
{% ifswitch reddit %}
<li><a href="#reddit">Reddit</a></li>
{% endifswitch %}
{% endif %}
</ul>
<div class="pill-content">
<!-- Overview Tab -->
<div class="active" id="overview">
<p>
<b>Username:</b> {{ user.username }}<br/>
<b>Email:</b> {{ user.email }} (<a href="{% url sso-emailupdate %}">change</a>)<br/>
<b>Primary Character:</b> {{ user.get_profile.primary_character }} (<a href="{% url sso-primarycharacterupdate %}">change</a>)<br/>
<b>Groups:</b> {{ user.groups.all|join:", " }}<br/>
</p>
<h2>Passwords</h2>
<p>
<a href="{% url django.contrib.auth.views.password_change %}" class="btn">Change Auth Login Password</a>
<a href="{% url sso-apipassword %}" class="btn">Change Services Password</a><br/><br/>
<span class="label info">Note</span> Changing your services password will change it for all linked sites (forums, wiki, reimbursement tool)
</p>
{% if user.eveaccount_set.all %}
<h2>Service Accounts</h2>
<p>These are services that cannot talk to auth and require a seperate username/password.</p>
{% if user.serviceaccount_set.all %}
<table class="zebra-striped" id="services">
<thead>
<tr><th>Service</th><th>Username</th><th>URL</th><th>Active</th><th>Actions</th></tr>
</thead>
<tbody>
{% for acc in user.serviceaccount_set.all %}
<tr><td>{{ acc.service }}</td>
<td>{{ acc.service_uid }}</td>
<td><a href="{{ acc.service.url }}">{{ acc.service.url }}</a></td>
<td>{% if acc.active %}Yes{% else %}No{% endif %}</td>
<td>
{% if acc.active %}
{% if acc.service.settings.require_password %}<a href="{% url sso.views.service_reset acc.id %}">Reset</a>&nbsp;/&nbsp;{% endif %}
<a href="{% url sso.views.service_del acc.id %}">Delete</a>
{% if acc.service.provide_login %}&nbsp;/&nbsp;<a href="{% url sso.views.service_login acc.id %}">Login</a>{% endif %}
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
<p>
<a href="{% if available_services > 0 %}{% url sso.views.service_add %}{% else %}#{% endif %}" class="btn{% if available_services == 0 %} disabled{% endif %}">Add Service</a>
</p>
{% endif %}
</div>
<!-- EVE API Tab -->
<div id="eveapi">
<h2>Eve API Keys</h2>
<p>Adding an Eve API key will allow you to access any services allowed for your
corporation. Limited keys are accepted for service validation. API keys
are stored for on-going authentication. As the assigned owner of a key you may
remove them at any time, but this may affect any existing services you have
setup.</p>
{% if user.eveaccount_set.all %}
<table id="eveapikeys">
<thead>
<tr><th>User ID</th><th>API Key</th><th>Description</th><th>Type</th><th>Active</th><th>Last Updated</th><th>Actions</th></tr>
</thead>
<tbody>
{% for acc in user.eveaccount_set.all %}
<tr {% if acc.api_keytype == 4 %}style="background-color: #cccccc; color: gray;"{% endif %}>
<td>{{ acc.api_user_id }}</td>
<td>{{ acc.api_key|slice:":10" }}&#8230;</td>
<td>{{ acc.description }}</td>
<td><a href="#" class="accesspopup" id="{{ acc.api_user_id}}" data-original-title="Access for Key {{ acc.api_user_id }}" rel="popover">{{ acc.get_api_keytype_display }}</a>{% if acc.api_keytype == 4 %}&nbsp;<b><sup style="color: red;">*</sup></b>{% endif %}</td>
<td id="api-status-{{ acc.api_user_id }}">{{ acc.get_api_status_display }}</td>
<td id="api-time-{{ acc.api_user_id }}">{{ acc.api_last_updated|naturaltimediff }}</td>
<td>{% ifswitch api-disableprocessing %}{% else %}<a href="{% url eveapi-refresh acc.api_user_id %}" onclick="javascript:refresh_apikey({{ acc.api_user_id }}); return false;">Refresh</a>,&nbsp;
<a href="{% url eveapi-update acc.api_user_id %}">Update Key</a>,&nbsp;{% endifswitch %}
<a href="{% url eveapi-log acc.api_user_id %}">Logs</a>{% ifswitch eve-keydelete %},&nbsp;
<a href="{% url eveapi-delete acc.api_user_id %}">Delete</a>{% endifswitch %}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
<p><span class="label important">Warning</span> Character API Keys are not included in any authorization checks, you will not be able to submit applications or access any services with them.</p>
<p>
{% ifswitch api-disableprocessing %}
{% else %}
<a href="{% url eveapi-add %}" class="btn primary" title="Adds a new EVE API key to your account">Add a Eve API key</a>
<a href="https://support.eveonline.com/api/Key/CreatePredefined/59638024/0/false" class="btn" title="Create a API key with all the permissions Auth needs">Create API Key</a>
<a href="{% url sso.views.refresh_access %}" class="btn {% if not user.eveaccount_set.all %}disabled{% else %}danger{% endif %}" title="Forces auth to recheck your permissions and update your services as needed">Force Access Update</a>
{% endifswitch %}
</p>
</div>
{% if "reddit"|installed %}
{% ifswitch reddit %}
<!-- Reddit Tab -->
<div id="reddit">
<h2>Reddit Accounts</h2>
<p>This is a list of all your current linked Reddit accounts</p>
{% if user.redditaccount_set.all %}
<p>To validate your Reddit account, login on Reddit then click the link next to the account, fill in some text in the message and click send.</p>
<table>
<thead>
<tr><th>Username</th><th>Created Date</th><th>Validated</th></tr>
</thead>
<tbody>
{% for acc in user.redditaccount_set.all %}
<tr>
<td>{{ acc.username }}</td>
<td>{{ acc.date_created }}</td>
<td>{% if acc.validated %}Yes{% else %}No (<a href="http://www.reddit.com/message/compose/?to=DredditVerification&subject=Validation%3a%20{{user.username}}" target="_blank">Validate</a>){% endif %}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
<p>
<a href="{% url reddit-addaccount %}" class="btn">Add a Reddit account</a>
<a href="{% url sso-reddittagging %}" class="btn">{% if user.get_profile.tag_reddit_accounts %}Disable{% else %}Enable{% endif %} Reddit Flare</a>
</p>
</div>
{% endifswitch %}
{% endif %}
</div>
<script type="text/javascript">
access_popover = function(e) {
e.preventDefault();
var el = $(this);
var id = $(this).attr('id');
if (!el.attr('data-content')) {
$.ajax({
type: 'GET',
url: '/eve/eveapi/access/' + id + '/',
dataType: 'html',
success: function(data) {
el.attr('data-content', data);
el.popover('show');
},
});
} else {
el.popover('show');
}
}
$('.tabs').tabs();
$("table#eveapikeys").tablesorter({ sortList: [[0,0]] });
$('.accesspopup').popover({html: 'true', trigger: 'manual'});
$('.accesspopup').hover(access_popover, function () { $(this).popover('hide') });
function refresh_apikey(key) {
$("#api-status-" + key).html("<center><img src='{{ STATIC_URL }}img/spinner.gif'/></center>");
$("#api-time-" + key).html("<center><img src='{{ STATIC_URL }}img/spinner.gif'/></center>");
$.getJSON("/eve/eveapi/refresh/" + key + "/", function(json) {
$("#api-time-" + json[0].pk).html("a moment ago");
switch(json[0].fields.api_status) {
case 0:
$("#api-status-" + json[0].pk).html("Unknown");
break;
case 1:
$("#api-status-" + json[0].pk).html("OK");
break;
case 2:
$("#api-status-" + json[0].pk).html("Other Error");
break;
case 3:
$("#api-status-" + json[0].pk).html("Account Expired");
break;
default:
$("#api-status-" + json[0].pk).html("Error");
break;
}
});
}
</script>
{% endblock %}