|
40 | 40 |
|
41 | 41 | // Upload allegati e rimozione |
42 | 42 | if (filter('op') == 'aggiungi-allegato' || filter('op') == 'rimuovi-allegato') { |
43 | | - // Controllo sui permessi di scrittura per il modulo |
44 | | - $has_write_permission = false; |
45 | | - |
46 | | - // Verifica permessi in base al tipo di accesso |
47 | | - if (Permissions::isTokenAccess()) { |
48 | | - // Per accesso tramite token, verifica i permessi del token |
49 | | - $token_info = $_SESSION['token_access']; |
50 | | - $token_permission = $token_info['permessi'] ?? 'r'; |
51 | | - |
52 | | - // Per gli allegati, verifica i permessi specifici del token |
53 | | - if (filter('op') == 'aggiungi-allegato') { |
54 | | - // Caricamento allegati: permessi 'ra', 'rwa' o 'rw' |
55 | | - $has_write_permission = in_array($token_permission, ['ra', 'rwa', 'rw']); |
56 | | - } elseif (filter('op') == 'rimuovi-allegato') { |
57 | | - // Rimozione allegati: solo permessi 'rwa' o 'rw' |
58 | | - $has_write_permission = in_array($token_permission, ['rwa', 'rw']); |
59 | | - } |
60 | | - } else { |
61 | | - // Per accesso normale, usa i permessi standard del modulo |
62 | | - $has_write_permission = (Modules::getPermission($id_module) == 'rw'); |
63 | | - } |
| 43 | + // UPLOAD PER CKEDITOR |
| 44 | + if (filter('op') == 'aggiungi-allegato' && !empty($_FILES) && !empty($_FILES['upload']['name'])) { |
| 45 | + $CKEditor = get('CKEditor'); |
| 46 | + $funcNum = get('CKEditorFuncNum'); |
64 | 47 |
|
65 | | - if (!$has_write_permission) { |
66 | | - flash()->error(tr('Non hai permessi di scrittura per il modulo _MODULE_', [ |
67 | | - '_MODULE_' => '"'.Module::find($id_module)->getTranslation('title').'"', |
68 | | - ])); |
69 | | - } |
| 48 | + $allowed_extension = [ |
| 49 | + 'png', 'jpg', 'jpeg', |
| 50 | + ]; |
| 51 | + |
| 52 | + // Maximum file limit (unit: byte) |
| 53 | + $max_size = '2097152'; // 2MB |
70 | 54 |
|
71 | | - // Gestione delle operazioni |
72 | | - else { |
73 | | - // UPLOAD PER CKEDITOR |
74 | | - if (filter('op') == 'aggiungi-allegato' && !empty($_FILES) && !empty($_FILES['upload']['name'])) { |
75 | | - $CKEditor = get('CKEditor'); |
76 | | - $funcNum = get('CKEditorFuncNum'); |
| 55 | + // Get image file extension |
| 56 | + $file_extension = pathinfo($_FILES['upload']['name'], PATHINFO_EXTENSION); |
| 57 | + |
| 58 | + if (in_array(strtolower($file_extension), $allowed_extension) && $_FILES['upload']['size'] < $max_size) { |
| 59 | + $upload = Uploads::upload($_FILES['upload'], [ |
| 60 | + 'name' => filter('nome_allegato'), |
| 61 | + 'id_category' => filter('id_category') ?: null, |
| 62 | + 'id_module' => Module::where('name', 'Gestione documentale')->first()->id, |
| 63 | + 'id_record' => $id_record, |
| 64 | + ]); |
77 | 65 |
|
78 | | - $allowed_extension = [ |
79 | | - 'png', 'jpg', 'jpeg', |
80 | | - ]; |
| 66 | + // Upload da form |
| 67 | + if (!empty($funcNum)) { |
| 68 | + echo ' |
| 69 | + <link rel="stylesheet" type="text/css" href="'.$baseurl.'/assets/dist/css/app.min.css" /> |
| 70 | + <script src="'.$baseurl.'/assets/dist/js/app.min.js"></script>'; |
| 71 | + } |
81 | 72 |
|
82 | | - // Maximum file limit (unit: byte) |
83 | | - $max_size = '2097152'; // 2MB |
| 73 | + // Creazione file fisico |
| 74 | + if (!empty($upload)) { |
| 75 | + // flash()->info(tr('File caricato correttamente!')); |
84 | 76 |
|
85 | | - // Get image file extension |
86 | | - $file_extension = pathinfo($_FILES['upload']['name'], PATHINFO_EXTENSION); |
| 77 | + $id_allegato = $dbo->lastInsertedID(); |
| 78 | + $upload = Upload::find($id_allegato); |
87 | 79 |
|
88 | | - if (in_array(strtolower($file_extension), $allowed_extension) && $_FILES['upload']['size'] < $max_size) { |
89 | | - $upload = Uploads::upload($_FILES['upload'], [ |
90 | | - 'name' => filter('nome_allegato'), |
91 | | - 'id_category' => filter('id_category') ?: null, |
92 | | - 'id_module' => Module::where('name', 'Gestione documentale')->first()->id, |
93 | | - 'id_record' => $id_record, |
94 | | - ]); |
| 80 | + $response = [ |
| 81 | + 'fileName' => base_path().'/files/gestione_documentale/'.basename($upload->filename), |
| 82 | + 'uploaded' => 1, |
| 83 | + 'url' => base_path().'/files/gestione_documentale/'.$upload->filename, |
| 84 | + ]; |
95 | 85 |
|
96 | 86 | // Upload da form |
97 | 87 | if (!empty($funcNum)) { |
98 | 88 | echo ' |
99 | | - <link rel="stylesheet" type="text/css" href="'.$baseurl.'/assets/dist/css/app.min.css" /> |
100 | | - <script src="'.$baseurl.'/assets/dist/js/app.min.js"></script>'; |
| 89 | + <script type="text/javascript"> |
| 90 | + $(document).ready(function() { |
| 91 | + window.parent.toastr.success("'.tr('Caricamento riuscito').'"); |
| 92 | + window.parent.CKEDITOR.tools.callFunction('.$funcNum.', "'.$baseurl.'/files/gestione_documentale/'.$upload->filename.'"); |
| 93 | + }); |
| 94 | + </script>'; |
101 | 95 | } |
102 | 96 |
|
103 | | - // Creazione file fisico |
104 | | - if (!empty($upload)) { |
105 | | - // flash()->info(tr('File caricato correttamente!')); |
106 | | - |
107 | | - $id_allegato = $dbo->lastInsertedID(); |
108 | | - $upload = Upload::find($id_allegato); |
109 | | - |
110 | | - $response = [ |
111 | | - 'fileName' => base_path().'/files/gestione_documentale/'.basename($upload->filename), |
112 | | - 'uploaded' => 1, |
113 | | - 'url' => base_path().'/files/gestione_documentale/'.$upload->filename, |
114 | | - ]; |
115 | | - |
116 | | - // Upload da form |
117 | | - if (!empty($funcNum)) { |
118 | | - echo ' |
119 | | - <script type="text/javascript"> |
120 | | - $(document).ready(function() { |
121 | | - window.parent.toastr.success("'.tr('Caricamento riuscito').'"); |
122 | | - window.parent.CKEDITOR.tools.callFunction('.$funcNum.', "'.$baseurl.'/files/gestione_documentale/'.$upload->filename.'"); |
123 | | - }); |
124 | | - </script>'; |
125 | | - } |
126 | | - |
127 | | - // Copia-incolla |
128 | | - else { |
129 | | - echo json_encode($response); |
130 | | - } |
131 | | - } else { |
132 | | - // flash()->error(tr('Errore durante il caricamento del file!')); |
133 | | - echo '<script type="text/javascript"> window.parent.toastr.error("'.tr('Errore durante il caricamento del file!').'"); </script>'; |
| 97 | + // Copia-incolla |
| 98 | + else { |
| 99 | + echo json_encode($response); |
134 | 100 | } |
135 | 101 | } else { |
136 | | - // flash()->error(tr('Estensione non permessa!')); |
137 | | - echo '<script type="text/javascript"> window.parent.toastr.error("'.tr('Estensione non permessa').'"); </script>'; |
138 | | - } |
139 | | - |
140 | | - exit; |
141 | | - } |
142 | | - |
143 | | - // UPLOAD |
144 | | - if (filter('op') == 'aggiungi-allegato' && !empty($_FILES) && !empty($_FILES['file']['name'])) { |
145 | | - $upload = Uploads::upload($_FILES['file'], [ |
146 | | - 'name' => filter('nome_allegato'), |
147 | | - 'id_category' => filter('id_category') ?: null, |
148 | | - 'id_module' => $id_module, |
149 | | - 'id_plugin' => $id_plugin, |
150 | | - 'id_record' => $id_record, |
151 | | - 'key' => filter('key') ?: null, |
152 | | - ]); |
153 | | - |
154 | | - // Creazione file fisico |
155 | | - if (!empty($upload)) { |
156 | | - flash()->info(tr('File caricato correttamente!')); |
157 | | - } else { |
158 | | - flash()->error(tr('Errore durante il caricamento del file!')); |
| 102 | + // flash()->error(tr('Errore durante il caricamento del file!')); |
| 103 | + echo '<script type="text/javascript"> window.parent.toastr.error("'.tr('Errore durante il caricamento del file!').'"); </script>'; |
159 | 104 | } |
| 105 | + } else { |
| 106 | + // flash()->error(tr('Estensione non permessa!')); |
| 107 | + echo '<script type="text/javascript"> window.parent.toastr.error("'.tr('Estensione non permessa').'"); </script>'; |
160 | 108 | } |
161 | 109 |
|
162 | | - // DELETE |
163 | | - elseif (filter('op') == 'rimuovi-allegato' && filter('filename') !== null) { |
164 | | - $name = Uploads::delete(filter('filename'), [ |
165 | | - 'id_module' => $id_module, |
166 | | - 'id_plugin' => $id_plugin, |
167 | | - 'id_record' => $id_record, |
168 | | - 'key' => filter('key') ?: null, |
169 | | - ]); |
| 110 | + exit; |
| 111 | + } |
170 | 112 |
|
171 | | - if (!empty($name)) { |
172 | | - flash()->info(tr('File _FILE_ eliminato!', [ |
173 | | - '_FILE_' => '"'.$name.'"', |
174 | | - ])); |
175 | | - } else { |
176 | | - flash()->error(tr("Errore durante l'eliminazione del file!")); |
177 | | - } |
| 113 | + // UPLOAD |
| 114 | + if (filter('op') == 'aggiungi-allegato' && !empty($_FILES) && !empty($_FILES['file']['name'])) { |
| 115 | + $upload = Uploads::upload($_FILES['file'], [ |
| 116 | + 'name' => filter('nome_allegato'), |
| 117 | + 'id_category' => filter('id_category') ?: null, |
| 118 | + 'id_module' => $id_module, |
| 119 | + 'id_plugin' => $id_plugin, |
| 120 | + 'id_record' => $id_record, |
| 121 | + 'key' => filter('key') ?: null, |
| 122 | + ]); |
| 123 | + |
| 124 | + // Creazione file fisico |
| 125 | + if (!empty($upload)) { |
| 126 | + flash()->info(tr('File caricato correttamente!')); |
| 127 | + } else { |
| 128 | + flash()->error(tr('Errore durante il caricamento del file!')); |
178 | 129 | } |
| 130 | + } |
179 | 131 |
|
180 | | - // Determina il redirect appropriato in base al tipo di accesso |
181 | | - if (Permissions::isTokenAccess() && !empty($_SESSION['token_access']['id_module_target']) && !empty($_SESSION['token_access']['id_record_target'])) { |
182 | | - // Per accesso tramite token, redirect a shared_editor.php |
183 | | - redirect(base_path().'/shared_editor.php?id_module='.$id_module.'&id_record='.$id_record.((!empty($options['id_plugin'])) ? '#tab_'.$options['id_plugin'] : '')); |
| 132 | + // DELETE |
| 133 | + if (filter('op') == 'rimuovi-allegato' && filter('filename') !== null) { |
| 134 | + $name = Uploads::delete(filter('filename'), [ |
| 135 | + 'id_module' => $id_module, |
| 136 | + 'id_plugin' => $id_plugin, |
| 137 | + 'id_record' => $id_record, |
| 138 | + 'key' => filter('key') ?: null, |
| 139 | + ]); |
| 140 | + |
| 141 | + if (!empty($name)) { |
| 142 | + flash()->info(tr('File _FILE_ eliminato!', [ |
| 143 | + '_FILE_' => '"'.$name.'"', |
| 144 | + ])); |
184 | 145 | } else { |
185 | | - // Per accesso normale, redirect a editor.php |
186 | | - redirect(base_path().'/editor.php?id_module='.$id_module.'&id_record='.$id_record.((!empty($options['id_plugin'])) ? '#tab_'.$options['id_plugin'] : '')); |
| 146 | + flash()->error(tr("Errore durante l'eliminazione del file!")); |
187 | 147 | } |
188 | 148 | } |
| 149 | + |
| 150 | + // Determina il redirect appropriato in base al tipo di accesso |
| 151 | + if (Permissions::isTokenAccess() && !empty($_SESSION['token_access']['id_module_target']) && !empty($_SESSION['token_access']['id_record_target'])) { |
| 152 | + // Per accesso tramite token, redirect a shared_editor.php |
| 153 | + redirect(base_path().'/shared_editor.php?id_module='.$id_module.'&id_record='.$id_record.((!empty($options['id_plugin'])) ? '#tab_'.$options['id_plugin'] : '')); |
| 154 | + } else { |
| 155 | + // Per accesso normale, redirect a editor.php |
| 156 | + redirect(base_path().'/editor.php?id_module='.$id_module.'&id_record='.$id_record.((!empty($options['id_plugin'])) ? '#tab_'.$options['id_plugin'] : '')); |
| 157 | + } |
189 | 158 | } |
190 | 159 |
|
191 | 160 | // Download allegati |
192 | | -elseif (filter('op') == 'download-allegato') { |
| 161 | +if (filter('op') == 'download-allegato') { |
193 | 162 | $rs = $dbo->fetchArray('SELECT * FROM zz_files WHERE id_module='.prepare($id_module).' AND id='.prepare(filter('id')).' AND filename='.prepare(filter('filename'))); |
194 | 163 |
|
195 | 164 | // download($upload_dir.'/'.$rs[0]['filename'], $rs[0]['original']); |
|
0 commit comments