diff --git a/packages/app/src/components/settings-general.tsx b/packages/app/src/components/settings-general.tsx index 8adaa1f0fdf9..447907ad6487 100644 --- a/packages/app/src/components/settings-general.tsx +++ b/packages/app/src/components/settings-general.tsx @@ -95,7 +95,16 @@ export const SettingsGeneral: Component = () => { const linux = createMemo(() => platform.platform === "desktop" && platform.os === "linux") const dir = createMemo(() => decode64(params.dir)) + const serverSync = useServerSync() + const serverSdk = useServerSDK() + const globalAutoAccept = createMemo(() => { + const perm = (serverSync().data.config as any)?.permission + if (perm === "allow") return true + if (perm && typeof perm === "object" && perm["*"] === "allow") return true + return false + }) const accepting = createMemo(() => { + if (globalAutoAccept()) return true const value = dir() if (!value) return false if (!params.id) return permission.isAutoAcceptingDirectory(value) @@ -123,9 +132,6 @@ export const SettingsGeneral: Component = () => { const themeOptions = createMemo(() => theme.ids().map((id) => ({ id, name: theme.name(id) }))) - const serverSync = useServerSync() - const serverSdk = useServerSDK() - const [shells] = createResource( async () => { const sdk = serverSdk() @@ -321,7 +327,7 @@ export const SettingsGeneral: Component = () => { description={language.t("toast.permissions.autoaccept.on.description")} >
- +
diff --git a/packages/app/src/components/settings-v2/general-controllers.ts b/packages/app/src/components/settings-v2/general-controllers.ts index ae77fa332f22..e2d233cfb396 100644 --- a/packages/app/src/components/settings-v2/general-controllers.ts +++ b/packages/app/src/components/settings-v2/general-controllers.ts @@ -25,6 +25,12 @@ export type { ShellOption, ShellSelectOption } from "./general-controller-behavi export function createPermissionScopeController(sessionID: Accessor) { const permission = usePermission() const serverSync = useServerSync() + const globalAutoAccept = createMemo(() => { + const perm = (serverSync().data.config as any)?.permission + if (perm === "allow") return true + if (perm && typeof perm === "object" && perm["*"] === "allow") return true + return false + }) const directory = createMemo(() => { const id = sessionID() if (!id) return undefined @@ -33,12 +39,13 @@ export function createPermissionScopeController(sessionID: Accessor { + if (globalAutoAccept()) return true const id = sessionID() const dir = directory() if (!id || !dir) return false return permission.isAutoAccepting(id, dir) }), - enabled: createMemo(() => !!directory()), + enabled: createMemo(() => !globalAutoAccept() && !!directory()), set: (checked: boolean) => { const id = sessionID() const dir = directory()