diff --git a/code/AssetTableField.php b/code/AssetTableField.php index 944bc50c8f..d5d3a9a7b2 100755 --- a/code/AssetTableField.php +++ b/code/AssetTableField.php @@ -343,6 +343,30 @@ public function movemarked($request) { ); } } + function handleItem($request) { + return new AssetTableField_ItemRequest($this, $request->param('ID')); + } } +class AssetTableField_ItemRequest extends ComplexTableField_ItemRequest { + function saveComplexTableField($data, $form, $request) { + + if(!AssetAdmin::$apply_restrictions_to_admin && Permission::check('ADMIN')) { + if(!in_array(strtolower(pathinfo($data['Name'], PATHINFO_EXTENSION)), AssetAdmin::$allowed_extensions)) { + $form->sessionMessage(sprintf( + _t( + 'File.INVALIDEXTENSION', + 'Extension is not allowed (valid: %s)', + PR_MEDIUM, + 'Argument 1: Comma-separated list of valid extensions' + ), + implode(',',AssetAdmin::$allowed_extensions) + ), 'bad'); + Director::redirectBack(); + return; + } + } + return parent::saveComplexTableField($data, $form, $request); + } +} ?>