4 * FusionForge Documentation Manager
6 * Copyright 2000, Quentin Cregan/Sourceforge
7 * Copyright 2002-2003, Tim Perdue/GForge, LLC
8 * Copyright 2010, Franck Villaume - Capgemini
10 * This file is part of FusionForge.
12 * FusionForge is free software; you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License as published by
14 * the Free Software Foundation; either version 2 of the License, or
15 * (at your option) any later version.
17 * FusionForge is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details.
22 * You should have received a copy of the GNU General Public License
23 * along with FusionForge; if not, write to the Free Software
24 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
27 /* please do not add require here : use www/docman/index.php to add require */
28 /* global variables used */
29 global $g; //group object
30 global $dirid; //id of doc_group
31 global $group_id; // id of group
33 if (!forge_check_perm('docman', $group_id, 'approve')) {
34 $return_msg = _('Document Action Denied');
35 session_redirect('/docman/?group_id='.$group_id.'&view=listfile&dirid='.$dirid.'&warning_msg='.urlencode($return_msg));
37 $doc_group = getIntFromRequest('doc_group');
38 $docid = getIntFromRequest('docid');
39 $title = getStringFromRequest('title');
40 $description = getStringFromRequest('description');
41 $data = getStringFromRequest('details'.$docid);
42 $file_url = getStringFromRequest('file_url');
43 //$ftp_filename = getStringFromRequest('ftp_filename');
44 $uploaded_data = getUploadedFile('uploaded_data');
45 $stateid = getIntFromRequest('stateid');
46 $filetype = getStringFromRequest('filetype');
47 $editor = getStringFromRequest('editor');
48 $fromview = getStringFromRequest('fromview');
49 if ( 'admin' == $fromview ) {
50 $urlparam = '&view='.$fromview;
52 $urlparam = '&view=listfile&dirid='.$doc_group;
55 $d= new Document($g,$docid,false,$gfcommon.'docman/engine/');
57 session_redirect('/docman/?group_id='.$group_id.$urlparam.'&error_msg='.urlencode($d->getErrorMessage()));
59 $sanitizer = new TextSanitizer();
60 $data = $sanitizer->SanitizeHtml($data);
61 if (($editor) && ($d->getFileData()!=$data) && (!$uploaded_data['name'])) {
62 $filename = $d->getFileName();
64 $filetype = $d->getFileType();
66 } elseif (!empty($uploaded_data) && $uploaded_data['name']) {
67 if (!is_uploaded_file($uploaded_data['tmp_name'])) {
68 $return_msg = sprintf(_('Invalid file attack attempt %1$s'), $uploaded_data['name']);
69 session_redirect('/docman/?group_id='.$group_id.$urlparam.'&error_msg='.urlencode($return_msg));
72 $data = fread(fopen($uploaded_data['tmp_name'], 'r'), $uploaded_data['size']);
73 $filename=$uploaded_data['name'];
74 $filetype=$uploaded_data['type'];
75 } elseif ($file_url) {
80 } elseif (forge_get_config('use_ftp_uploads') && $ftp_filename!=100) { //100==None
81 $filename=$upload_dir.'/'.$ftp_filename;
82 $data = fread(fopen($filename, 'r'), filesize($filename));
83 $filetype=$uploaded_data_type;
84 } elseif (forge_get_config('use_manual_uploads') && $uploaded_filename!=100 && util_is_valid_filename($uploaded_filename)) { //100==None
85 $incoming = forge_get_config('groupdir_prefix')."/".$g->getUnixName()."/incoming" ;
86 $filename = $incoming.'/'.$uploaded_filename;
87 $data = addslashes(fread(fopen($filename, 'r'), filesize($filename)));
88 $finfo = finfo_open (FILEINFO_MIME_TYPE) ;
89 $filetype = finfo_file($finfo, $filename) ;
90 finfo_close ($finfo) ;
93 $filename=$d->getFileName();
94 $filetype=$d->getFileType();
96 if (!$d->update($filename,$filetype,$data,$doc_group,$title,$description,$stateid))
97 session_redirect('/docman/?group_id='.$group_id.$urlparam.'&error_msg='.urlencode($d->getErrorMessage()));
99 $return_msg = _('Document Updated successfully');
100 session_redirect('/docman/?group_id='.$group_id.$urlparam.'&feedback='.urlencode($return_msg));