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);