bug-gnats
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

pr-edit 4.0-beta1


From: Renate Wahl
Subject: pr-edit 4.0-beta1
Date: Fri, 10 May 2002 13:32:32 +0200

Hallo, 
I have a problem. I use pr-edit 4.0-beta1 in a perlscript from a
webinterface. I get the information  "Die Änderungen wurden erfolgreich
durchgeführt !" on my website and the mail of the changed trouble
ticket.
But the trouble ticket in the gnats-db isn't changed. Where is the
output of pr-edit? In version 3 it works fine.
I attach the perlsscript. Perhaps you can give me a tip, where is my
error. I tested many variations and options of pr-edit, but no helps.
Best regards,
Renate Wahl





#!/usr/bin/perl

push(@INC,'/www/tts/ttneu/cgi-bin');

require 'config.pl';
require 'util.pl';

$predit = $gnats_lib . "/pr-edit";
$praddr = $gnats_lib . "/pr-addr";
$retry_limit = 2;

$len = $ENV{"CONTENT_LENGTH"};

read(STDIN,$query,$len);

&printheader("CONFIRM");

foreach (split(/&/,$query)) {
        ($key,$value) = split(/=/);
        $value =~ s/\+/ /g;
        $value =~ s/%([0-9A-F]{2})/pack('C',hex($1))/eig;
        if ($form{$key}) {
                $form{$key} .= ",$value";
        }
        else {
                $form{$key} = $value;
        }
}

