]> git.p6c8.net - selfforum.git/blobdiff - selfforum-cgi/user/fo_posting.pl
fo_arcview.pl and Archive.pm should now be nearly ready to go online. TODO: Some...
[selfforum.git] / selfforum-cgi / user / fo_posting.pl
index 180233cf755a2ce3ce6c347d2b009d772e3544f3..1fe42a9d8104a3b612c5e1780221cc2e0db8b8d8 100644 (file)
@@ -62,6 +62,10 @@ $request -> handle_error or $request -> save;
 #
 $request -> response;
 
+# shorten the main file?
+#
+$request -> severance;
+
 #
 #
 ### main end ###################################################################
@@ -70,6 +74,7 @@ $request -> response;
 ### Posting::Request ###########################################################
 package Posting::Request;
 
+use Arc::Archive;
 use CheckRFC;
 use Encode::Plain; $Encode::Plain::utf8 = 1; # generally convert from UTF-8
 use Encode::Posting;
@@ -124,6 +129,21 @@ sub new {
   bless $self, $class;
 }
 
+sub severance {
+  my $self = shift;
+
+  my $stat = cut_tail ({
+    forumFile    => $self -> {conf} -> {forum_file_name},
+    messagePath  => $self -> {conf} -> {message_path},
+    archivePath  => $self -> {conf} -> {original} -> {files} -> {archivePath},
+    lockFile     => $self -> {conf} -> {original} -> {files} -> {sev_lock},
+    adminDefault => $self -> {conf} -> {admin},
+    cachePath    => $self -> {conf} -> {original} -> {files} -> {cachePath}
+  });
+#  die $stat->{(keys %$stat)[0]} if (%$stat);
+
+}
+
 ### sub response ###############################################################
 #
 # print the response to STDOUT
@@ -430,7 +450,7 @@ sub save {
           };
         }
         else {
-          my $cache = new Posting::Cache ($self->{conf}->{original}->{files}->{cacheFile});
+          my $cache = new Posting::Cache ($self->{conf}->{original}->{files}->{cachePath});
           $cache -> add_posting (
             { thread  => ($tid =~ /(\d+)/)[0],
               posting => ($mid =~ /(\d+)/)[0]
@@ -763,7 +783,7 @@ sub check_cgi {
     #
     my ($ftid, $fmid) = split /;/ => $q -> param ($formdata -> {followUp} -> {name}) => 2;
 
-    unless ($ftid =~ /\d+/ and $fmid =~ /\d+/) {
+    unless ($ftid =~ /^\d+$/ and $fmid =~ /^\d+$/) {
       $self -> {error} = {
         spec => 'unknown_followup',
         type => 'fatal'
@@ -860,6 +880,16 @@ sub check_cgi {
         };
         $self -> kill_param or return;
       }
+
+      elsif ($formdata -> {$name {$_}} -> {type} eq 'unique-id' and not may_id $val) {
+        $self -> {error} = {
+          spec => 'wrong_unique_id',
+          desc => $name{$_},
+          type => $formdata -> {$name {$_}} -> {errorType}
+        };
+          print STDERR "Manipuliert!";
+        $self -> kill_param or return;
+      }
     }
 
     if (exists ($formdata -> {$name {$_}} -> {values})

patrick-canterino.de