From 61a9ad45ed263d745bb35714ee22f3955590f335 Mon Sep 17 00:00:00 2001 From: offtkp Date: Mon, 9 May 2022 22:00:26 +0300 Subject: [PATCH] FileManager: Check for write permission before enabling certain actions Upon DirectoryView selection change, check for write permission before enabling delete and cut. This disallows attempting to delete/cut and paste a file that you don't have write permission to by using keybinds. Fixes #13983. --- Userland/Applications/FileManager/main.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Userland/Applications/FileManager/main.cpp b/Userland/Applications/FileManager/main.cpp index b0d2b61ac2..00e649e196 100644 --- a/Userland/Applications/FileManager/main.cpp +++ b/Userland/Applications/FileManager/main.cpp @@ -1107,10 +1107,10 @@ ErrorOr run_in_windowed_mode(String const& initial_location, String const& directory_view->on_selection_change = [&](GUI::AbstractView& view) { auto& selection = view.selection(); - cut_action->set_enabled(!selection.is_empty()); + cut_action->set_enabled(!selection.is_empty() && access(directory_view->path().characters(), W_OK) == 0); copy_action->set_enabled(!selection.is_empty()); focus_dependent_delete_action->set_enabled((!tree_view.selection().is_empty() && tree_view.is_focused()) - || !directory_view->current_view().selection().is_empty()); + || (!directory_view->current_view().selection().is_empty() && access(directory_view->path().characters(), W_OK) == 0)); }; auto directory_open_action = GUI::Action::create("Open", Gfx::Bitmap::try_load_from_file("/res/icons/16x16/open.png").release_value_but_fixme_should_propagate_errors(), [&](auto&) {