Skip to content

Commit

Permalink
Allow deleting ImplicitBearerTokens via the API
Browse files Browse the repository at this point in the history
Signed-off-by: Olivier Léobal <[email protected]>
  • Loading branch information
oleobal committed Aug 8, 2023
1 parent 3950bae commit 02c0e59
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 11 deletions.
10 changes: 4 additions & 6 deletions backend/backend/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,13 +80,11 @@ def get(self, request, *args, **kwargs):
)

def delete(self, request, *args, **kwargs):
try:
token = BearerToken.objects.get(id=request.GET.get("id"))
if request.user == token.user:
token.delete()
for model in [BearerToken, ImplicitBearerToken]:
tokens = model.objects.filter(id=request.GET.get("id"))
if len(tokens) == 1 and request.user == tokens[0].user:
tokens[0].delete()
return ApiResponse(data={"message": "Token removed"}, status=status.HTTP_200_OK)
except BearerToken.ObjectDoesNotExist or BearerToken.MultipleObjectsReturned:
pass
return ApiResponse(data={"message": "Token not found"}, status=status.HTTP_404_NOT_FOUND)


Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# Generated by Django 4.2.1 on 2023-07-28 09:54
# Generated by Django 4.2.1 on 2023-08-08 09:38

import django.db.models.deletion
from django.conf import settings
from django.db import migrations
from django.db import models
from django.db import migrations, models
import django.db.models.deletion
import uuid


class Migration(migrations.Migration):
Expand All @@ -13,6 +13,11 @@ class Migration(migrations.Migration):
]

operations = [
migrations.AddField(
model_name="implicitbearertoken",
name="id",
field=models.UUIDField(default=uuid.uuid4, editable=False),
),
migrations.AlterField(
model_name="implicitbearertoken",
name="user",
Expand Down
1 change: 1 addition & 0 deletions backend/users/models/token.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ class ImplicitBearerToken(Token):
"""

user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name="implicit_bearer_tokens", on_delete=models.CASCADE)
id = models.UUIDField(default=uuid.uuid4, editable=False)

@property
def expires_at(self) -> datetime:
Expand Down
2 changes: 1 addition & 1 deletion backend/users/serializers/token.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ class ImplicitBearerTokenSerializer(serializers.ModelSerializer):

class Meta:
model = ImplicitBearerToken
fields = ["expires_at", "created_at", "token"]
fields = ["id", "expires_at", "created_at", "token"]

def __init__(self, *args, **kwargs):
include_payload = kwargs.pop("include_payload", False)
Expand Down

0 comments on commit 02c0e59

Please sign in to comment.