diff --git a/core/apps/projects/serializers/project.py b/core/apps/projects/serializers/project.py index e9a7c82..e6b36f6 100644 --- a/core/apps/projects/serializers/project.py +++ b/core/apps/projects/serializers/project.py @@ -137,4 +137,22 @@ class ProjectFolderDetailSerializer(serializers.ModelSerializer): ] def get_projects_count(self, obj): - return obj.projects.count() \ No newline at end of file + return obj.projects.count() + + +class ChangeProjectFolderSerializer(serializers.Serializer): + project_id = serializers.UUIDField() + project_folder_id = serializers.UUIDField() + + def validate(self, data): + project = Project.objects.filter(id=data['project_id']).first() + if not project: + raise serializers.ValidationError("Project not found") + project_folder = ProjectFolder.objects.filter(id=data['project_folder_id']).first() + if not project_folder: + raise serializers.ValidationError("Project Folder not found") + if project.folder == project_folder: + raise serializers.ValidationError("the project folder is attached for this project") + data['project'] = project + data['project_folder'] = project_folder + return data \ No newline at end of file diff --git a/core/apps/projects/urls.py b/core/apps/projects/urls.py index 0530e5f..7fe0bf7 100644 --- a/core/apps/projects/urls.py +++ b/core/apps/projects/urls.py @@ -11,6 +11,7 @@ urlpatterns = [ path('create/', project_views.ProjectCreateApiView.as_view()), path('/update/', project_views.ProjectUpdateApiView.as_view()), path('/delete/', project_views.ProjectDeleteApiView.as_view()), + path('change_folder/', project_views.ChangeProjectFolderApiView.as_view()), ] )), path('project_folder/', include( diff --git a/core/apps/projects/views/project.py b/core/apps/projects/views/project.py index e1201f1..3a57c99 100644 --- a/core/apps/projects/views/project.py +++ b/core/apps/projects/views/project.py @@ -107,4 +107,24 @@ class ProjectFolderDeleteApiView(views.APIView): def delete(self, request, id): folder = get_object_or_404(ProjectFolder, id=id) folder.delete() - return Response({"success": True, "message": 'deleted!'}, status=204) \ No newline at end of file + return Response({"success": True, "message": 'deleted!'}, status=204) + + +class ChangeProjectFolderApiView(generics.GenericAPIView): + serializer_class = serializers.ChangeProjectFolderSerializer + queryset = Project.objects.all() + + def post(self, request): + serializer = self.serializer_class(data=request.data) + if serializer.is_valid(): + project = serializer.validated_data.get('project') + folder = serializer.validated_data.get('project_folder') + project.folder = folder + project.save() + return Response( + {'success': True, 'message': 'Project Folder changed!'}, + status=200 + ) + return Response( + {'success': False, 'message': serializer.errors}, status=400 + ) \ No newline at end of file diff --git a/resources/logs/django.log.2025-08-06 b/resources/logs/django.log.2025-08-06 new file mode 100644 index 0000000..951628a --- /dev/null +++ b/resources/logs/django.log.2025-08-06 @@ -0,0 +1,476 @@ +WARNING 2025-08-06 13:53:34,415 log Forbidden: /swagger/ +WARNING 2025-08-06 13:53:35,375 log Forbidden: /swagger/ +WARNING 2025-08-06 13:53:35,490 log Not Found: /favicon.ico +WARNING 2025-08-06 13:53:37,037 log Forbidden: /swagger/ +WARNING 2025-08-06 13:53:52,107 log Forbidden: /swagger/ +WARNING 2025-08-06 13:53:52,970 log Forbidden: /swagger/ +WARNING 2025-08-06 13:53:53,576 log Forbidden: /swagger/ +WARNING 2025-08-06 13:53:54,141 log Forbidden: /swagger/ +WARNING 2025-08-06 13:53:54,340 log Forbidden: /swagger/ +WARNING 2025-08-06 13:53:54,525 log Forbidden: /swagger/ +WARNING 2025-08-06 13:53:54,703 log Forbidden: /swagger/ +WARNING 2025-08-06 13:53:54,872 log Forbidden: /swagger/ +WARNING 2025-08-06 13:53:55,036 log Forbidden: /swagger/ +WARNING 2025-08-06 13:54:00,921 log Forbidden: /swagger/ +ERROR 2025-08-06 13:54:17,281 log Internal Server Error: /api/v1/accounts/auth/login/ +Traceback (most recent call last): + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler + raise exc_info[1] + File "/usr/local/lib/python3.12/site-packages/django/core/handlers/exception.py", line 42, in inner + response = await get_response(request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler + raise exc_info[1] + File "/usr/local/lib/python3.12/site-packages/django/core/handlers/base.py", line 253, in _get_response_async + response = await wrapped_callback( + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 439, in __call__ + ret = await asyncio.shield(exec_coro) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 59, in run + result = self.fn(*self.args, **self.kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 493, in thread_handler + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/views/decorators/csrf.py", line 65, in _view_wrapper + return view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/views/generic/base.py", line 105, in view + return self.dispatch(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 515, in dispatch + response = self.handle_exception(exc) + ^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 475, in handle_exception + self.raise_uncaught_exception(exc) + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 486, in raise_uncaught_exception + raise exc + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 512, in dispatch + response = handler(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/code/core/apps/accounts/views/login.py", line 21, in post + 'role': user.role.name, + ^^^^^^^^^^^^^^ +AttributeError: 'NoneType' object has no attribute 'name' +ERROR 2025-08-06 13:54:59,401 log Internal Server Error: /api/v1/accounts/auth/login/ +Traceback (most recent call last): + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler + raise exc_info[1] + File "/usr/local/lib/python3.12/site-packages/django/core/handlers/exception.py", line 42, in inner + response = await get_response(request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler + raise exc_info[1] + File "/usr/local/lib/python3.12/site-packages/django/core/handlers/base.py", line 253, in _get_response_async + response = await wrapped_callback( + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 439, in __call__ + ret = await asyncio.shield(exec_coro) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 59, in run + result = self.fn(*self.args, **self.kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 493, in thread_handler + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/views/decorators/csrf.py", line 65, in _view_wrapper + return view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/views/generic/base.py", line 105, in view + return self.dispatch(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 515, in dispatch + response = self.handle_exception(exc) + ^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 475, in handle_exception + self.raise_uncaught_exception(exc) + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 486, in raise_uncaught_exception + raise exc + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 512, in dispatch + response = handler(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/code/core/apps/accounts/views/login.py", line 22, in post + 'permissions': user.role.permissions.values_list('code', flat=True), + ^^^^^^^^^^^^^^^^^^^^^ +AttributeError: 'NoneType' object has no attribute 'permissions' +WARNING 2025-08-06 13:55:28,281 log Forbidden: /api/v1/accounts/user/profile/ +WARNING 2025-08-06 13:55:55,325 log Forbidden: /api/v1/accounts/user/profile/ +WARNING 2025-08-06 13:55:56,107 log Forbidden: /api/v1/accounts/user/profile/ +WARNING 2025-08-06 13:56:17,034 log Forbidden: /api/v1/accounts/user/profile/ +WARNING 2025-08-06 13:56:38,553 log Forbidden: /api/v1/accounts/user/profile/ +WARNING 2025-08-06 13:56:39,250 log Forbidden: /api/v1/accounts/user/profile/ +WARNING 2025-08-06 13:56:39,957 log Forbidden: /api/v1/accounts/user/profile/ +WARNING 2025-08-06 13:56:53,859 log Forbidden: /api/v1/accounts/user/profile/ +WARNING 2025-08-06 13:56:54,573 log Forbidden: /api/v1/accounts/user/profile/ +WARNING 2025-08-06 13:56:54,890 log Forbidden: /api/v1/accounts/user/profile/ +WARNING 2025-08-06 13:56:55,082 log Forbidden: /api/v1/accounts/user/profile/ +WARNING 2025-08-06 13:56:55,248 log Forbidden: /api/v1/accounts/user/profile/ +WARNING 2025-08-06 13:56:55,455 log Forbidden: /api/v1/accounts/user/profile/ +WARNING 2025-08-06 13:56:56,637 log Forbidden: /api/v1/accounts/user/profile/ +WARNING 2025-08-06 13:57:07,161 log Forbidden: /api/v1/accounts/user/profile/ +WARNING 2025-08-06 13:57:18,692 log Forbidden: /api/v1/accounts/user/profile/ +WARNING 2025-08-06 13:59:19,740 log Unauthorized: /api/v1/accounts/user/profile/ +WARNING 2025-08-06 13:59:20,748 log Unauthorized: /api/v1/accounts/user/profile/ +WARNING 2025-08-06 14:35:29,759 log Forbidden (Origin checking failed - http://localhost:8001 does not match any trusted origins.): /admin/login/ +WARNING 2025-08-06 14:35:29,886 log Not Found: /favicon.ico +WARNING 2025-08-06 14:35:32,731 log Forbidden (Origin checking failed - http://localhost:8001 does not match any trusted origins.): /admin/login/ +WARNING 2025-08-06 14:59:28,476 log Unauthorized: /api/v1/accounts/user/profile/ +WARNING 2025-08-06 15:21:23,312 log Unauthorized: /api/v1/accounts/role/list/ +WARNING 2025-08-06 15:21:51,454 log Unauthorized: /api/v1/accounts/role/list/ +WARNING 2025-08-06 15:22:15,049 log Forbidden: /api/v1/accounts/role/list/ +WARNING 2025-08-06 15:22:17,204 log Forbidden: /api/v1/accounts/role/list/ +WARNING 2025-08-06 15:22:17,665 log Forbidden: /api/v1/accounts/role/list/ +WARNING 2025-08-06 15:22:17,812 log Forbidden: /api/v1/accounts/role/list/ +WARNING 2025-08-06 15:22:17,975 log Forbidden: /api/v1/accounts/role/list/ +WARNING 2025-08-06 15:22:18,145 log Forbidden: /api/v1/accounts/role/list/ +WARNING 2025-08-06 15:22:18,294 log Forbidden: /api/v1/accounts/role/list/ +WARNING 2025-08-06 15:22:18,442 log Forbidden: /api/v1/accounts/role/list/ +WARNING 2025-08-06 15:22:18,585 log Forbidden: /api/v1/accounts/role/list/ +WARNING 2025-08-06 15:22:38,868 log Forbidden: /api/v1/accounts/role/list/ +WARNING 2025-08-06 15:23:44,301 log Bad Request: /api/v1/accounts/user/create/ +WARNING 2025-08-06 15:25:28,717 log Bad Request: /api/v1/accounts/user/create/ +WARNING 2025-08-06 15:25:42,545 log Bad Request: /api/v1/accounts/user/create/ +ERROR 2025-08-06 15:26:11,525 log Internal Server Error: /api/v1/accounts/user/create/ +Traceback (most recent call last): + File "/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py", line 105, in _execute + return self.cursor.execute(sql, params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +psycopg2.errors.UniqueViolation: duplicate key value violates unique constraint "accounts_user_username_key" +DETAIL: Key (username)=(behruz-dev) already exists. + + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler + raise exc_info[1] + File "/usr/local/lib/python3.12/site-packages/django/core/handlers/exception.py", line 42, in inner + response = await get_response(request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler + raise exc_info[1] + File "/usr/local/lib/python3.12/site-packages/django/core/handlers/base.py", line 253, in _get_response_async + response = await wrapped_callback( + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 439, in __call__ + ret = await asyncio.shield(exec_coro) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 59, in run + result = self.fn(*self.args, **self.kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 493, in thread_handler + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/views/decorators/csrf.py", line 65, in _view_wrapper + return view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/views/generic/base.py", line 105, in view + return self.dispatch(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 515, in dispatch + response = self.handle_exception(exc) + ^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 475, in handle_exception + self.raise_uncaught_exception(exc) + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 486, in raise_uncaught_exception + raise exc + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 512, in dispatch + response = handler(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/code/core/apps/accounts/views/user.py", line 64, in post + serializer.save() + File "/usr/local/lib/python3.12/site-packages/rest_framework/serializers.py", line 210, in save + self.instance = self.create(validated_data) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/code/core/apps/accounts/serializers/user.py", line 53, in create + user = User.objects.create( + ^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method + return getattr(self.get_queryset(), name)(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/db/models/query.py", line 663, in create + obj.save(force_insert=True, using=self.db) + File "/usr/local/lib/python3.12/site-packages/django/contrib/auth/base_user.py", line 65, in save + super().save(*args, **kwargs) + File "/usr/local/lib/python3.12/site-packages/django/db/models/base.py", line 902, in save + self.save_base( + File "/usr/local/lib/python3.12/site-packages/django/db/models/base.py", line 1008, in save_base + updated = self._save_table( + ^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/db/models/base.py", line 1169, in _save_table + results = self._do_insert( + ^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/db/models/base.py", line 1210, in _do_insert + return manager._insert( + ^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method + return getattr(self.get_queryset(), name)(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/db/models/query.py", line 1868, in _insert + return query.get_compiler(using=using).execute_sql(returning_fields) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/db/models/sql/compiler.py", line 1882, in execute_sql + cursor.execute(sql, params) + File "/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py", line 122, in execute + return super().execute(sql, params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/cacheops/transaction.py", line 98, in execute + result = self._no_monkey.execute(self, sql, params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py", line 79, in execute + return self._execute_with_wrappers( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py", line 92, in _execute_with_wrappers + return executor(sql, params, many, context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py", line 100, in _execute + with self.db.wrap_database_errors: + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/db/utils.py", line 91, in __exit__ + raise dj_exc_value.with_traceback(traceback) from exc_value + File "/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py", line 105, in _execute + return self.cursor.execute(sql, params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +django.db.utils.IntegrityError: duplicate key value violates unique constraint "accounts_user_username_key" +DETAIL: Key (username)=(behruz-dev) already exists. + +WARNING 2025-08-06 15:26:54,364 log Bad Request: /api/v1/accounts/user/create/ +WARNING 2025-08-06 15:26:55,258 log Bad Request: /api/v1/accounts/user/create/ +WARNING 2025-08-06 16:29:39,278 log Unauthorized: /api/v1/accounts/permission/list/ +WARNING 2025-08-06 16:30:00,966 log Unauthorized: /api/v1/accounts/permission/list/ +ERROR 2025-08-06 16:38:41,912 log Internal Server Error: /api/v1/accounts/user/permissions/ +Traceback (most recent call last): + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler + raise exc_info[1] + File "/usr/local/lib/python3.12/site-packages/django/core/handlers/exception.py", line 42, in inner + response = await get_response(request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler + raise exc_info[1] + File "/usr/local/lib/python3.12/site-packages/django/core/handlers/base.py", line 253, in _get_response_async + response = await wrapped_callback( + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 439, in __call__ + ret = await asyncio.shield(exec_coro) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 59, in run + result = self.fn(*self.args, **self.kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 493, in thread_handler + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/views/decorators/csrf.py", line 65, in _view_wrapper + return view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/views/generic/base.py", line 105, in view + return self.dispatch(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 515, in dispatch + response = self.handle_exception(exc) + ^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 475, in handle_exception + self.raise_uncaught_exception(exc) + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 486, in raise_uncaught_exception + raise exc + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 512, in dispatch + response = handler(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/code/core/apps/accounts/views/user.py", line 107, in get + permissions = request.user.role.permission + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +AttributeError: 'Role' object has no attribute 'permission'. Did you mean: 'permissions'? +ERROR 2025-08-06 16:38:43,419 log Internal Server Error: /api/v1/accounts/user/permissions/ +Traceback (most recent call last): + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler + raise exc_info[1] + File "/usr/local/lib/python3.12/site-packages/django/core/handlers/exception.py", line 42, in inner + response = await get_response(request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler + raise exc_info[1] + File "/usr/local/lib/python3.12/site-packages/django/core/handlers/base.py", line 253, in _get_response_async + response = await wrapped_callback( + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 439, in __call__ + ret = await asyncio.shield(exec_coro) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 59, in run + result = self.fn(*self.args, **self.kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 493, in thread_handler + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/views/decorators/csrf.py", line 65, in _view_wrapper + return view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/views/generic/base.py", line 105, in view + return self.dispatch(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 515, in dispatch + response = self.handle_exception(exc) + ^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 475, in handle_exception + self.raise_uncaught_exception(exc) + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 486, in raise_uncaught_exception + raise exc + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 512, in dispatch + response = handler(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/code/core/apps/accounts/views/user.py", line 107, in get + permissions = request.user.role.permission + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +AttributeError: 'Role' object has no attribute 'permission'. Did you mean: 'permissions'? +ERROR 2025-08-06 16:40:23,199 log Internal Server Error: /api/v1/accounts/user/permissions/ +Traceback (most recent call last): + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler + raise exc_info[1] + File "/usr/local/lib/python3.12/site-packages/django/core/handlers/exception.py", line 42, in inner + response = await get_response(request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler + raise exc_info[1] + File "/usr/local/lib/python3.12/site-packages/django/core/handlers/base.py", line 253, in _get_response_async + response = await wrapped_callback( + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 439, in __call__ + ret = await asyncio.shield(exec_coro) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 59, in run + result = self.fn(*self.args, **self.kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 493, in thread_handler + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/views/decorators/csrf.py", line 65, in _view_wrapper + return view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/views/generic/base.py", line 105, in view + return self.dispatch(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 515, in dispatch + response = self.handle_exception(exc) + ^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 475, in handle_exception + self.raise_uncaught_exception(exc) + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 486, in raise_uncaught_exception + raise exc + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 512, in dispatch + response = handler(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/code/core/apps/accounts/views/user.py", line 108, in get + permission = Permission.objects.filter(roles=request.user) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method + return getattr(self.get_queryset(), name)(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/db/models/query.py", line 1493, in filter + return self._filter_or_exclude(False, args, kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/db/models/query.py", line 1511, in _filter_or_exclude + clone._filter_or_exclude_inplace(negate, args, kwargs) + File "/usr/local/lib/python3.12/site-packages/django/db/models/query.py", line 1518, in _filter_or_exclude_inplace + self._query.add_q(Q(*args, **kwargs)) + File "/usr/local/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q + clause, _ = self._add_q(q_object, can_reuse) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q + child_clause, needed_inner = self.build_filter( + ^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1563, in build_filter + self.check_related_objects(join_info.final_field, value, join_info.opts) + File "/usr/local/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1372, in check_related_objects + self.check_query_object_type(value, opts, field) + File "/usr/local/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1349, in check_query_object_type + raise ValueError( +ValueError: Cannot query "admin": Must be "Role" instance. +ERROR 2025-08-06 16:40:34,000 log Internal Server Error: /api/v1/accounts/user/permissions/ +Traceback (most recent call last): + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler + raise exc_info[1] + File "/usr/local/lib/python3.12/site-packages/django/core/handlers/exception.py", line 42, in inner + response = await get_response(request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler + raise exc_info[1] + File "/usr/local/lib/python3.12/site-packages/django/core/handlers/base.py", line 253, in _get_response_async + response = await wrapped_callback( + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 439, in __call__ + ret = await asyncio.shield(exec_coro) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 59, in run + result = self.fn(*self.args, **self.kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 493, in thread_handler + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/views/decorators/csrf.py", line 65, in _view_wrapper + return view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/views/generic/base.py", line 105, in view + return self.dispatch(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 515, in dispatch + response = self.handle_exception(exc) + ^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 475, in handle_exception + self.raise_uncaught_exception(exc) + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 486, in raise_uncaught_exception + raise exc + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 512, in dispatch + response = handler(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/code/core/apps/accounts/views/user.py", line 108, in get + permission = Permission.objects.filter(roles=request.user.rol) + ^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/utils/functional.py", line 253, in inner + return func(_wrapped, *args) + ^^^^^^^^^^^^^^^^^^^^^ +AttributeError: 'User' object has no attribute 'rol'. Did you mean: 'role'? +ERROR 2025-08-06 16:40:35,208 log Internal Server Error: /api/v1/accounts/user/permissions/ +Traceback (most recent call last): + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler + raise exc_info[1] + File "/usr/local/lib/python3.12/site-packages/django/core/handlers/exception.py", line 42, in inner + response = await get_response(request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler + raise exc_info[1] + File "/usr/local/lib/python3.12/site-packages/django/core/handlers/base.py", line 253, in _get_response_async + response = await wrapped_callback( + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 439, in __call__ + ret = await asyncio.shield(exec_coro) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 59, in run + result = self.fn(*self.args, **self.kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 493, in thread_handler + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/views/decorators/csrf.py", line 65, in _view_wrapper + return view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/views/generic/base.py", line 105, in view + return self.dispatch(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 515, in dispatch + response = self.handle_exception(exc) + ^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 475, in handle_exception + self.raise_uncaught_exception(exc) + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 486, in raise_uncaught_exception + raise exc + File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 512, in dispatch + response = handler(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/code/core/apps/accounts/views/user.py", line 108, in get + permission = Permission.objects.filter(roles=request.user.rol) + ^^^^^^^^^^^^^^^^ + File "/usr/local/lib/python3.12/site-packages/django/utils/functional.py", line 253, in inner + return func(_wrapped, *args) + ^^^^^^^^^^^^^^^^^^^^^ +AttributeError: 'User' object has no attribute 'rol'. Did you mean: 'role'? +WARNING 2025-08-06 17:26:00,186 log Forbidden: /api/v1/accounts/permission/list/ +WARNING 2025-08-06 17:26:42,953 log Forbidden: /api/v1/accounts/permission/list/