Check for write access before change. (#890)

* Check for write access before change. Closes #862

* Formatting.
This commit is contained in:
chaos
2023-11-21 17:37:05 +02:00
committed by GitHub
parent 4b1a3eb41e
commit fd299aabe8
4 changed files with 42 additions and 3 deletions

View File

@@ -43,3 +43,7 @@ export async function set(settings) {
export async function change_config_dir(newConfigDir) {
return await invoke('plugin:settings|settings_change_config_dir', { newConfigDir })
}
export async function is_dir_writeable(newConfigDir) {
return await invoke('plugin:settings|settings_is_dir_writeable', { newConfigDir })
}

View File

@@ -14,7 +14,7 @@ import {
UpdatedIcon,
} from 'omorphia'
import { handleError, useTheming } from '@/store/state'
import { change_config_dir, get, set } from '@/helpers/settings'
import { is_dir_writeable, change_config_dir, get, set } from '@/helpers/settings'
import { get_max_memory } from '@/helpers/jre'
import { get as getCreds, logout } from '@/helpers/mr_auth.js'
import JavaSelector from '@/components/ui/JavaSelector.vue'
@@ -116,7 +116,18 @@ async function signInAfter() {
}
async function findLauncherDir() {
const newDir = await open({ multiple: false, directory: true })
const newDir = await open({
multiple: false,
directory: true,
title: 'Select a new app directory',
})
const writeable = await is_dir_writeable(newDir)
if (!writeable) {
handleError('The selected directory does not have proper permissions for write access.')
return
}
if (newDir) {
settingsDir.value = newDir