91 lines
3.0 KiB
Perl
Executable File
91 lines
3.0 KiB
Perl
Executable File
#!/usr/bin/perl
|
|
# addfile.cgi
|
|
# create file for Services with Tarantella
|
|
# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo --- license GNU GPL
|
|
# stta: (@#) 1.31051043346- [2004_01_29_102036]
|
|
|
|
require './stta-lib.pl';
|
|
&ReadParse();
|
|
if ( ! $access{'supervision'} ) { &redirect("index.cgi"); }
|
|
$postform = ($in{postform}) ? $in{postform} : "addfile";
|
|
$cgiPost = ($in{cgiPost}) ? $in{cgiPost} : "file";
|
|
$cgiName = ($in{cgiName}) ? $in{cgiName} : "addfile.cgi";
|
|
$wkdir = ($in{wkdir}) ? $in{wkdir} : eval("\$config{'$postform"."_path'}");
|
|
if ( ! $in{fName} ) { &redirect("index.cgi"); }
|
|
if ( ! $in{filePerm} ) { &redirect("index.cgi"); }
|
|
$filePerm= $in{'filePerm'};
|
|
if ( $postform eq "filemgr" ) { $postform="addfile"; }
|
|
$fName=$in{fName};
|
|
$cmd=$in{cmd};
|
|
if ( $in{fPerm} ) {
|
|
if ( substr($in{fPerm},0,1) ne "-" ) {
|
|
@l_target = split(/,/,$text{'f_perm_value'}, -1);
|
|
@l_target_tit = split(/,/,$text{'f_perm_desc'}, -1);
|
|
$nItems=0;
|
|
foreach $item (@l_target) {
|
|
if ( $item eq $in{fPerm} ) {
|
|
$fMode=$l_target_tit[$nItems];
|
|
$fPerm=substr($fMode,2,1);
|
|
last;
|
|
}
|
|
print $l_target_tit{$nItems};
|
|
$nItems++;
|
|
}
|
|
} else {
|
|
$fMode=$in{fPerm};
|
|
$fPerm=substr($fMode,2,1);
|
|
}
|
|
}
|
|
$perm=$in{perm};
|
|
if ( $perm ne "new" && substr($in{fPerm},1,3) eq "rwx" ) { $perm="all"; }
|
|
|
|
&headerstta(eval("\$text{'index_$postform'}"), "", $postform ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" );
|
|
print "<table width=100% border>\n";
|
|
print "<tr $tb> <td><font color='$revtext'><b>";
|
|
if ( $postform ne "addfile" ) { print $text{'create'}; }
|
|
print " ".eval("\$text{'titidx_$postform'}")."</b></td> </tr>\n";
|
|
print "<tr $cb> <td><table width=100%>\n";
|
|
|
|
if ( $fPerm ne "w" ) {
|
|
print "<tr><td>";
|
|
print &text('file_err',$text{'create'},$wkdir,$fName,$fMode);
|
|
print "</td></tr>\n";
|
|
&footHere;
|
|
exit 1;
|
|
}
|
|
$f_path=$wkdir."/".$fName;
|
|
if ( -e $f_path ) {
|
|
print "<tr><td>";
|
|
print &text('file_errexist',$wkdir,$fName);
|
|
print "</td></tr>\n";
|
|
&footHere;
|
|
exit 1;
|
|
}
|
|
$lnum = 0;
|
|
$in{'f_lines'} =~ s/\r//g;
|
|
&unlock_file($f_path);
|
|
unless ( open FILELIST,">$f_path" ) {
|
|
print "<tr><td>>";
|
|
print &text('file_err',$text{'create'},$wkdir,$fName,"");
|
|
print "</td></tr>\n";
|
|
&footHere;
|
|
exit 1;
|
|
}
|
|
print FILELIST $in{'f_lines'};
|
|
close(FILELIST);
|
|
|
|
&webmin_log("$text{create} ($perm) ","file","$f_path $fMode");
|
|
chown($config{run_exec_user}, 0, $f_path);
|
|
chmod(oct($filePerm), $f_path);
|
|
&webmin_log("$text{create} ($filePerm) ","file","$f_path $fMode");
|
|
&remote_filedo("write",$f_path);
|
|
print "</tr></td>\n";
|
|
print "<tr><td><b>$text{'user_made'} <b><i>$wkdir</i>/<b>$fName</b>\n";
|
|
if ( $debug gt 0 ) { print " ($fMode) ";}
|
|
print " </td></tr>\n";
|
|
print "</left><tr><tr></table></table><hr><p>\n";
|
|
&footer($config{'back_return'},$text{'index'});
|
|
print "<p><p><p>\n";
|
|
do "footer.pl";
|
|
exit;
|