do not know what this is... testing
authorHeiko Schlittermann (JUMPER) <hs@schlittermann.de>
Fri, 17 Feb 2012 14:28:33 +0100
branchtesting
changeset 22 35e487d91ad9
parent 21 d1d25ca0be3f
child 23 7d003f241139
do not know what this is...
tt2/admin
upload.pl
--- 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) {