|
27 | 27 | use function Vvveb\sanitizeFileName;
|
28 | 28 |
|
29 | 29 | class Code extends Base {
|
| 30 | + protected $saveDenyExtensions = ['php', 'tpl']; |
| 31 | + |
30 | 32 | function dirForType($type) {
|
31 | 33 | switch ($type) {
|
32 | 34 | case 'public':
|
@@ -93,11 +95,18 @@ function save() {
|
93 | 95 |
|
94 | 96 | $message = ['success' => false, 'message' => sprintf(__('Error saving: %s!'), $file)];
|
95 | 97 |
|
96 |
| - if (! is_writable($file)) { |
97 |
| - $message = ['success' => false, 'message' => sprintf(__('File not writable: %s Check if file has write permission.'), $file)]; |
| 98 | + $extension = strtolower(substr($file, strrpos($file, '.') + 1)); |
| 99 | + |
| 100 | + if (in_array($extension, $this->saveDenyExtensions)) { |
| 101 | + $message = ['success' => false, 'message' => sprintf(__('Saving not allowed for file type %s!'), trim($extension, '.'))]; |
| 102 | + $success = false; |
98 | 103 | } else {
|
99 |
| - if (file_put_contents($file, $content)) { |
100 |
| - $message = ['success' => true, 'message' => __('File saved!')]; |
| 104 | + if (! is_writable($file)) { |
| 105 | + $message = ['success' => false, 'message' => sprintf(__('File not writable: %s Check if file has write permission.'), $file)]; |
| 106 | + } else { |
| 107 | + if (file_put_contents($file, $content)) { |
| 108 | + $message = ['success' => true, 'message' => __('File saved!')]; |
| 109 | + } |
101 | 110 | }
|
102 | 111 | }
|
103 | 112 |
|
|
0 commit comments