Skip to content

Commit

Permalink
feat: user management supports conditional filtering and sorting (hal…
Browse files Browse the repository at this point in the history
…o-dev/console#862)

#### What type of PR is this?

/kind feature

#### What this PR does / why we need it:

用户管理列表支持条件筛选和排序,适配:halo-dev#3320

#### Which issue(s) this PR fixes:

Fixes halo-dev#3290

#### Screenshots:

<img width="922" alt="image" src="https://user-images.githubusercontent.com/21301288/219578426-de396dfb-7ece-496e-b740-d7a36321eafb.png">

#### Special notes for your reviewer:

测试方式:

1. Halo 需要切换到 halo-dev#3320 分支。
2. Console 需要 `pnpm build:packages`
3. 测试用户管理的关键词、条件、排序筛选是否工作正常。

#### Does this PR introduce a user-facing change?

```release-note
Console 端的用户列表支持条件筛选和排序。
```
  • Loading branch information
ruibaby authored Feb 20, 2023
1 parent 4fe31cb commit dd5c5a5
Show file tree
Hide file tree
Showing 3 changed files with 389 additions and 85 deletions.
1 change: 0 additions & 1 deletion packages/api-client/src/.openapi-generator/FILES
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
.gitignore
.npmignore
.openapi-generator-ignore
api.ts
api/api-console-halo-run-v1alpha1-attachment-api.ts
api/api-console-halo-run-v1alpha1-comment-api.ts
Expand Down
219 changes: 219 additions & 0 deletions packages/api-client/src/api/api-console-halo-run-v1alpha1-user-api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ import { GrantRequest } from '../models'
// @ts-ignore
import { User } from '../models'
// @ts-ignore
import { UserList } from '../models'
// @ts-ignore
import { UserPermission } from '../models'
/**
* ApiConsoleHaloRunV1alpha1UserApi - axios parameter creator
Expand Down Expand Up @@ -223,6 +225,85 @@ export const ApiConsoleHaloRunV1alpha1UserApiAxiosParamCreator = function (confi
options: localVarRequestOptions,
}
},
/**
* List users
* @param {Array<string>} [sort] Sort property and direction of the list result. Supported fields: creationTimestamp
* @param {string} [keyword]
* @param {string} [role]
* @param {number} [size] Size of one page. Zero indicates no limit.
* @param {number} [page] The page number. Zero indicates no page.
* @param {Array<string>} [labelSelector] Label selector for filtering.
* @param {Array<string>} [fieldSelector] Field selector for filtering.
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
listUsers: async (
sort?: Array<string>,
keyword?: string,
role?: string,
size?: number,
page?: number,
labelSelector?: Array<string>,
fieldSelector?: Array<string>,
options: AxiosRequestConfig = {},
): Promise<RequestArgs> => {
const localVarPath = `/apis/api.console.halo.run/v1alpha1/users`
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL)
let baseOptions
if (configuration) {
baseOptions = configuration.baseOptions
}

const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }
const localVarHeaderParameter = {} as any
const localVarQueryParameter = {} as any

// authentication BasicAuth required
// http basic authentication required
setBasicAuthToObject(localVarRequestOptions, configuration)

// authentication BearerAuth required
// http bearer authentication required
await setBearerAuthToObject(localVarHeaderParameter, configuration)

if (sort) {
localVarQueryParameter['sort'] = Array.from(sort)
}

if (keyword !== undefined) {
localVarQueryParameter['keyword'] = keyword
}

if (role !== undefined) {
localVarQueryParameter['role'] = role
}

if (size !== undefined) {
localVarQueryParameter['size'] = size
}

if (page !== undefined) {
localVarQueryParameter['page'] = page
}

if (labelSelector) {
localVarQueryParameter['labelSelector'] = labelSelector
}

if (fieldSelector) {
localVarQueryParameter['fieldSelector'] = fieldSelector
}

setSearchParams(localVarUrlObj, localVarQueryParameter)
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}
localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }

return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
}
},
/**
* Update current user profile, but password.
* @param {User} user
Expand Down Expand Up @@ -328,6 +409,40 @@ export const ApiConsoleHaloRunV1alpha1UserApiFp = function (configuration?: Conf
const localVarAxiosArgs = await localVarAxiosParamCreator.grantPermission(name, grantRequest, options)
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)
},
/**
* List users
* @param {Array<string>} [sort] Sort property and direction of the list result. Supported fields: creationTimestamp
* @param {string} [keyword]
* @param {string} [role]
* @param {number} [size] Size of one page. Zero indicates no limit.
* @param {number} [page] The page number. Zero indicates no page.
* @param {Array<string>} [labelSelector] Label selector for filtering.
* @param {Array<string>} [fieldSelector] Field selector for filtering.
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async listUsers(
sort?: Array<string>,
keyword?: string,
role?: string,
size?: number,
page?: number,
labelSelector?: Array<string>,
fieldSelector?: Array<string>,
options?: AxiosRequestConfig,
): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<UserList>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.listUsers(
sort,
keyword,
role,
size,
page,
labelSelector,
fieldSelector,
options,
)
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)
},
/**
* Update current user profile, but password.
* @param {User} user
Expand Down Expand Up @@ -403,6 +518,29 @@ export const ApiConsoleHaloRunV1alpha1UserApiFactory = function (
.grantPermission(requestParameters.name, requestParameters.grantRequest, options)
.then((request) => request(axios, basePath))
},
/**
* List users
* @param {ApiConsoleHaloRunV1alpha1UserApiListUsersRequest} requestParameters Request parameters.
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
listUsers(
requestParameters: ApiConsoleHaloRunV1alpha1UserApiListUsersRequest = {},
options?: AxiosRequestConfig,
): AxiosPromise<UserList> {
return localVarFp
.listUsers(
requestParameters.sort,
requestParameters.keyword,
requestParameters.role,
requestParameters.size,
requestParameters.page,
requestParameters.labelSelector,
requestParameters.fieldSelector,
options,
)
.then((request) => request(axios, basePath))
},
/**
* Update current user profile, but password.
* @param {ApiConsoleHaloRunV1alpha1UserApiUpdateCurrentUserRequest} requestParameters Request parameters.
Expand Down Expand Up @@ -474,6 +612,62 @@ export interface ApiConsoleHaloRunV1alpha1UserApiGrantPermissionRequest {
readonly grantRequest: GrantRequest
}

/**
* Request parameters for listUsers operation in ApiConsoleHaloRunV1alpha1UserApi.
* @export
* @interface ApiConsoleHaloRunV1alpha1UserApiListUsersRequest
*/
export interface ApiConsoleHaloRunV1alpha1UserApiListUsersRequest {
/**
* Sort property and direction of the list result. Supported fields: creationTimestamp
* @type {Array<string>}
* @memberof ApiConsoleHaloRunV1alpha1UserApiListUsers
*/
readonly sort?: Array<string>

/**
*
* @type {string}
* @memberof ApiConsoleHaloRunV1alpha1UserApiListUsers
*/
readonly keyword?: string

/**
*
* @type {string}
* @memberof ApiConsoleHaloRunV1alpha1UserApiListUsers
*/
readonly role?: string

/**
* Size of one page. Zero indicates no limit.
* @type {number}
* @memberof ApiConsoleHaloRunV1alpha1UserApiListUsers
*/
readonly size?: number

/**
* The page number. Zero indicates no page.
* @type {number}
* @memberof ApiConsoleHaloRunV1alpha1UserApiListUsers
*/
readonly page?: number

/**
* Label selector for filtering.
* @type {Array<string>}
* @memberof ApiConsoleHaloRunV1alpha1UserApiListUsers
*/
readonly labelSelector?: Array<string>

/**
* Field selector for filtering.
* @type {Array<string>}
* @memberof ApiConsoleHaloRunV1alpha1UserApiListUsers
*/
readonly fieldSelector?: Array<string>
}

/**
* Request parameters for updateCurrentUser operation in ApiConsoleHaloRunV1alpha1UserApi.
* @export
Expand Down Expand Up @@ -555,6 +749,31 @@ export class ApiConsoleHaloRunV1alpha1UserApi extends BaseAPI {
.then((request) => request(this.axios, this.basePath))
}

/**
* List users
* @param {ApiConsoleHaloRunV1alpha1UserApiListUsersRequest} requestParameters Request parameters.
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof ApiConsoleHaloRunV1alpha1UserApi
*/
public listUsers(
requestParameters: ApiConsoleHaloRunV1alpha1UserApiListUsersRequest = {},
options?: AxiosRequestConfig,
) {
return ApiConsoleHaloRunV1alpha1UserApiFp(this.configuration)
.listUsers(
requestParameters.sort,
requestParameters.keyword,
requestParameters.role,
requestParameters.size,
requestParameters.page,
requestParameters.labelSelector,
requestParameters.fieldSelector,
options,
)
.then((request) => request(this.axios, this.basePath))
}

/**
* Update current user profile, but password.
* @param {ApiConsoleHaloRunV1alpha1UserApiUpdateCurrentUserRequest} requestParameters Request parameters.
Expand Down
Loading

0 comments on commit dd5c5a5

Please sign in to comment.