Private
Public Access
1
0

adding api key to export settings page

This commit is contained in:
2024-11-28 16:06:51 +01:00
parent 1214e0e1fb
commit 562ce91797
2 changed files with 93 additions and 49 deletions

View File

@@ -7,6 +7,8 @@
{% block main %}
<h1>Import and Export Settings for {{ rower.user.first_name }} {{ rower.user.last_name }}</h1>
<ul class="main-content">
<li class="grid_2">
<p>You are currently connected to:
{% if rower.c2token is not None and rower.c2token != '' %}
Concept2 Logbook,
@@ -35,7 +37,6 @@
{% if rower.rojabo_token is not None and rower.rojabo_token != '' %}
Rojabo
{% endif %}
</p>
{% if form.errors %}
@@ -71,6 +72,40 @@
a workout on Strava. If you want Deletions to propagate to Rowsandall, tick the Strava Auto Delete
check box.
</p>
</li>
<li class="grid_2">
{% if grants %}
<h2>Applications</h2>
<table width="100%">
<thead>
<tr>
<th>Application</th>
<th>Scope</th>
<th>Revoke</th>
</tr>
</thead>
<tbody>
{% for grant in grants %}
<tr>
<td>{{ grant.application }}</td>
<td>{{ grant.scope }}</td>
<td>
<a href="/rowers/me/revokeapp/{{ grant.application.id }}/">Revoke</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
<h2>API Key</h2>
<p>{{ apikey }}</p>
<p>
<a href="/rowers/me/regenerateapikey/">Regenerate</a>
</p>
This API key can be used to access the Rowsandall API. It is used by some third party applications to access your data. Keep it secret.
</li>
</ul>
<p>Click on one of the icons below to connect to the service of your
choice or to renew the authorization.</p>
<p><a href="/rowers/me/stravaauthorize/"><img src="/static/img/ConnectWithStrava.png" alt="connect with strava" width="120"></a></p>
@@ -89,7 +124,6 @@
<p><a href="/rowers/me/rojaboauthorize"><img src="/static/img/rojabo.png"
alt="connect with Rojabo" width="130"></a></p>
{% endblock %}
{% block sidebar %}

View File

@@ -520,10 +520,19 @@ def rower_exportsettings_view(request, userid=0):
}
]
grants = AccessToken.objects.filter(user=request.user)
try:
apikey = APIKey.objects.get(user=request.user)
except APIKey.DoesNotExist:
apikey = APIKey.objects.create(user=request.user)
return render(request, 'rower_exportsettings.html',
{'form': form,
'rower': r,
'breadcrumbs': breadcrumbs,
'grants': grants,
'apikey': apikey.key,
})
@@ -651,6 +660,7 @@ def rower_edit_view(request, rowerid=0, userid=0, message=""):
@login_required()
def rower_regenerate_apikey(request):
referer = request.META['HTTP_REFERER']
try:
apikey = APIKey.objects.get(user=request.user)
except APIKey.DoesNotExist:
@@ -658,7 +668,7 @@ def rower_regenerate_apikey(request):
apikey.regenerate_key()
return HttpResponseRedirect(reverse('rower_edit_view'))
return HttpResponseRedirect(referer)
#simple initial settings page
@login_required()