if (&checkyppasswd($form{whochanged},$form{passwd})) {

  $mailmsg = "";
  $mailto = "";
  $mail = 0;

  if ($form{catfrom} ne "") {
    $mailmsg .= "Kategorie-geändert-von-in: " . $form{catfrom}."-->
".$form{catto} . "\n";
    $mailmsg .= "Kategorie-geändert-durch: " . $form{whochanged} . 
"\n";
    $mailmsg .= "Kategorie-geändert-wann: " . $form{changetime} . "
\n";
    $mailmsg .= "Kategorie-geändert-warum:\n" . $form{catchange} . 
"\n";
    $newresp = &getrespfromcat($form{catto});
    $mail = 1;
  }

  if ($form{sevfrom} ne "") {
    $mailmsg .= "Schwere-geändert-von-in: " . $form{sevfrom}."-->".
$form{sevto}."\n";
    $mailmsg .= "Schwere-geändert-durch: " . $form{whochanged} ."\n
";
    $mailmsg .= "Schwere-geändert-wann: " . $form{changetime} . "\n
";
  }

  if ($form{prifrom} ne "") {
    $mailmsg .= "Priorität-geändert-von-in: " . $form{prifrom}."-->
".$form{prito}."\n";
    $mailmsg .= "Priorität-geändert-durch: " . $form{whochanged} . 
"\n";
    $mailmsg .= "Priorität-geändert-wann: " . $form{changetime} . "
\n";
  }

  if ($form{respfrom} ne "") {
    $mailmsg .= "Verantwortliche(r)-geändert-von-in: " . $form{resp
from}."-->".$form{respto}."\n";
    $mailmsg .= "Verantwortliche(r)-geändert-durch: " . $form{whoch
anged} . "\n";
    $mailmsg .= "Verantwortliche(r)-geändert-wann: " . $form{change
time} . "\n";
    $mailmsg .= "Verantwortliche(r)-geändert-warum:\n" . $form{resp
change} . "\n";
    $newresp = $form{respto};
    $mail = 1;
  }

  if ($form{statefrom} ne "") {
    $mailmsg .= "Status-geändert-von-in: " . $form{statefrom}."-->"
.$form{stateto}."\n";
    $mailmsg .= "Status-geändert-durch: " . $form{whochanged} . "\n
";
    $mailmsg .= "Status-geändert-wann: " . $form{changetime} . "\n"
;
    $mailmsg .= "Status-geändert-warum:\n" . $form{statechange} . "
\n";
    $mail = 1;
  }

  if (($form{fixfrom} ne "") || ($form{fixto} ne "")) {
    $mailmsg .= "Korrektur-geändert-von-in: \n" . $form{fixfrom}."-
->\n".$form{fixto}."\n";
    $mailmsg .= "Korrektur-geändert-durch: " . $form{whochanged} . 
"\n";
    $mailmsg .= "Korrektur-geändert-wann: " . $form{changetime} . "
\n";
  }

  if ($mailmsg ne "") {
    $mailmsg .= "---"."\n";
  }

  $header = "";
  open(HDR,"/tmp/hdr$form{tempid}");
  while(<HDR>) {
    $header .=  $_;
    if(/^From:\s*(.*)$/) {
        $from = $1;
    }
    elsif (/Reply-To:\s*(.*)$/) {
        $replyto = $1;
    }
  }  close(HDR);

  if ($replyto) {
    $mailto = $replyto;
  }
  else {
    $mailto = $from;
  }

  if ($newresp ne "") {
    $mailto .= ", " . `$praddr $newresp`;
    chop($mailto);
  }

  $newpr = "/tmp/pr$form{tempid}";
  open(TMPPR,$newpr) || die( "Cannot open $newpr\n");
  $completepr = "/tmp/newpr$$";
  open(NEWPR,">$completepr") || die("Cannot open $completepr for wr
iting\n");
        sleep(60);
  print NEWPR $header,"\n";
  while(<TMPPR>) {
    if (/^>Unformatted:/) {
        if ($mailmsg ne "") {
            print NEWPR $mailmsg;
        }
    }
    print NEWPR $_;
  }
  close (NEWPR);
  close (TMPPR);





  $lockmsg = "/tmp/lock$form{tempid}";
  $retries = 0;
  $env{'SHELL'} = "/bin/sh";
  system("$predit --lock=$form{whochanged} $form{Number} 2>$lockmsg
");
  while ((-s $lockmsg) && ($retries < $retry_limit)) {
     sleep(60);
     $retries++;
     system("$predit --lock=$form{whochanged} $form{Number} 2>$lock
msg");
  }
  unlink($lockmsg);
  if ($retries >= $retry_limit) {
     print "<h2>Die St&ouml;rungsmeldung wird z.Zt. von anderer Ste
lle bearbeitet, ";
     print "&Auml;nderungen k&ouml;nnen nicht durchgef&uuml;hrt wer
den ! <br>";
     print "Bitte versuchen Sie es sp&auml;ter erneut.</h2>";
  }
  else {
     open(PR,"$gnats_bin/query-pr --full $form{Number} |");
     %oldform = &decodeform(PR);
     close(PR);
     $oldform{"Audit-Trail"} =~ s/\n/<br>/g;
     if ($oldform{"Audit-Trail"} ne $form{"Audit-Trail"}) {
       print "<h2>Die St&ouml;rungsmeldung wurde zwischenzeitlich v
on anderer ";
       print "Stelle bearbeitet, bitte 'Editieren' erneut aufrufen 
!</h2>";
       system("$predit --unlock $form{Number}");
     }
     else {
       system("$predit $form{Number} <$completepr ");
sleep(60);
       system("$predit --unlock $form{Number}");
       if ($mail) {
         open(SENDMAIL,"| $sendmail") || die("Cannot open pipe to $
sendmail");
         print SENDMAIL "From: bugs\@tts.rz.uni-jena.de\n";
         print SENDMAIL "To: $mailto\n";
         print SENDMAIL "Cc: ",&getadm,"\@tts.rz.uni-jena.de\n";
         print SENDMAIL "Subject: Changed information for $form{ful
lid}:$form{Synopsis}\n\n";
         $mailmsg =~ s/ä/ae/g;
         print SENDMAIL $mailmsg, "\n";
         print SENDMAIL "\nAktueller Stand:\n";
         open(PR, $newpr) || die("Cannot open $newpr");
         while(<PR>) {
            print SENDMAIL $_;
         }
         close(PR);
         close(SENDMAIL);
       }
       print "<h2>Die &Auml;nderungen wurden erfolgreich durchgef&u
uml;hrt !</h2>\n";
     }
     unlink($completepr);
  }
  unlink($newpr);
}

elsif ($form{whochanged} ne "99999999999") {

  print "<h2>Kennzeichen und/oder Pa&szlig;wort fehlerhaft, ";
  print "&Auml;nderungen wurden nicht durchgef&uuml;hrt !</h2>";
  print "<hr>";
  print "Die Bearbeitung von St&ouml;rungsmeldungen ist nur durch "
;
  print "angemeldete Nutzer m&ouml;glich.<br>";

}

else {

  print "<h2>Keine &Auml;nderungen !</h2>";
}





-- 
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
I E - MAIL : zrw@rz.uni-jena.de   I   Renate Wahl                I
I Phone    : ( +49 03641) 940530  I   Rechenzentrum der FSU Jena I
I FAX      : ( +49 03641) 940630  I   Am Johannisfriedhof 2      I
I                                 I   07743 Jena                 I 
I                                 I   Germany                    I
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+




reply via email to

[Prev in Thread] Current Thread [Next in Thread]