mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-04-28 18:36:23 +02:00
42 lines
966 B
TypeScript
42 lines
966 B
TypeScript
import { app } from 'electron';
|
|
|
|
type PermissionStatus = 'authorized' | 'denied' | 'not determined' | 'restricted' | 'limited';
|
|
|
|
export interface PermissionsStatus {
|
|
accessibility: PermissionStatus;
|
|
}
|
|
|
|
function isMac(): boolean {
|
|
return process.platform === 'darwin';
|
|
}
|
|
|
|
function getNodeMacPermissions() {
|
|
return require('node-mac-permissions');
|
|
}
|
|
|
|
export function getPermissionsStatus(): PermissionsStatus {
|
|
if (!isMac()) {
|
|
return { accessibility: 'authorized' };
|
|
}
|
|
|
|
const perms = getNodeMacPermissions();
|
|
return {
|
|
accessibility: perms.getAuthStatus('accessibility'),
|
|
};
|
|
}
|
|
|
|
export function allPermissionsGranted(): boolean {
|
|
const status = getPermissionsStatus();
|
|
return status.accessibility === 'authorized';
|
|
}
|
|
|
|
export function requestAccessibility(): void {
|
|
if (!isMac()) return;
|
|
const perms = getNodeMacPermissions();
|
|
perms.askForAccessibilityAccess();
|
|
}
|
|
|
|
export function restartApp(): void {
|
|
app.relaunch();
|
|
app.exit(0);
|
|
}
|