diff --git a/ChangeLog b/ChangeLog index 12f3c591f1..88d68fd54f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -31,6 +31,7 @@ phpMyAdmin - ChangeLog + rfe #3475567 [interface] New directive $cfg['HideStructureActions'] - bug #3468272 [import] Fixed import of ODS with more paragraphs in a cell - bug #3510196 [core] Improved redirecting with ForceSSL option ++ rfe #3518852 [edit] edit blob but not other binary, new option $cfg['ProtectBinary'] = 'noblob' 3.5.1.0 (not yet released) - bug #3510784 [edit] Limit clause ignored when sort order is remembered diff --git a/Documentation.html b/Documentation.html index eb7ae843cb..8449158781 100644 --- a/Documentation.html +++ b/Documentation.html @@ -1694,6 +1694,8 @@ CREATE DATABASE,ALTER DATABASE,DROP DATABASE from editing when browsing a table's content. Valid values are: diff --git a/config.sample.inc.php b/config.sample.inc.php index 9c12ef6b3d..69bc6242d5 100644 --- a/config.sample.inc.php +++ b/config.sample.inc.php @@ -89,9 +89,10 @@ $cfg['SaveDir'] = ''; /** * disallow editing of binary fields * valid values are: - * false allow editing - * 'blob' allow editing except for BLOB fields - * 'all' disallow editing + * false allow editing + * 'blob' allow editing except for BLOB fields + * 'noblob' disallow editing except for BLOB fields + * 'all' disallow editing * default = blob */ //$cfg['ProtectBinary'] = 'false'; diff --git a/libraries/config.default.php b/libraries/config.default.php index f4d6fdde9f..67072f0b16 100644 --- a/libraries/config.default.php +++ b/libraries/config.default.php @@ -1035,9 +1035,10 @@ $cfg['DisplayBinaryAsHex'] = true; /** * disallow editing of binary fields * valid values are: - * false allow editing - * 'blob' allow editing except for BLOB fields - * 'all' disallow editing + * false allow editing + * 'blob' allow editing except for BLOB fields + * 'noblob' disallow editing except for BLOB fields + * 'all' disallow editing * * @global string $cfg['ProtectBinary'] */ diff --git a/libraries/config.values.php b/libraries/config.values.php index 6abe3bfee5..8273055e97 100644 --- a/libraries/config.values.php +++ b/libraries/config.values.php @@ -45,7 +45,7 @@ $cfg_db['LeftFrameTableSeparator'] = 'short_string'; $cfg_db['NavigationBarIconic'] = array(true => __('Yes'), false => __('No'), 'both' => __('Both')); $cfg_db['Order'] = array('ASC', 'DESC', 'SMART'); $cfg_db['RowActionLinks'] = array('none' => __('Nowhere'), 'left' => __('Left'), 'right' => __('Right'), 'both' => __('Both')); -$cfg_db['ProtectBinary'] = array(false, 'blob', 'all'); +$cfg_db['ProtectBinary'] = array(false, 'blob', 'noblob', 'all'); $cfg_db['DefaultDisplay'] = array('horizontal', 'vertical', 'horizontalflipped'); $cfg_db['CharEditing'] = array('input', 'textarea'); $cfg_db['PropertiesIconic'] = array(true => __('Yes'), false => __('No'), 'both' => __('Both')); diff --git a/tbl_change.php b/tbl_change.php index b18a6cafcd..6c4de15f89 100644 --- a/tbl_change.php +++ b/tbl_change.php @@ -594,7 +594,8 @@ foreach ($rows as $row_id => $vrow) { $special_chars_encoded = PMA_duplicateFirstNewline($special_chars); // this will select the UNHEX function while inserting if (($field['is_binary'] || ($field['is_blob'] && ! $cfg['ProtectBinary'])) - && $_SESSION['tmp_user_values']['display_binary_as_hex'] + && (isset($_SESSION['tmp_user_values']['display_binary_as_hex']) + && $_SESSION['tmp_user_values']['display_binary_as_hex']) && $cfg['ShowFunctionFields'] ) { $field['display_binary_as_hex'] = true; @@ -616,6 +617,7 @@ foreach ($rows as $row_id => $vrow) { if ($cfg['ShowFunctionFields']) { if (($cfg['ProtectBinary'] && $field['is_blob'] && !$is_upload) || ($cfg['ProtectBinary'] == 'all' && $field['is_binary']) + || ($cfg['ProtectBinary'] == 'noblob' && !$field['is_blob']) ) { echo ' ' . __('Binary') . '' . "\n"; } elseif (strstr($field['True_Type'], 'enum') @@ -863,6 +865,7 @@ foreach ($rows as $row_id => $vrow) { } elseif ($field['is_binary'] || $field['is_blob']) { if (($cfg['ProtectBinary'] && $field['is_blob']) || ($cfg['ProtectBinary'] == 'all' && $field['is_binary']) + || ($cfg['ProtectBinary'] == 'noblob' && !$field['is_blob']) ) { echo __('Binary - do not edit'); if (isset($data)) {