diff --git a/apps/users/migrations/0003_user_source.py b/apps/users/migrations/0003_user_source.py new file mode 100644 index 000000000..7292cc1b5 --- /dev/null +++ b/apps/users/migrations/0003_user_source.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.13 on 2024-07-11 19:16 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('users', '0002_user_create_time_user_update_time'), + ] + + operations = [ + migrations.AddField( + model_name='user', + name='source', + field=models.CharField(default='LOCAL', max_length=10, verbose_name='来源'), + ), + ] diff --git a/ui/src/api/auth-setting.ts b/ui/src/api/auth-setting.ts new file mode 100644 index 000000000..2c694620e --- /dev/null +++ b/ui/src/api/auth-setting.ts @@ -0,0 +1,39 @@ +import {Result} from '@/request/Result' +import {get, post, del, put} from '@/request/index' +import type {pageRequest} from '@/api/type/common' +import {type Ref} from 'vue' + +const prefix = '/auth' +/** + * 获取认证设置 + */ +const getAuthSetting: (auth_type: string, loading?: Ref) => Promise> = (auth_type, loading) => { + return get(`${prefix}/${auth_type}/info`, undefined, loading) +} + +/** + * 邮箱测试 + */ +const postAuthSetting: (data: any, loading?: Ref) => Promise> = ( + data, + loading +) => { + return post(`${prefix}/connection`, data, undefined, loading) +} + +/** + * 修改邮箱设置 + */ +const putAuthSetting: (auth_type: string, data: any, loading?: Ref) => Promise> = ( + auth_type, + data, + loading +) => { + return put(`${prefix}/${auth_type}/info`, data, undefined, loading) +} + +export default { + getAuthSetting, + postAuthSetting, + putAuthSetting +} diff --git a/ui/src/api/user.ts b/ui/src/api/user.ts index c345c3381..558c781a8 100644 --- a/ui/src/api/user.ts +++ b/ui/src/api/user.ts @@ -1,26 +1,31 @@ -import { Result } from '@/request/Result' -import { get, post } from '@/request/index' +import {Result} from '@/request/Result' +import {get, post} from '@/request/index' import type { - LoginRequest, - RegisterRequest, - CheckCodeRequest, - ResetPasswordRequest, - User, - ResetCurrentUserPasswordRequest + LoginRequest, + RegisterRequest, + CheckCodeRequest, + ResetPasswordRequest, + User, + ResetCurrentUserPasswordRequest } from '@/api/type/user' -import type { Ref } from 'vue' +import type {Ref} from 'vue' /** * 登录 + * @param auth_type * @param request 登录接口请求表单 * @param loading 接口加载器 * @returns 认证数据 */ -const login: (request: LoginRequest, loading?: Ref) => Promise> = ( - request, - loading +const login: (auth_type: string, request: LoginRequest, loading?: Ref) => Promise> = ( + auth_type, + request, + loading ) => { - return post('/user/login', request, undefined, loading) + if (auth_type !== '') { + return post(`/${auth_type}/login`, request, undefined, loading) + } + return post('/user/login', request, undefined, loading) } /** * 登出 @@ -28,7 +33,7 @@ const login: (request: LoginRequest, loading?: Ref) => Promise) => Promise> = (loading) => { - return post('/user/logout', undefined, undefined, loading) + return post('/user/logout', undefined, undefined, loading) } /** @@ -38,10 +43,10 @@ const logout: (loading?: Ref) => Promise> = (loading) = * @returns */ const register: (request: RegisterRequest, loading?: Ref) => Promise> = ( - request, - loading + request, + loading ) => { - return post('/user/register', request, undefined, loading) + return post('/user/register', request, undefined, loading) } /** @@ -51,10 +56,10 @@ const register: (request: RegisterRequest, loading?: Ref) => Promise) => Promise> = ( - request, - loading + request, + loading ) => { - return post('/user/check_code', request, undefined, loading) + return post('/user/check_code', request, undefined, loading) } /** @@ -64,11 +69,11 @@ const checkCode: (request: CheckCodeRequest, loading?: Ref) => Promise< * @returns */ const sendEmit: ( - email: string, - type: 'register' | 'reset_password', - loading?: Ref + email: string, + type: 'register' | 'reset_password', + loading?: Ref ) => Promise> = (email, type, loading) => { - return post('/user/send_email', { email, type }, undefined, loading) + return post('/user/send_email', {email, type}, undefined, loading) } /** * 发送邮件到当前用户 @@ -76,7 +81,7 @@ const sendEmit: ( * @returns */ const sendEmailToCurrent: (loading?: Ref) => Promise> = (loading) => { - return post('/user/current/send_email', undefined, undefined, loading) + return post('/user/current/send_email', undefined, undefined, loading) } /** * 修改当前用户密码 @@ -85,10 +90,10 @@ const sendEmailToCurrent: (loading?: Ref) => Promise> = * @returns */ const resetCurrentUserPassword: ( - request: ResetCurrentUserPasswordRequest, - loading?: Ref + request: ResetCurrentUserPasswordRequest, + loading?: Ref ) => Promise> = (request, loading) => { - return post('/user/current/reset_password', request, undefined, loading) + return post('/user/current/reset_password', request, undefined, loading) } /** * 获取用户基本信息 @@ -96,7 +101,7 @@ const resetCurrentUserPassword: ( * @returns 用户基本信息 */ const profile: (loading?: Ref) => Promise> = (loading) => { - return get('/user', undefined, loading) + return get('/user', undefined, loading) } /** @@ -106,10 +111,10 @@ const profile: (loading?: Ref) => Promise> = (loading) => * @returns */ const resetPassword: ( - request: ResetPasswordRequest, - loading?: Ref + request: ResetPasswordRequest, + loading?: Ref ) => Promise> = (request, loading) => { - return post('/user/re_password', request, undefined, loading) + return post('/user/re_password', request, undefined, loading) } /** @@ -118,17 +123,17 @@ const resetPassword: ( * email_or_username */ const getUserList: (email_or_username: string, loading?: Ref) => Promise> = ( - email_or_username, - loading + email_or_username, + loading ) => { - return get('/user/list', { email_or_username }, loading) + return get('/user/list', {email_or_username}, loading) } /** * 获取profile */ const getProfile: (loading?: Ref) => Promise> = (loading) => { - return get('/profile', undefined, loading) + return get('/profile', undefined, loading) } /** @@ -137,24 +142,31 @@ const getProfile: (loading?: Ref) => Promise> = (loading) = * @param valid_count 校验数量: 5 | 50 | 2 */ const getValid: ( - valid_type: string, - valid_count: number, - loading?: Ref + valid_type: string, + valid_count: number, + loading?: Ref ) => Promise> = (valid_type, valid_count, loading) => { - return get(`/valid/${valid_type}/${valid_count}`, undefined, loading) + return get(`/valid/${valid_type}/${valid_count}`, undefined, loading) +} +/** + * 获取登录方式 + */ +const getAuthType: (loading?: Ref) => Promise> = (loading) => { + return get('auth/types', undefined, loading) } export default { - login, - register, - sendEmit, - checkCode, - profile, - resetPassword, - sendEmailToCurrent, - resetCurrentUserPassword, - logout, - getUserList, - getProfile, - getValid + login, + register, + sendEmit, + checkCode, + profile, + resetPassword, + sendEmailToCurrent, + resetCurrentUserPassword, + logout, + getUserList, + getProfile, + getValid, + getAuthType } diff --git a/ui/src/layout/components/top-bar/avatar/index.vue b/ui/src/layout/components/top-bar/avatar/index.vue index a589cc238..dd7b65eb7 100644 --- a/ui/src/layout/components/top-bar/avatar/index.vue +++ b/ui/src/layout/components/top-bar/avatar/index.vue @@ -2,11 +2,11 @@
- + {{ user.userInfo?.username }} - +
@@ -23,7 +23,7 @@ {{ $t('layout.topbar.avatar.resetPassword') }} -
+
{{ $t('layout.topbar.avatar.apiKey') }} @@ -39,19 +39,20 @@ - - + +