do not know what this is...
--- a/tt2/admin Fri May 27 17:11:58 2011 +0200
+++ b/tt2/admin Fri Feb 17 14:28:33 2012 +0100
@@ -5,6 +5,17 @@
<div align="right">
[ <a href="?">home</a>]
</div>
+<h1>Ansicht [%view ? view : "[unbekannt]"%]</h1>
+
+<form method="POST">
+ <label for="user">Neuer Nutzer:</label>
+ <input type="text" id="user" name="user"/>
+ <input type="submit" name=".user" value="Anlegen"/>
+</form>
+
[%INCLUDE footer%]
</body>
</html>
+<!--
+ vim:ft=html
+-->
--- a/upload.pl Fri May 27 17:11:58 2011 +0200
+++ b/upload.pl Fri Feb 17 14:28:33 2012 +0100
@@ -24,7 +24,7 @@
use strict;
use warnings;
use Cwd qw(abs_path);
-use CGI qw(:all *table);
+use CGI qw(:cgi);
use CGI::Carp qw(fatalsToBrowser);
use CGI::Pretty;
use File::Basename;
@@ -36,7 +36,9 @@
my $DIR = "d/{view}";
my $DIR_URI = "./$DIR";
-sub human($);
+sub _human($);
+sub _upload($$);
+sub _get_files($$);
delete @ENV{ grep /PATH/, keys %ENV };
$ENV{PATH} = "/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin";
@@ -71,7 +73,7 @@
#
# delete is simple
- #
+ #
if (param("op") eq "rm") {
param("id") =~ /([-a-z\d]+-\d+)/i;
@@ -93,6 +95,8 @@
or die Template->error();
print header(-charset => "UTF-8");
$tt->process("admin" => {
+ view => $ENV{REMOTE_USER},
+ alink => "?op=admin",
}) or die $tt->error;
exit 0;
}
@@ -101,44 +105,64 @@
# it is an upload
#
- if (length(my $file = param("upload"))) {
- my $days = param("expires");
- my $expires;
- tie my $uuid => "OSSP::uuid::tie", "v4";
-
- # sanitize expires
- $days =~ /.*?(\d+).*/;
- $days = defined $1 ? $1 : 10;
- $expires = time + $days * 86400;
-
- # sanitizing the filename
- (my $filename = $file) =~ tr /\\/\//;
- $filename =~ /(.*)/;
- $filename = $1;
-
- my $dir = "$DIR/$uuid-$expires";
- mkdir $dir, 0750 or die "Can't mkdir $dir: $!\n";
- open(my $outfh, ">" => "$dir/$filename")
- or die "Can't create $dir/$filename: $!\n";
- print {$outfh} <$file>;
-
- if (open(my $atfh, "|-" => "at now + $days days")) {
- print {$atfh}
- "rm -f \"$dir/$filename\"\n",
- "rmdir \"$dir\"\n";
- close $atfh;
- }
+ if (length(param("upload"))) {
+ _upload(param("upload"), param("expires"));
}
- #
- # now check for existing files
+ my @files = _get_files($DIR, $DIR_URI);
+
+ #
+ # the rest uses some templates
#
+ my $tt = Template->new(%TT2_CONFIG) or die Template->error();
+ print header(-charset => "UTF-8");
+ $tt->process("overview" => {
+ alink => "?op=admin",
+ view => $ENV{REMOTE_USER},
+ directory => "$DIR | " . path_info() . " | " . url(-path => 0),
+ sel => { 7 => "selected" },
+ files => \@files,
+ }) or die $tt->error;
+ exit 0;
+}
+
+sub _upload($$) {
+ my ($file, $days) = @_;
+ my $expires;
+ tie my $uuid => "OSSP::uuid::tie", "v4";
+
+ # sanitize expires
+ $days =~ /.*?(\d+).*/;
+ $days = defined $1 ? $1 : 10;
+ $expires = time + $days * 86400;
+
+ # sanitizing the filename
+ (my $filename = $file) =~ tr /\\/\//;
+ $filename =~ /(.*)/;
+ $filename = $1;
+
+ my $dir = "$DIR/$uuid-$expires";
+ mkdir $dir, 0750 or die "Can't mkdir $dir: $!\n";
+ open(my $outfh, ">" => "$dir/$filename")
+ or die "Can't create $dir/$filename: $!\n";
+ print {$outfh} <$file>;
+
+ if (open(my $atfh, "|-" => "at now + $days days")) {
+ print {$atfh}
+ "rm -f \"$dir/$filename\"\n",
+ "rmdir \"$dir\"\n";
+ close $atfh;
+ }
+}
+
+sub _get_files($$) {
+ my ($base, $base_uri) = @_;
+
my @files;
- foreach (map { /(.*)/ } sort { -M $a <=> -M $b } glob "$DIR/*-*/*") {
+ foreach (map { /(.*)/ } sort { -M $a <=> -M $b } glob "$base/*-*/*") {
my ($file, $dir) = fileparse($_);
$dir = basename $dir;
- # $dir =~ /(?<hash>\S+)-(?<expires>\d+)$/ or next;
$dir =~ /(\S+)-(\d+)$/ or next;
my $hash = $1;
my $expires = $2;
@@ -150,32 +174,19 @@
}
push @files, {
- link => "$DIR_URI/$dir/$file",
+ link => "$base_uri/$dir/$file",
name => $file,
- size => human((stat $_)[7]),
+ size => _human((stat $_)[7]),
mtime => (stat $_)[9],
dtime => $expires,
dlink => "?op=rm&id=$dir",
}
}
-
- #
- # the rest uses some templates
- #
- my $tt = Template->new(%TT2_CONFIG) or die Template->error();
- print header(-charset => "UTF-8");
- $tt->process("overview" => {
- alink => "?op=admin",
- view => $ENV{REMOTE_USER},
- directory => $DIR,
- sel => { 7 => "selected" },
- files => \@files,
- }) or die $tt->error;
- exit 0;
+ return @files;
}
-sub human($) {
+sub _human($) {
my $_ = shift;
my @units = qw(B K M G T);
while (length int > 3 and @units) {