From 4ec27f3e7c82d209d1ea65e28bace6ee76c647d7 Mon Sep 17 00:00:00 2001 From: j0794 <62024419+j0794@users.noreply.github.com> Date: Thu, 13 Mar 2025 21:58:14 +0500 Subject: [PATCH] Fix issue with media permissions on Linux (#3355) --- src/main/permissionsManager.test.js | 16 +++++++++------- src/main/permissionsManager.ts | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/main/permissionsManager.test.js b/src/main/permissionsManager.test.js index c89bc63a..e2e7866a 100644 --- a/src/main/permissionsManager.test.js +++ b/src/main/permissionsManager.test.js @@ -60,13 +60,15 @@ jest.mock('main/windows/mainWindow', () => ({ describe('main/PermissionsManager', () => { describe('setForServer', () => { - it('should ask for media permission when is not granted but the user explicitly granted it', () => { - systemPreferences.getMediaAccessStatus.mockReturnValue('denied'); - const permissionsManager = new PermissionsManager('anyfile.json'); - permissionsManager.setForServer({url: new URL('http://anyurl.com')}, {media: {allowed: true}}); - expect(systemPreferences.askForMediaAccess).toHaveBeenNthCalledWith(1, 'microphone'); - expect(systemPreferences.askForMediaAccess).toHaveBeenNthCalledWith(2, 'camera'); - }); + if (process.platform !== 'linux') { + it('should ask for media permission when is not granted but the user explicitly granted it', () => { + systemPreferences.getMediaAccessStatus.mockReturnValue('denied'); + const permissionsManager = new PermissionsManager('anyfile.json'); + permissionsManager.setForServer({url: new URL('http://anyurl.com')}, {media: {allowed: true}}); + expect(systemPreferences.askForMediaAccess).toHaveBeenNthCalledWith(1, 'microphone'); + expect(systemPreferences.askForMediaAccess).toHaveBeenNthCalledWith(2, 'camera'); + }); + } }); describe('handlePermissionRequest', () => { diff --git a/src/main/permissionsManager.ts b/src/main/permissionsManager.ts index 27dca918..ee396e71 100644 --- a/src/main/permissionsManager.ts +++ b/src/main/permissionsManager.ts @@ -95,7 +95,7 @@ export class PermissionsManager extends JsonFileManager { }; setForServer = (server: MattermostServer, permissions: Permissions) => { - if (permissions.media?.allowed) { + if (permissions.media?.allowed && (process.platform === 'win32' || process.platform === 'darwin')) { this.checkMediaAccess('microphone'); this.checkMediaAccess('camera'); }