From 67b54307c69a5ee9babb04a617aa96ff9df0c777 Mon Sep 17 00:00:00 2001 From: Johannes Millan Date: Sat, 21 Dec 2024 11:09:20 +0100 Subject: [PATCH] feat(issueProvider): remove jira pat and wonkyCookie modes #2528 --- electron/electronAPI.d.ts | 2 +- electron/ipc-handler.ts | 9 +++---- electron/jira.ts | 19 ++------------- .../issue/providers/jira/jira-api.service.ts | 24 +++++-------------- .../issue/providers/jira/jira.const.ts | 17 ------------- .../issue/providers/jira/jira.model.ts | 2 -- .../task-detail-panel.component.ts | 4 ---- 7 files changed, 12 insertions(+), 65 deletions(-) diff --git a/electron/electronAPI.d.ts b/electron/electronAPI.d.ts index ab870cdd2..7971bdabb 100644 --- a/electron/electronAPI.d.ts +++ b/electron/electronAPI.d.ts @@ -100,7 +100,7 @@ export interface ElectronAPI { jiraCfg: JiraCfg; }): void; - jiraSetupImgHeaders(args: { jiraCfg: JiraCfg; wonkyCookie?: string }): void; + jiraSetupImgHeaders(args: { jiraCfg: JiraCfg }): void; backupAppData(appData: AppDataComplete): void; diff --git a/electron/ipc-handler.ts b/electron/ipc-handler.ts index 81756c170..32475b7c2 100644 --- a/electron/ipc-handler.ts +++ b/electron/ipc-handler.ts @@ -71,12 +71,9 @@ export const initIpcInterfaces = (): void => { registerShowAppShortCuts(cfg); }); - ipcMain.on( - IPC.JIRA_SETUP_IMG_HEADERS, - (ev, { jiraCfg, wonkyCookie }: { jiraCfg: JiraCfg; wonkyCookie?: string }) => { - setupRequestHeadersForImages(jiraCfg, wonkyCookie); - }, - ); + ipcMain.on(IPC.JIRA_SETUP_IMG_HEADERS, (ev, { jiraCfg }: { jiraCfg: JiraCfg }) => { + setupRequestHeadersForImages(jiraCfg); + }); ipcMain.on(IPC.JIRA_MAKE_REQUEST_EVENT, (ev, request) => { sendJiraRequest(request); diff --git a/electron/jira.ts b/electron/jira.ts index 9c9403ee3..f58bc163a 100644 --- a/electron/jira.ts +++ b/electron/jira.ts @@ -76,10 +76,7 @@ export const sendJiraRequest = ({ }; // TODO simplify and do encoding in frontend service -export const setupRequestHeadersForImages = ( - jiraCfg: JiraCfg, - wonkyCookie?: string, -): void => { +export const setupRequestHeadersForImages = (jiraCfg: JiraCfg): void => { const { host, protocol } = parseHostAndPort(jiraCfg); // TODO export to util fn @@ -91,22 +88,10 @@ export const setupRequestHeadersForImages = ( urls: [`${protocol}://${host}/*`], }; - if (jiraCfg.isWonkyCookieMode && !wonkyCookie) { - session.defaultSession.webRequest.onBeforeSendHeaders(filter, (details, callback) => { - callback({ cancel: true }); - }); - } - // thankfully only the last attached listener will be used // @see: https://electronjs.org/docs/api/web-request session.defaultSession.webRequest.onBeforeSendHeaders(filter, (details, callback) => { - if (wonkyCookie && jiraCfg.isWonkyCookieMode) { - details.requestHeaders.Cookie = wonkyCookie; - } else if (jiraCfg.usePAT) { - details.requestHeaders.authorization = `Bearer ${jiraCfg.password}`; - } else { - details.requestHeaders.authorization = `Basic ${encoded}`; - } + details.requestHeaders.authorization = `Basic ${encoded}`; callback({ requestHeaders: details.requestHeaders }); }); }; diff --git a/src/app/features/issue/providers/jira/jira-api.service.ts b/src/app/features/issue/providers/jira/jira-api.service.ts index cc59f028c..e64396886 100644 --- a/src/app/features/issue/providers/jira/jira-api.service.ts +++ b/src/app/features/issue/providers/jira/jira-api.service.ts @@ -388,9 +388,6 @@ export class JiraApiService { }): Observable { return this._isInterfacesReadyIfNeeded$.pipe( take(1), - concatMap(() => - IS_ELECTRON && cfg.isWonkyCookieMode ? this._checkSetWonkyCookie(cfg) : of(true), - ), concatMap(() => { // assign uuid to request to know which responsive belongs to which promise const requestId = `${jiraReqCfg.pathname}__${ @@ -545,21 +542,12 @@ export class JiraApiService { headers: { // eslint-disable-next-line @typescript-eslint/naming-convention 'Content-Type': 'application/json', - ...(IS_ELECTRON && cfg.isWonkyCookieMode - ? { - Cookie: sessionStorage.getItem(SS.JIRA_WONKY_COOKIE) as string, - } - : cfg.usePAT - ? { - Cookie: '', - authorization: `Bearer ${cfg.password}`, - } - : { - Cookie: '', - authorization: `Basic ${this._b64EncodeUnicode( - `${cfg.userName}:${cfg.password}`, - )}`, - }), + ...{ + Cookie: '', + authorization: `Basic ${this._b64EncodeUnicode( + `${cfg.userName}:${cfg.password}`, + )}`, + }, }, }; } diff --git a/src/app/features/issue/providers/jira/jira.const.ts b/src/app/features/issue/providers/jira/jira.const.ts index d82b77a5c..2d178738b 100644 --- a/src/app/features/issue/providers/jira/jira.const.ts +++ b/src/app/features/issue/providers/jira/jira.const.ts @@ -14,8 +14,6 @@ export const DEFAULT_JIRA_CFG: JiraCfg = { host: null, userName: null, password: null, - isWonkyCookieMode: false, - usePAT: false, searchJqlQuery: '', @@ -198,21 +196,6 @@ export const JIRA_CONFIG_FORM_SECTION: ConfigFormSection = { // label: T.F.JIRA.FORM_CRED.ALLOW_SELF_SIGNED, // }, // }, - { - key: 'isWonkyCookieMode', - type: 'checkbox', - templateOptions: { - label: T.F.JIRA.FORM_CRED.WONKY_COOKIE_MODE, - }, - }, - { - key: 'usePAT', - type: 'checkbox', - templateOptions: { - required: false, - label: T.F.JIRA.FORM_CRED.USE_PAT, - }, - }, ...ISSUE_PROVIDER_COMMON_FORM_FIELDS, diff --git a/src/app/features/issue/providers/jira/jira.model.ts b/src/app/features/issue/providers/jira/jira.model.ts index 9e6afa73c..2a726343d 100644 --- a/src/app/features/issue/providers/jira/jira.model.ts +++ b/src/app/features/issue/providers/jira/jira.model.ts @@ -22,8 +22,6 @@ export interface JiraCfg extends BaseIssueProviderCfg { host: string | null; userName: string | null; password?: string | null; - isWonkyCookieMode: boolean; - usePAT: boolean; isAllowSelfSignedCertificate: boolean; searchJqlQuery: string; diff --git a/src/app/features/tasks/task-detail-panel/task-detail-panel.component.ts b/src/app/features/tasks/task-detail-panel/task-detail-panel.component.ts index 4e49be22d..e2b61b72d 100644 --- a/src/app/features/tasks/task-detail-panel/task-detail-panel.component.ts +++ b/src/app/features/tasks/task-detail-panel/task-detail-panel.component.ts @@ -60,7 +60,6 @@ import { ICAL_TYPE, JIRA_TYPE } from '../../issue/issue.const'; import { IS_ELECTRON } from '../../../app.constants'; import { LayoutService } from '../../../core-ui/layout/layout.service'; import { devError } from '../../../util/dev-error'; -import { SS } from '../../../core/persistence/storage-keys.const'; import { IS_MOBILE } from '../../../util/is-mobile'; import { GlobalConfigService } from '../../config/global-config.service'; import { shareReplayUntil } from '../../../util/share-replay-until'; @@ -276,9 +275,6 @@ export class TaskDetailPanelComponent implements AfterViewInit, OnDestroy { if (jiraCfg.isEnabled) { window.ea.jiraSetupImgHeaders({ jiraCfg, - wonkyCookie: jiraCfg.isWonkyCookieMode - ? sessionStorage.getItem(SS.JIRA_WONKY_COOKIE) || undefined - : undefined, }); } });