diff --git a/users/urls.py b/users/urls.py index 8db44ee..7d645bc 100644 --- a/users/urls.py +++ b/users/urls.py @@ -9,6 +9,7 @@ UserCreateView, UserUpdatePasswordView, UserUpdateView, + ListUserFilesAPIView ) urlpatterns = [ @@ -17,6 +18,7 @@ path("logout/", LogoutView.as_view(), name="logout"), path("edit/", UserUpdateView.as_view(), name="edit"), path("edit_password/", UserUpdatePasswordView.as_view(), name="edit_password"), + path("listuserfiles/", ListUserFilesAPIView.as_view(), name="list_user_files"), path("departments/", DepartmentListView.as_view(), name="departments"), path("positions/", PositionListView.as_view(), name="positions"), path("registration/", UserCreateView.as_view(), name="registration"), diff --git a/users/views.py b/users/views.py index de2b530..e873b81 100644 --- a/users/views.py +++ b/users/views.py @@ -1,3 +1,5 @@ +import os.path + from django.dispatch import receiver from django_rest_passwordreset.signals import reset_password_token_created from rest_framework import generics, status @@ -70,6 +72,30 @@ class UserUpdatePasswordView(UserRelatedView): serializer_class = UserUpdatePasswordSerializer +# Отображение списка документов пользователя +class ListUserFilesAPIView(APIView): + permission_classes = (IsAuthenticated,) + + def get(self, request, *args, **kwargs): + user_folder = os.path.join("makedoc", "tempdoc", str(request.user.id)) + + if not os.path.exists(user_folder): + return Response({"error": "User folder not found"}, status=status.HTTP_404_NOT_FOUND) + + try: + files = os.listdir(user_folder) + except OSError as e: + return Response({"error": str(e)}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) + + files_list = [] + for file_name in files: + file_path = os.path.join(user_folder, file_name) + if os.path.isfile(file_path): + files_list.append(file_name) + + return Response({"files": files_list}, status=status.HTTP_200_OK) + + # Сброс пароля @receiver(reset_password_token_created) def password_reset_token_created(sender, instance, reset_password_token, *args, **kwargs):