From 9afd81b372b4ec660b546d8a26cd6b33143d9ac3 Mon Sep 17 00:00:00 2001 From: Gavin Palmer Date: Sun, 12 Mar 2023 22:07:06 -0500 Subject: [PATCH] reset token api refactor (#446) * move reset-token from home to api * cleanup * cleanup markdown * more dev readme cleanup * remove dev files * format * make robot happier --------- Co-authored-by: Gavin Palmer --- tubearchivist/api/urls.py | 6 ++++++ tubearchivist/api/views.py | 12 ++++++++++++ tubearchivist/home/views.py | 5 ----- tubearchivist/static/script.js | 14 +++++++++----- 4 files changed, 27 insertions(+), 10 deletions(-) diff --git a/tubearchivist/api/urls.py b/tubearchivist/api/urls.py index 7cf5368c..72852e20 100644 --- a/tubearchivist/api/urls.py +++ b/tubearchivist/api/urls.py @@ -17,6 +17,7 @@ from api.views import ( SnapshotApiListView, SnapshotApiView, TaskApiView, + TokenView, VideoApiListView, VideoApiView, VideoCommentView, @@ -135,4 +136,9 @@ urlpatterns = [ SearchView.as_view(), name="api-search", ), + path( + "token/", + TokenView.as_view(), + name="api-token", + ), ] diff --git a/tubearchivist/api/views.py b/tubearchivist/api/views.py index 14f547f6..a3af88c2 100644 --- a/tubearchivist/api/views.py +++ b/tubearchivist/api/views.py @@ -760,3 +760,15 @@ class SearchView(ApiBaseView): search_results = SearchForm().multi_search(search_query) return Response(search_results) + + +class TokenView(ApiBaseView): + """resolves to /api/token/ + DELETE: revoke the token + """ + + @staticmethod + def delete(request): + print("revoke API token") + request.user.auth_token.delete() + return Response({"success": True}) diff --git a/tubearchivist/home/views.py b/tubearchivist/home/views.py index db735d01..21f3dab7 100644 --- a/tubearchivist/home/views.py +++ b/tubearchivist/home/views.py @@ -1146,11 +1146,6 @@ def process(request): if request.method == "POST": current_user = request.user.id post_dict = json.loads(request.body.decode()) - if post_dict.get("reset-token"): - print("revoke API token") - request.user.auth_token.delete() - return JsonResponse({"success": True}) - post_handler = PostData(post_dict, current_user) if post_handler.to_exec: task_result = post_handler.run_task() diff --git a/tubearchivist/static/script.js b/tubearchivist/static/script.js index ff8e8cc5..864a0712 100644 --- a/tubearchivist/static/script.js +++ b/tubearchivist/static/script.js @@ -298,11 +298,15 @@ function fsRescan() { } function resetToken() { - let payload = JSON.stringify({ 'reset-token': true }); - sendPost(payload); - let message = document.createElement('p'); - message.innerText = 'Token revoked'; - document.getElementById('text-reveal').replaceWith(message); + let apiEndpoint = '/api/token/'; + let result = apiRequest(apiEndpoint, 'DELETE'); + if (result && result.success) { + let message = document.createElement('p'); + message.innerText = 'Token revoked'; + document.getElementById('text-reveal').replaceWith(message); + } else { + console.error('unable to revoke token'); + } } // restore from snapshot