Don't display the add menu if the underlying operating system directory is not writable. THis should fix ticket #775

This commit is contained in:
Tim Almdal
2009-09-18 23:53:48 -07:00
parent be84c7be25
commit 4e6f2f1b4c
2 changed files with 14 additions and 6 deletions
+6 -1
View File
@@ -89,9 +89,11 @@ class gallery_Core {
$item = $theme->item();
$can_edit = $item && access::can("edit", $item);
$is_album_writable =
is_writable($item->is_album() ? $item->file_path() : $item->parent()->file_path());
$can_add = $item && access::can("add", $item);
if ($can_add) {
if ($can_add && $is_album_writable) {
$menu->append($add_menu = Menu::factory("submenu")
->id("add_menu")
->label(t("Add")));
@@ -105,6 +107,9 @@ class gallery_Core {
->label(t("Add an album"))
->url(url::site("form/add/albums/$item->id?type=album")));
}
} else if (!$is_album_writable) {
message::warning(t("The album '%album_name' is not writable.",
array("album_name" => $item->title)));
}
$menu->append($options_menu = Menu::factory("submenu")
@@ -31,11 +31,14 @@ class server_add_event_Core {
$paths = unserialize(module::get_var("server_add", "authorized_paths"));
if ($item && user::active()->admin && $item->is_album() && !empty($paths)) {
$menu->get("add_menu")
->append(Menu::factory("dialog")
->id("server_add")
->label(t("Server add"))
->url(url::site("server_add/browse/$item->id")));
$add_menu = $menu->get("add_menu");
if ($add_menu) {
$add_menu
->append(Menu::factory("dialog")
->id("server_add")
->label(t("Server add"))
->url(url::site("server_add/browse/$item->id")));
}
}
}
}