ssh key등록 및 수정 기능 개선
All checks were successful
Build And Test / build-and-push (push) Successful in 2m46s
All checks were successful
Build And Test / build-and-push (push) Successful in 2m46s
This commit is contained in:
@ -1,5 +1,5 @@
|
|||||||
from django.urls import path
|
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
|
from rest_framework_simplejwt.views import TokenObtainPairView, TokenRefreshView, TokenVerifyView
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
@ -10,4 +10,5 @@ urlpatterns = [
|
|||||||
path('verify/', TokenVerifyView.as_view(), name='token_verify'),
|
path('verify/', TokenVerifyView.as_view(), name='token_verify'),
|
||||||
path('me/', MeView.as_view(), name='me'),
|
path('me/', MeView.as_view(), name='me'),
|
||||||
path("ssh-key/", SSHKeyUploadView.as_view(), name="ssh_key_upload"),
|
path("ssh-key/", SSHKeyUploadView.as_view(), name="ssh_key_upload"),
|
||||||
|
path("ssh-key/info/", SSHKeyInfoView.as_view(), name="ssh_key_info"),
|
||||||
]
|
]
|
||||||
|
@ -54,3 +54,22 @@ class SSHKeyUploadView(APIView):
|
|||||||
return Response({"message": "SSH key 저장 완료."})
|
return Response({"message": "SSH key 저장 완료."})
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return Response({"error": str(e)}, status=500)
|
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
|
||||||
|
})
|
Reference in New Issue
Block a user