diff --git a/users/urls.py b/users/urls.py index 14a140e..546fb9f 100644 --- a/users/urls.py +++ b/users/urls.py @@ -1,5 +1,5 @@ from django.urls import path -from .views import RegisterView, MeView, CustomTokenObtainPairView, SSHKeyUploadView +from .views import RegisterView, MeView, CustomTokenObtainPairView, SSHKeyUploadView, SSHKeyInfoView from rest_framework_simplejwt.views import TokenObtainPairView, TokenRefreshView, TokenVerifyView urlpatterns = [ @@ -10,4 +10,5 @@ urlpatterns = [ path('verify/', TokenVerifyView.as_view(), name='token_verify'), path('me/', MeView.as_view(), name='me'), path("ssh-key/", SSHKeyUploadView.as_view(), name="ssh_key_upload"), + path("ssh-key/info/", SSHKeyInfoView.as_view(), name="ssh_key_info"), ] diff --git a/users/views.py b/users/views.py index 814aa3f..6c9c511 100644 --- a/users/views.py +++ b/users/views.py @@ -53,4 +53,23 @@ class SSHKeyUploadView(APIView): user.save(update_fields=["encrypted_private_key", "encrypted_private_key_name"]) return Response({"message": "SSH key 저장 완료."}) except Exception as e: - return Response({"error": str(e)}, status=500) \ No newline at end of file + return Response({"error": str(e)}, status=500) + + def delete(self, request): + user = request.user + user.encrypted_private_key = None + user.encrypted_private_key_name = None + user.last_used_at = None + user.save(update_fields=["encrypted_private_key", "encrypted_private_key_name", "last_used_at"]) + return Response({"message": "SSH key deleted."}, status=200) + +class SSHKeyInfoView(APIView): + permission_classes = [IsAuthenticated] + + def get(self, request): + user = request.user + return Response({ + "has_key": bool(user.encrypted_private_key), + "encrypted_private_key_name": user.encrypted_private_key_name, + "last_used_at": user.last_used_at + }) \ No newline at end of file diff --git a/version b/version index 429d94a..18f9b2a 100644 --- a/version +++ b/version @@ -1 +1 @@ -0.0.9 \ No newline at end of file +0.0.9-r1 \ No newline at end of file