3 * FusionForge Documentation Manager
5 * Copyright 2000, Quentin Cregan/Sourceforge
6 * Copyright 2002-2003, Tim Perdue/GForge, LLC
7 * Copyright 2010, Franck Villaume - Capgemini
9 * This file is part of FusionForge.
11 * FusionForge is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published by
13 * the Free Software Foundation; either version 2 of the License, or
14 * (at your option) any later version.
16 * FusionForge is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
21 * You should have received a copy of the GNU General Public License
22 * along with FusionForge; if not, write to the Free Software
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26 /* please do not add require here : use www/docman/index.php to add require */
27 /* global variables used */
28 global $g; //group object
29 global $dirid; //id of doc_group
30 global $group_id; // id of group
32 if (!forge_check_perm('docman', $group_id, 'approve')) {
33 $return_msg = _('Document Action Denied.');
34 session_redirect('/docman/?group_id='.$group_id.'&view=listfile&dirid='.$dirid.'&warning_msg='.urlencode($return_msg));
36 $doc_group = getIntFromRequest('doc_group');
37 $docid = getIntFromRequest('docid');
38 $title = getStringFromRequest('title');
39 $description = getStringFromRequest('description');
40 $data = getStringFromRequest('details'.$docid);
41 $file_url = getStringFromRequest('file_url');
42 $uploaded_data = getUploadedFile('uploaded_data');
43 $stateid = getIntFromRequest('stateid');
44 $filetype = getStringFromRequest('filetype');
45 $editor = getStringFromRequest('editor');
46 $fromview = getStringFromRequest('fromview');
47 if ( 'admin' == $fromview ) {
48 $urlparam = '&view='.$fromview;
50 $urlparam = '&view=listfile&dirid='.$doc_group;
53 $d= new Document($g,$docid,false,$gfcommon.'docman/engine/');
55 session_redirect('/docman/?group_id='.$group_id.$urlparam.'&error_msg='.urlencode($d->getErrorMessage()));
57 $sanitizer = new TextSanitizer();
58 $data = $sanitizer->SanitizeHtml($data);
59 if (($editor) && ($d->getFileData()!=$data) && (!$uploaded_data['name'])) {
60 $filename = $d->getFileName();
62 $filetype = $d->getFileType();
64 } elseif (!empty($uploaded_data) && $uploaded_data['name']) {
65 if (!is_uploaded_file($uploaded_data['tmp_name'])) {
66 $return_msg = sprintf(_('Invalid file attack attempt %1$s.'), $uploaded_data['name']);
67 session_redirect('/docman/?group_id='.$group_id.$urlparam.'&error_msg='.urlencode($return_msg));
69 $data = fread(fopen($uploaded_data['tmp_name'], 'r'), $uploaded_data['size']);
70 $filename = $uploaded_data['name'];
71 $filetype = $uploaded_data['type'];
72 } elseif ($file_url) {
74 $filename = $file_url;
77 $filename = $d->getFileName();
78 $filetype = $d->getFileType();
80 if (!$d->update($filename, $filetype, $data, $doc_group, $title, $description, $stateid))
81 session_redirect('/docman/?group_id='.$group_id.$urlparam.'&error_msg='.urlencode($d->getErrorMessage()));
83 $return_msg = _('Document Updated successfully.');
84 session_redirect('/docman/?group_id='.$group_id.$urlparam.'&feedback='.urlencode($return_msg));