From a0fd987b2927e44780f1849cdcecb1478bf548fc Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Mon, 5 Oct 2009 20:40:22 +0000 Subject: [PATCH] BUGFIX Filter both 'available' and 'new' languages in LanguageDropdownField for canTranslate() permissions git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@88138 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- forms/LanguageDropdownField.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/forms/LanguageDropdownField.php b/forms/LanguageDropdownField.php index c9d680b8a..c2ef796cf 100755 --- a/forms/LanguageDropdownField.php +++ b/forms/LanguageDropdownField.php @@ -35,11 +35,21 @@ class LanguageDropdownField extends GroupedDropdownField { ($allowedLocales && !in_array($locale, $allowedLocales)) || ($excludeLocales && in_array($locale, $excludeLocales)) || ($usedLocalesWithTitle && array_key_exists($locale, $usedLocalesWithTitle)) - || ($instance && !$instance->canTranslate(null, $locale)) ) { unset($allLocalesWithTitle[$locale]); } } + // instance specific permissions + foreach($allLocalesWithTitle as $locale => $localeTitle) { + if($instance && !$instance->canTranslate(null, $locale)) { + unset($allLocalesWithTitle[$locale]); + } + } + foreach($usedLocalesWithTitle as $locale => $localeTitle) { + if($instance && !$instance->canTranslate(null, $locale)) { + unset($usedLocalesWithTitle[$locale]); + } + } // Sort by title (array value) asort($allLocalesWithTitle);