Skip to content
This repository was archived by the owner on Jan 21, 2024. It is now read-only.

Commit 6244e8b

Browse files
authored
refactor: request api of user data (#882)
#### What type of PR is this? /kind improvement #### What this PR does / why we need it: 重构获取用户信息的请求方式,无需再请求所有角色即可获取当前用户的角色信息,适配:halo-dev/halo#3372 相关 PR:#847 #### Which issue(s) this PR fixes: Fixes halo-dev/halo#3342 #### Special notes for your reviewer: 测试方式: 1. Halo 需要切换到 halo-dev/halo#3372 分支。 2. Console 需要 `pnpm install && pnpm build:packages` 3. 测试用户列表、登录、检查角色信息是否显示正确。 #### Does this PR introduce a user-facing change? ```release-note 优化 Console 端用户角色标识的显示名称。 ```
1 parent 66a626c commit 6244e8b

File tree

14 files changed

+370
-152
lines changed

14 files changed

+370
-152
lines changed

packages/api-client/src/.openapi-generator/FILES

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ models/counter-request.ts
7777
models/counter.ts
7878
models/custom-templates.ts
7979
models/dashboard-stats.ts
80+
models/detailed-user.ts
8081
models/excerpt.ts
8182
models/extension.ts
8283
models/file-reverse-proxy-provider.ts
@@ -96,6 +97,8 @@ models/listed-reply-list.ts
9697
models/listed-reply.ts
9798
models/listed-single-page-list.ts
9899
models/listed-single-page.ts
100+
models/listed-user-list.ts
101+
models/listed-user.ts
99102
models/login-history.ts
100103
models/menu-item-list.ts
101104
models/menu-item-spec.ts

packages/api-client/src/api/api-console-halo-run-v1alpha1-user-api.ts

Lines changed: 122 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,13 @@ import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } fr
3434
// @ts-ignore
3535
import { ChangePasswordRequest } from '../models'
3636
// @ts-ignore
37+
import { DetailedUser } from '../models'
38+
// @ts-ignore
3739
import { GrantRequest } from '../models'
3840
// @ts-ignore
39-
import { User } from '../models'
41+
import { ListedUserList } from '../models'
4042
// @ts-ignore
41-
import { UserList } from '../models'
43+
import { User } from '../models'
4244
// @ts-ignore
4345
import { UserPermission } from '../models'
4446
/**
@@ -174,6 +176,47 @@ export const ApiConsoleHaloRunV1alpha1UserApiAxiosParamCreator = function (confi
174176
options: localVarRequestOptions,
175177
}
176178
},
179+
/**
180+
* Get user detail by name
181+
* @param {string} name User name
182+
* @param {*} [options] Override http request option.
183+
* @throws {RequiredError}
184+
*/
185+
getUserDetail: async (name: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
186+
// verify required parameter 'name' is not null or undefined
187+
assertParamExists('getUserDetail', 'name', name)
188+
const localVarPath = `/apis/api.console.halo.run/v1alpha1/users/{name}`.replace(
189+
`{${'name'}}`,
190+
encodeURIComponent(String(name)),
191+
)
192+
// use dummy base URL string because the URL constructor only accepts absolute URLs.
193+
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL)
194+
let baseOptions
195+
if (configuration) {
196+
baseOptions = configuration.baseOptions
197+
}
198+
199+
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }
200+
const localVarHeaderParameter = {} as any
201+
const localVarQueryParameter = {} as any
202+
203+
// authentication BasicAuth required
204+
// http basic authentication required
205+
setBasicAuthToObject(localVarRequestOptions, configuration)
206+
207+
// authentication BearerAuth required
208+
// http bearer authentication required
209+
await setBearerAuthToObject(localVarHeaderParameter, configuration)
210+
211+
setSearchParams(localVarUrlObj, localVarQueryParameter)
212+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}
213+
localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }
214+
215+
return {
216+
url: toPathString(localVarUrlObj),
217+
options: localVarRequestOptions,
218+
}
219+
},
177220
/**
178221
* Grant permissions to user
179222
* @param {string} name User name
@@ -231,9 +274,9 @@ export const ApiConsoleHaloRunV1alpha1UserApiAxiosParamCreator = function (confi
231274
* @param {string} [keyword]
232275
* @param {string} [role]
233276
* @param {number} [size] Size of one page. Zero indicates no limit.
234-
* @param {number} [page] The page number. Zero indicates no page.
235277
* @param {Array<string>} [labelSelector] Label selector for filtering.
236278
* @param {Array<string>} [fieldSelector] Field selector for filtering.
279+
* @param {number} [page] The page number. Zero indicates no page.
237280
* @param {*} [options] Override http request option.
238281
* @throws {RequiredError}
239282
*/
@@ -242,9 +285,9 @@ export const ApiConsoleHaloRunV1alpha1UserApiAxiosParamCreator = function (confi
242285
keyword?: string,
243286
role?: string,
244287
size?: number,
245-
page?: number,
246288
labelSelector?: Array<string>,
247289
fieldSelector?: Array<string>,
290+
page?: number,
248291
options: AxiosRequestConfig = {},
249292
): Promise<RequestArgs> => {
250293
const localVarPath = `/apis/api.console.halo.run/v1alpha1/users`
@@ -283,10 +326,6 @@ export const ApiConsoleHaloRunV1alpha1UserApiAxiosParamCreator = function (confi
283326
localVarQueryParameter['size'] = size
284327
}
285328

286-
if (page !== undefined) {
287-
localVarQueryParameter['page'] = page
288-
}
289-
290329
if (labelSelector) {
291330
localVarQueryParameter['labelSelector'] = labelSelector
292331
}
@@ -295,6 +334,10 @@ export const ApiConsoleHaloRunV1alpha1UserApiAxiosParamCreator = function (confi
295334
localVarQueryParameter['fieldSelector'] = fieldSelector
296335
}
297336

337+
if (page !== undefined) {
338+
localVarQueryParameter['page'] = page
339+
}
340+
298341
setSearchParams(localVarUrlObj, localVarQueryParameter)
299342
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}
300343
localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }
@@ -377,7 +420,7 @@ export const ApiConsoleHaloRunV1alpha1UserApiFp = function (configuration?: Conf
377420
*/
378421
async getCurrentUserDetail(
379422
options?: AxiosRequestConfig,
380-
): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<User>> {
423+
): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<DetailedUser>> {
381424
const localVarAxiosArgs = await localVarAxiosParamCreator.getCurrentUserDetail(options)
382425
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)
383426
},
@@ -394,6 +437,19 @@ export const ApiConsoleHaloRunV1alpha1UserApiFp = function (configuration?: Conf
394437
const localVarAxiosArgs = await localVarAxiosParamCreator.getPermissions(name, options)
395438
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)
396439
},
440+
/**
441+
* Get user detail by name
442+
* @param {string} name User name
443+
* @param {*} [options] Override http request option.
444+
* @throws {RequiredError}
445+
*/
446+
async getUserDetail(
447+
name: string,
448+
options?: AxiosRequestConfig,
449+
): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<DetailedUser>> {
450+
const localVarAxiosArgs = await localVarAxiosParamCreator.getUserDetail(name, options)
451+
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)
452+
},
397453
/**
398454
* Grant permissions to user
399455
* @param {string} name User name
@@ -415,9 +471,9 @@ export const ApiConsoleHaloRunV1alpha1UserApiFp = function (configuration?: Conf
415471
* @param {string} [keyword]
416472
* @param {string} [role]
417473
* @param {number} [size] Size of one page. Zero indicates no limit.
418-
* @param {number} [page] The page number. Zero indicates no page.
419474
* @param {Array<string>} [labelSelector] Label selector for filtering.
420475
* @param {Array<string>} [fieldSelector] Field selector for filtering.
476+
* @param {number} [page] The page number. Zero indicates no page.
421477
* @param {*} [options] Override http request option.
422478
* @throws {RequiredError}
423479
*/
@@ -426,19 +482,19 @@ export const ApiConsoleHaloRunV1alpha1UserApiFp = function (configuration?: Conf
426482
keyword?: string,
427483
role?: string,
428484
size?: number,
429-
page?: number,
430485
labelSelector?: Array<string>,
431486
fieldSelector?: Array<string>,
487+
page?: number,
432488
options?: AxiosRequestConfig,
433-
): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<UserList>> {
489+
): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ListedUserList>> {
434490
const localVarAxiosArgs = await localVarAxiosParamCreator.listUsers(
435491
sort,
436492
keyword,
437493
role,
438494
size,
439-
page,
440495
labelSelector,
441496
fieldSelector,
497+
page,
442498
options,
443499
)
444500
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)
@@ -489,7 +545,7 @@ export const ApiConsoleHaloRunV1alpha1UserApiFactory = function (
489545
* @param {*} [options] Override http request option.
490546
* @throws {RequiredError}
491547
*/
492-
getCurrentUserDetail(options?: AxiosRequestConfig): AxiosPromise<User> {
548+
getCurrentUserDetail(options?: AxiosRequestConfig): AxiosPromise<DetailedUser> {
493549
return localVarFp.getCurrentUserDetail(options).then((request) => request(axios, basePath))
494550
},
495551
/**
@@ -504,6 +560,18 @@ export const ApiConsoleHaloRunV1alpha1UserApiFactory = function (
504560
): AxiosPromise<UserPermission> {
505561
return localVarFp.getPermissions(requestParameters.name, options).then((request) => request(axios, basePath))
506562
},
563+
/**
564+
* Get user detail by name
565+
* @param {ApiConsoleHaloRunV1alpha1UserApiGetUserDetailRequest} requestParameters Request parameters.
566+
* @param {*} [options] Override http request option.
567+
* @throws {RequiredError}
568+
*/
569+
getUserDetail(
570+
requestParameters: ApiConsoleHaloRunV1alpha1UserApiGetUserDetailRequest,
571+
options?: AxiosRequestConfig,
572+
): AxiosPromise<DetailedUser> {
573+
return localVarFp.getUserDetail(requestParameters.name, options).then((request) => request(axios, basePath))
574+
},
507575
/**
508576
* Grant permissions to user
509577
* @param {ApiConsoleHaloRunV1alpha1UserApiGrantPermissionRequest} requestParameters Request parameters.
@@ -527,16 +595,16 @@ export const ApiConsoleHaloRunV1alpha1UserApiFactory = function (
527595
listUsers(
528596
requestParameters: ApiConsoleHaloRunV1alpha1UserApiListUsersRequest = {},
529597
options?: AxiosRequestConfig,
530-
): AxiosPromise<UserList> {
598+
): AxiosPromise<ListedUserList> {
531599
return localVarFp
532600
.listUsers(
533601
requestParameters.sort,
534602
requestParameters.keyword,
535603
requestParameters.role,
536604
requestParameters.size,
537-
requestParameters.page,
538605
requestParameters.labelSelector,
539606
requestParameters.fieldSelector,
607+
requestParameters.page,
540608
options,
541609
)
542610
.then((request) => request(axios, basePath))
@@ -591,6 +659,20 @@ export interface ApiConsoleHaloRunV1alpha1UserApiGetPermissionsRequest {
591659
readonly name: string
592660
}
593661

662+
/**
663+
* Request parameters for getUserDetail operation in ApiConsoleHaloRunV1alpha1UserApi.
664+
* @export
665+
* @interface ApiConsoleHaloRunV1alpha1UserApiGetUserDetailRequest
666+
*/
667+
export interface ApiConsoleHaloRunV1alpha1UserApiGetUserDetailRequest {
668+
/**
669+
* User name
670+
* @type {string}
671+
* @memberof ApiConsoleHaloRunV1alpha1UserApiGetUserDetail
672+
*/
673+
readonly name: string
674+
}
675+
594676
/**
595677
* Request parameters for grantPermission operation in ApiConsoleHaloRunV1alpha1UserApi.
596678
* @export
@@ -646,13 +728,6 @@ export interface ApiConsoleHaloRunV1alpha1UserApiListUsersRequest {
646728
*/
647729
readonly size?: number
648730

649-
/**
650-
* The page number. Zero indicates no page.
651-
* @type {number}
652-
* @memberof ApiConsoleHaloRunV1alpha1UserApiListUsers
653-
*/
654-
readonly page?: number
655-
656731
/**
657732
* Label selector for filtering.
658733
* @type {Array<string>}
@@ -666,6 +741,13 @@ export interface ApiConsoleHaloRunV1alpha1UserApiListUsersRequest {
666741
* @memberof ApiConsoleHaloRunV1alpha1UserApiListUsers
667742
*/
668743
readonly fieldSelector?: Array<string>
744+
745+
/**
746+
* The page number. Zero indicates no page.
747+
* @type {number}
748+
* @memberof ApiConsoleHaloRunV1alpha1UserApiListUsers
749+
*/
750+
readonly page?: number
669751
}
670752

671753
/**
@@ -733,6 +815,22 @@ export class ApiConsoleHaloRunV1alpha1UserApi extends BaseAPI {
733815
.then((request) => request(this.axios, this.basePath))
734816
}
735817

818+
/**
819+
* Get user detail by name
820+
* @param {ApiConsoleHaloRunV1alpha1UserApiGetUserDetailRequest} requestParameters Request parameters.
821+
* @param {*} [options] Override http request option.
822+
* @throws {RequiredError}
823+
* @memberof ApiConsoleHaloRunV1alpha1UserApi
824+
*/
825+
public getUserDetail(
826+
requestParameters: ApiConsoleHaloRunV1alpha1UserApiGetUserDetailRequest,
827+
options?: AxiosRequestConfig,
828+
) {
829+
return ApiConsoleHaloRunV1alpha1UserApiFp(this.configuration)
830+
.getUserDetail(requestParameters.name, options)
831+
.then((request) => request(this.axios, this.basePath))
832+
}
833+
736834
/**
737835
* Grant permissions to user
738836
* @param {ApiConsoleHaloRunV1alpha1UserApiGrantPermissionRequest} requestParameters Request parameters.
@@ -766,9 +864,9 @@ export class ApiConsoleHaloRunV1alpha1UserApi extends BaseAPI {
766864
requestParameters.keyword,
767865
requestParameters.role,
768866
requestParameters.size,
769-
requestParameters.page,
770867
requestParameters.labelSelector,
771868
requestParameters.fieldSelector,
869+
requestParameters.page,
772870
options,
773871
)
774872
.then((request) => request(this.axios, this.basePath))
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/* tslint:disable */
2+
/* eslint-disable */
3+
/**
4+
* Halo Next API
5+
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
6+
*
7+
* The version of the OpenAPI document: 2.0.0
8+
*
9+
*
10+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11+
* https://openapi-generator.tech
12+
* Do not edit the class manually.
13+
*/
14+
15+
// May contain unused imports in some cases
16+
// @ts-ignore
17+
import { Role } from './role'
18+
// May contain unused imports in some cases
19+
// @ts-ignore
20+
import { User } from './user'
21+
22+
/**
23+
*
24+
* @export
25+
* @interface DetailedUser
26+
*/
27+
export interface DetailedUser {
28+
/**
29+
*
30+
* @type {User}
31+
* @memberof DetailedUser
32+
*/
33+
user: User
34+
/**
35+
*
36+
* @type {Array<Role>}
37+
* @memberof DetailedUser
38+
*/
39+
roles: Array<Role>
40+
}

packages/api-client/src/models/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ export * from './counter-list'
3131
export * from './counter-request'
3232
export * from './custom-templates'
3333
export * from './dashboard-stats'
34+
export * from './detailed-user'
3435
export * from './excerpt'
3536
export * from './extension'
3637
export * from './file-reverse-proxy-provider'
@@ -49,6 +50,8 @@ export * from './listed-reply'
4950
export * from './listed-reply-list'
5051
export * from './listed-single-page'
5152
export * from './listed-single-page-list'
53+
export * from './listed-user'
54+
export * from './listed-user-list'
5255
export * from './login-history'
5356
export * from './menu'
5457
export * from './menu-item'

0 commit comments

Comments
 (0)