diff --git a/dl.php b/dl.php index 2da7170a..2f30e017 100644 --- a/dl.php +++ b/dl.php @@ -198,12 +198,17 @@ $download_mode = array(); for ($i = 0; $i < $num_rows; $i++) { $extension = strtolower(trim($rows[$i]['extension'])); + // Get allowed extensions + if ((int) $rows[$i]['allow_group'] === 1) + { + $allowed_extensions[] = $extension; + } $allowed_extensions[] = $extension; $download_mode[$extension] = $rows[$i]['download_mode']; } // Disallowed -if (!in_array($attachment['extension'], $allowed_extensions)) +if (!in_array($attachment['extension'], $allowed_extensions) && !IS_ADMIN) { bb_die(sprintf($lang['EXTENSION_DISABLED_AFTER_POSTING'], $attachment['extension']) . "

" . $lang['FILENAME'] . ": " . $attachment['physical_filename']); } diff --git a/library/attach_mod/displaying.php b/library/attach_mod/displaying.php index 592ea445..bbf8a4b7 100644 --- a/library/attach_mod/displaying.php +++ b/library/attach_mod/displaying.php @@ -17,7 +17,7 @@ function init_complete_extensions_data() if (!$extension_informations = get_extension_informations()) { - $extension_informations = $GLOBALS['datastore']->update('attach_extensions'); //get_extension_informations() + $GLOBALS['datastore']->update('attach_extensions'); //get_extension_informations() $extension_informations = get_extension_informations(); } $allowed_extensions = array(); @@ -25,7 +25,11 @@ function init_complete_extensions_data() for ($i = 0, $size = sizeof($extension_informations); $i < $size; $i++) { $extension = strtolower(trim($extension_informations[$i]['extension'])); - $allowed_extensions[] = $extension; + // Get allowed extensions + if ((int) $extension_informations[$i]['allow_group'] === 1) + { + $allowed_extensions[] = $extension; + } $display_categories[$extension] = intval($extension_informations[$i]['cat_id']); $download_modes[$extension] = intval($extension_informations[$i]['download_mode']); $upload_icons[$extension] = trim($extension_informations[$i]['upload_icon']); diff --git a/library/includes/datastore/build_attach_extensions.php b/library/includes/datastore/build_attach_extensions.php index 5317d958..5d8721e1 100644 --- a/library/includes/datastore/build_attach_extensions.php +++ b/library/includes/datastore/build_attach_extensions.php @@ -4,14 +4,10 @@ if (!defined('BB_ROOT')) die(basename(__FILE__)); // Don't count on forbidden extensions table, because it is not allowed to allow forbidden extensions at all $extensions = DB()->fetch_rowset(" - SELECT - e.extension, g.cat_id, g.download_mode, g.upload_icon - FROM - ". BB_EXTENSIONS ." e, - ". BB_EXTENSION_GROUPS ." g - WHERE - e.group_id = g.group_id - AND g.allow_group = 1 + SELECT e.extension, g.cat_id, g.download_mode, g.upload_icon, g.allow_group FROM + ". BB_EXTENSIONS ." e, + ". BB_EXTENSION_GROUPS ." g + WHERE e.group_id = g.group_id "); -$this->store('attach_extensions', $extensions); \ No newline at end of file +$this->store('attach_extensions', $extensions);