From c981fea35e1e7ddb466364cd96cfbba6c560d67a Mon Sep 17 00:00:00 2001 From: Koichi Kato Date: Tue, 3 Sep 2024 18:07:18 +0900 Subject: [PATCH] PREAPPS-7988: fixed change password --- src/batch-client/index.ts | 52 ++++++++++++++++++++-------- src/batch-client/types.ts | 2 ++ src/schema/generated-schema-types.ts | 8 +++++ src/schema/schema.graphql | 7 ++++ 4 files changed, 54 insertions(+), 15 deletions(-) diff --git a/src/batch-client/index.ts b/src/batch-client/index.ts index 348b8fc9..92d033e9 100644 --- a/src/batch-client/index.ts +++ b/src/batch-client/index.ts @@ -530,22 +530,44 @@ export class ZimbraBatchClient { loginNewPassword, password, username, - dryRun = false - }: ChangePasswordOptions) => - this.jsonRequest({ - name: 'ChangePassword', - namespace: Namespace.Account, - body: { - account: { - by: 'name', - _content: username + dryRun = false, + authToken, + csrfToken + }: ChangePasswordOptions) => { + if (authToken) { + return this.jsonRequest({ + name: 'ChangePassword', + namespace: Namespace.Account, + body: { + account: { + by: 'name', + _content: username + }, + oldPassword: password, + password: loginNewPassword, + dryRun, + authToken: { _content: authToken }, + csrfToken: { _content: csrfToken } }, - oldPassword: password, - password: loginNewPassword, - dryRun - }, - singleRequest: true - }); + singleRequest: true + }); + } else { + return this.jsonRequest({ + name: 'ChangePassword', + namespace: Namespace.Account, + body: { + account: { + by: 'name', + _content: username + }, + oldPassword: password, + password: loginNewPassword, + dryRun + }, + singleRequest: true + }); + } + }; public checkCalendar = ({ id, value }: FolderActionCheckCalendarInput) => this.action(ActionType.folder, { diff --git a/src/batch-client/types.ts b/src/batch-client/types.ts index 186fc31c..47cf4788 100644 --- a/src/batch-client/types.ts +++ b/src/batch-client/types.ts @@ -231,6 +231,8 @@ export interface ShareInfoOptions { } export interface ChangePasswordOptions { + authToken: string; + csrfToken: string; dryRun: boolean; loginNewPassword: string; password: string; diff --git a/src/schema/generated-schema-types.ts b/src/schema/generated-schema-types.ts index 2f5e7969..c59e7528 100644 --- a/src/schema/generated-schema-types.ts +++ b/src/schema/generated-schema-types.ts @@ -384,6 +384,7 @@ export type AuthResponse = { authToken?: Maybe>>; csrfToken?: Maybe; lifetime?: Maybe; + resetPassword?: Maybe; session?: Maybe; skin?: Maybe>>; trustedDevicesEnabled?: Maybe; @@ -2802,6 +2803,8 @@ export type MutationChangeFolderColorArgs = { export type MutationChangePasswordArgs = { + authToken?: InputMaybe; + csrfToken?: InputMaybe; dryRun?: InputMaybe; loginNewPassword: Scalars['String']['input']; password: Scalars['String']['input']; @@ -4044,6 +4047,11 @@ export type ReplyActionInput = { index?: InputMaybe; }; +export type ResetPassword = { + __typename?: 'ResetPassword'; + _content?: Maybe; +}; + export type ResetPasswordResponse = { __typename?: 'ResetPasswordResponse'; attrs?: Maybe; diff --git a/src/schema/schema.graphql b/src/schema/schema.graphql index e99cd85f..95af4f06 100644 --- a/src/schema/schema.graphql +++ b/src/schema/schema.graphql @@ -343,6 +343,7 @@ type AuthResponse { session: Session skin: [Skin] csrfToken: CsrfToken + resetPassword: ResetPassword } type ScratchCodeType { @@ -388,6 +389,10 @@ type TrustedDevicesEnabled { _content: Boolean } +type ResetPassword { + _content: Boolean +} + type Session { id: ID _content: String @@ -3684,6 +3689,8 @@ type Mutation { loginNewPassword: String! password: String! username: String! + authToken: String + csrfToken: String ): AuthResponse modifyProfileImage( content: String