diff --git a/apps/locales/en_US/LC_MESSAGES/django.po b/apps/locales/en_US/LC_MESSAGES/django.po index 88553209e..4cf0a5689 100644 --- a/apps/locales/en_US/LC_MESSAGES/django.po +++ b/apps/locales/en_US/LC_MESSAGES/django.po @@ -3311,3 +3311,6 @@ msgstr "" #: apps/users/views/user.py:139 msgid "Get user paginated list" msgstr "" + +msgid "Get default password" +msgstr "" diff --git a/apps/locales/zh_CN/LC_MESSAGES/django.po b/apps/locales/zh_CN/LC_MESSAGES/django.po index 07b573633..255573239 100644 --- a/apps/locales/zh_CN/LC_MESSAGES/django.po +++ b/apps/locales/zh_CN/LC_MESSAGES/django.po @@ -3489,3 +3489,5 @@ msgstr "修改密码" msgid "Get user paginated list" msgstr "获取用户分页列表" +msgid "Get default password" +msgstr "获取默认密码" \ No newline at end of file diff --git a/apps/locales/zh_Hant/LC_MESSAGES/django.po b/apps/locales/zh_Hant/LC_MESSAGES/django.po index b829f2946..6aebeed8a 100644 --- a/apps/locales/zh_Hant/LC_MESSAGES/django.po +++ b/apps/locales/zh_Hant/LC_MESSAGES/django.po @@ -3489,3 +3489,6 @@ msgstr "修改密碼" msgid "Get user paginated list" msgstr "獲取用戶分頁列表" +msgid "Get default password" +msgstr "獲取默認密碼" + diff --git a/apps/users/api/user.py b/apps/users/api/user.py index 8c7dcfa0f..eff9fe394 100644 --- a/apps/users/api/user.py +++ b/apps/users/api/user.py @@ -43,6 +43,22 @@ class UserProfileAPI(APIMixin): )] +class UserPasswordResponse(APIMixin): + + @staticmethod + def get_response(): + return PasswordResponse + + +class Password(serializers.Serializer): + password = serializers.CharField(required=True, label=_('Password')) + + +class PasswordResponse(ResultSerializer): + def get_data(self): + return Password() + + class EditUserApi(APIMixin): @staticmethod def get_parameters(): diff --git a/apps/users/urls.py b/apps/users/urls.py index 19f88bf15..b26b9c44f 100644 --- a/apps/users/urls.py +++ b/apps/users/urls.py @@ -11,6 +11,7 @@ urlpatterns = [ path('workspace//user/profile', views.TestWorkspacePermissionUserView.as_view(), name="test_workspace_id_permission"), path("user_manage", views.UserManage.as_view(), name="user_manage"), + path("user_manage/password", views.UserManage.Password.as_view()), path("user_manage/", views.UserManage.Operate.as_view(), name="user_manage_operate"), path("user_manage//re_password", views.UserManage.RePassword.as_view(), name="user_manage_re_password"), diff --git a/apps/users/views/user.py b/apps/users/views/user.py index 416bcaa38..d2cd7e6ef 100644 --- a/apps/users/views/user.py +++ b/apps/users/views/user.py @@ -15,11 +15,14 @@ from common.auth.authenticate import TokenAuth from common.auth.authentication import has_permissions from common.constants.permission_constants import PermissionConstants, Permission, Group, Operate from common.result import result +from maxkb.const import CONFIG from models_provider.api.model import DefaultModelResponse from users.api.user import UserProfileAPI, TestWorkspacePermissionUserApi, DeleteUserApi, EditUserApi, \ - ChangeUserPasswordApi, UserPageApi, UserListApi + ChangeUserPasswordApi, UserPageApi, UserListApi, UserPasswordResponse from users.serializers.user import UserProfileSerializer, UserManageSerializer +default_password = CONFIG.get('default_password', 'MaxKB@123..') + class UserProfileView(APIView): authentication_classes = [TokenAuth] @@ -77,6 +80,19 @@ class UserManage(APIView): def post(self, request: Request): return result.success(UserManageSerializer().save(request.data)) + class Password(APIView): + authentication_classes = [TokenAuth] + + @extend_schema(methods=['Get'], + summary=_("Get default password"), + description=_("Get default password"), + operation_id=_("Get default password"), # type: ignore + tags=[_("User management")], # type: ignore + responses=UserPasswordResponse.get_response()) + @has_permissions(PermissionConstants.USER_CREATE) + def get(self, request: Request): + return result.success(data={'password': default_password}) + class Operate(APIView): authentication_classes = [TokenAuth]