Fixes from the 5.2.5 bugfix cycle.

This commit is contained in:
JT Smith 2003-04-18 22:30:57 +00:00
parent 6949f42a2c
commit afbcfc7d56
17 changed files with 2422 additions and 36 deletions

View file

@ -38,6 +38,7 @@ Contributing Translators.............AGOFER Ltda.
Andreas Graf Andreas Graf
Emiliano Grilli / Webopen Emiliano Grilli / Webopen
Ehab Heikal Ehab Heikal
Markus Hynna
Bart Jol / ProcoliX Bart Jol / ProcoliX
Mattias Kunkel / WERU AG Mattias Kunkel / WERU AG
Nils-Magne Kvammen Nils-Magne Kvammen
@ -47,6 +48,7 @@ Contributing Translators.............AGOFER Ltda.
orosor@yahoo.com.tw orosor@yahoo.com.tw
Paolo Pigati / Webopen Paolo Pigati / Webopen
Michael Ugilt Michael Ugilt
Michael Westlund
Zhou Xiaopeng Zhou Xiaopeng

View file

@ -7,6 +7,12 @@ upgrading from one version to the next, or even between multiple
versions. Be sure to heed the warnings contained herein as they will versions. Be sure to heed the warnings contained herein as they will
save you many hours of grief. save you many hours of grief.
5.2.5
--------------------------------------------------------------------
* You'll need to upgrade HTML::Parser to at least version 3.27.
5.2.0 5.2.0
-------------------------------------------------------------------- --------------------------------------------------------------------
* You'll need to add a section to the style sheet of each one of * You'll need to add a section to the style sheet of each one of

View file

@ -19,6 +19,7 @@ QnD INSTALL INSTRUCTIONS:
DBD::mysql DBD::mysql
Digest::MD5 Digest::MD5
Date::Calc Date::Calc
HTML::Parser (3.27+)
Image::Magick (optional) Image::Magick (optional)
Cache::FileCache (optional) Cache::FileCache (optional)

File diff suppressed because it is too large Load diff

View file

@ -261,7 +261,7 @@ sub getIcon {
$icon .= "xls.gif"; $icon .= "xls.gif";
} elsif (isIn($extension, qw(zip arj cab))) { } elsif (isIn($extension, qw(zip arj cab))) {
$icon .= "zip.gif"; $icon .= "zip.gif";
} elsif (isIn($extension, qw(mpeg mpg wav mp3 avi))) { } elsif (isIn($extension, qw(mpeg mpg wav mp3 avi m3u))) {
$icon .= "wav.gif"; $icon .= "wav.gif";
} elsif (isIn($extension, qw(html htm xml))) { } elsif (isIn($extension, qw(html htm xml))) {
$icon .= "html.gif"; $icon .= "html.gif";

View file

@ -111,7 +111,7 @@ sub registrationFormSave {
$ldap->bind; $ldap->bind;
my $search = $ldap->search (base => $uri->dn, filter => $session{setting}{ldapId}."=".$session{form}{'authLDAP.ldapId'}); my $search = $ldap->search (base => $uri->dn, filter => $session{setting}{ldapId}."=".$session{form}{'authLDAP.ldapId'});
if (defined $search->entry(0)) { if (defined $search->entry(0)) {
$connectDN = "cn=".$search->entry(0)->get_value("cn"); $connectDN = $search->entry(0)->get_value("cn");
} }
$ldap->unbind; $ldap->unbind;
WebGUI::Authentication::saveParams($uid,'LDAP', WebGUI::Authentication::saveParams($uid,'LDAP',
@ -129,7 +129,7 @@ sub registrationFormValidate {
if ($ldap->bind) { if ($ldap->bind) {
$search = $ldap->search (base=>$uri->dn,filter=>$session{setting}{ldapId}."=".$session{form}{'authLDAP.ldapId'}); $search = $ldap->search (base=>$uri->dn,filter=>$session{setting}{ldapId}."=".$session{form}{'authLDAP.ldapId'});
if (defined $search->entry(0)) { if (defined $search->entry(0)) {
$connectDN = "cn=".$search->entry(0)->get_value("cn"); $connectDN = $search->entry(0)->get_value("cn");
$ldap->unbind; $ldap->unbind;
$ldap = Net::LDAP->new($uri->host, (port=>$uri->port)) or $error .= WebGUI::International::get(2,'Auth/LDAP'); $ldap = Net::LDAP->new($uri->host, (port=>$uri->port)) or $error .= WebGUI::International::get(2,'Auth/LDAP');
$auth = $ldap->bind(dn=>$connectDN, password=>$session{form}{'authLDAP.ldapPassword'}); $auth = $ldap->bind(dn=>$connectDN, password=>$session{form}{'authLDAP.ldapPassword'});

View file

@ -347,7 +347,7 @@ sub karmaThreshold {
WebGUI::SQL->write("update groups set karmaThreshold=".quote($value).", WebGUI::SQL->write("update groups set karmaThreshold=".quote($value).",
lastUpdated=".time()." where groupId=$class->{_groupId}"); lastUpdated=".time()." where groupId=$class->{_groupId}");
} }
return $class->{_group}{"karamThreshold"}; return $class->{_group}{"karmaThreshold"};
} }

View file

@ -283,7 +283,7 @@ sub getUsersInGroup {
if ($_[1]) { if ($_[1]) {
my $groups = getGroupsInGroup($_[0],1); my $groups = getGroupsInGroup($_[0],1);
if ($#$groups >= 0) { if ($#$groups >= 0) {
$clause = "groupId in (".join(",",@$groups).")"; $clause .= " or groupId in (".join(",",@$groups).")";
} }
} }
return WebGUI::SQL->buildArrayRef("select userId from groupings where $clause"); return WebGUI::SQL->buildArrayRef("select userId from groupings where $clause");

View file

@ -20,8 +20,10 @@ sub process {
my ($output, @data, $rownum, $temp); my ($output, @data, $rownum, $temp);
my ($statement, $format) = WebGUI::Macro::getParams(shift); my ($statement, $format) = WebGUI::Macro::getParams(shift);
$format = '^0;' if ($format eq ""); $format = '^0;' if ($format eq "");
my $result = eval { my $sth = WebGUI::SQL->unconditionalRead($statement);
my $sth = WebGUI::SQL->new($statement,$session{dbh}); unless ($sth->errorCode < 1) {
return '<p><b>SQL Macro Failed:</b> '.$sth->errorMessage.'<p>';
} else {
while (@data = $sth->array) { while (@data = $sth->array) {
$temp = $format; $temp = $format;
$temp =~ s/\^(\d+)\;/$data[$1]/g; $temp =~ s/\^(\d+)\;/$data[$1]/g;
@ -30,10 +32,6 @@ sub process {
$output .= $temp; $output .= $temp;
} }
$sth->finish; $sth->finish;
};
if ($@) {
return '<p><b>SQL Macro Failed:</b> '.$@.'<p>';
} else {
return $output; return $output;
} }
} }

View file

@ -90,6 +90,7 @@ sub _validateProfileData {
while (%field = $a->hash) { while (%field = $a->hash) {
if ($field{dataType} eq "date") { if ($field{dataType} eq "date") {
$data{$field{fieldName}} = WebGUI::DateTime::setToEpoch($session{form}{$field{fieldName}}); $data{$field{fieldName}} = WebGUI::DateTime::setToEpoch($session{form}{$field{fieldName}});
$session{form}{$field{fieldName}} = $data{$field{fieldName}};
} elsif (exists $session{form}{$field{fieldName}}) { } elsif (exists $session{form}{$field{fieldName}}) {
$data{$field{fieldName}} = $session{form}{$field{fieldName}}; $data{$field{fieldName}} = $session{form}{$field{fieldName}};
} }
@ -582,6 +583,9 @@ sub www_viewProfile {
} else { } else {
$value = $u->profileField($data{fieldName}); $value = $u->profileField($data{fieldName});
} }
if ($data{dataType} eq "date") {
$value = WebGUI::DateTime::epochToHuman($value,"%z");
}
unless ($data{fieldName} eq "email" and $u->profileField("publicEmail") < 1) { unless ($data{fieldName} eq "email" and $u->profileField("publicEmail") < 1) {
$output .= '<tr><td class="tableHeader">'.$label.'</td><td class="tableData">'.$value.'</td></tr>'; $output .= '<tr><td class="tableHeader">'.$label.'</td><td class="tableData">'.$value.'</td></tr>';
} }

View file

@ -130,7 +130,11 @@ sub www_editGroup {
-label=>WebGUI::International::get(863) -label=>WebGUI::International::get(863)
); );
if ($session{setting}{useKarma}) { if ($session{setting}{useKarma}) {
$f->integer("karmaThreshold",WebGUI::International::get(538),$g->karmaThreshold); $f->integer(
-name=>"karmaThreshold",
-label=>WebGUI::International::get(538),
-value=>$g->karmaThreshold
);
} }
$f->textarea( $f->textarea(
-name=>"ipFilter", -name=>"ipFilter",

View file

@ -246,7 +246,6 @@ sub www_editPage {
} else { } else {
%page = %{$session{page}}; %page = %{$session{page}};
($childCount) = WebGUI::SQL->quickArray("select count(*) from page where parentId=$page{pageId}"); ($childCount) = WebGUI::SQL->quickArray("select count(*) from page where parentId=$page{pageId}");
$page{hideFromNavigation} = 0;
} }
$page{endDate} = (addToDate(time(),10)) if ($page{endDate} < 0); $page{endDate} = (addToDate(time(),10)) if ($page{endDate} < 0);
$output = helpIcon(1); $output = helpIcon(1);

View file

@ -235,6 +235,14 @@ sub www_editProfileFieldSave {
$session{form}{fieldLabel} = 'Unamed' if ($session{form}{fieldLabel} eq "" || $session{form}{fieldLabel} eq "''"); $session{form}{fieldLabel} = 'Unamed' if ($session{form}{fieldLabel} eq "" || $session{form}{fieldLabel} eq "''");
$test = eval($session{form}{fieldLabel}); $test = eval($session{form}{fieldLabel});
$session{form}{fieldLabel} = "'".$session{form}{fieldLabel}."'" if ($test eq ""); $session{form}{fieldLabel} = "'".$session{form}{fieldLabel}."'" if ($test eq "");
if ($session{form}{dataDefault} ne "") {
unless ($session{form}{dataDefault} =~ /^\[/) {
$session{form}{dataDefault} = "[".$session{form}{dataDefault};
}
unless ($session{form}{dataDefault} =~ /\]$/) {
$session{form}{dataDefault} .= "]";
}
}
if ($session{form}{new}) { if ($session{form}{new}) {
($fieldName) = WebGUI::SQL->quickArray("select count(*) from userProfileField ($fieldName) = WebGUI::SQL->quickArray("select count(*) from userProfileField
where fieldName=".quote($session{form}{fid})); where fieldName=".quote($session{form}{fid}));

View file

@ -114,19 +114,13 @@ A comparison expression to be used when checking whether the action should be al
=cut =cut
sub confirm { sub confirm {
my ($output, $noURL); return WebGUI::Privilege::vitalComponent() if ($_[4]);
if ($_[4]) { my $noURL = $_[3] || WebGUI::URL::page();
return WebGUI::Privilege::vitalComponent(); my $output = '<h1>'.WebGUI::International::get(42).'</h1>';
} elsif (WebGUI::Privilege::canEditPage()) { $output .= $_[1].'<p>';
$noURL = $_[3] || WebGUI::URL::page(); $output .= '<div align="center"><a href="'.$_[2].'">'.WebGUI::International::get(44).'</a>';
$output = '<h1>'.WebGUI::International::get(42).'</h1>'; $output .= ' &nbsp; <a href="'.$noURL.'">'.WebGUI::International::get(45).'</a></div>';
$output .= $_[1].'<p>'; return $output;
$output .= '<div align="center"><a href="'.$_[2].'">'.WebGUI::International::get(44).'</a>';
$output .= ' &nbsp; <a href="'.$noURL.'">'.WebGUI::International::get(45).'</a></div>';
return $output;
} else {
return WebGUI::Privilege::insufficient();
}
} }

View file

@ -189,6 +189,7 @@ sub www_addRelatedSave {
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub www_deleteAccessory { sub www_deleteAccessory {
return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage());
return $_[0]->confirm( return $_[0]->confirm(
WebGUI::International::get(2,$_[0]->get("namespace")), WebGUI::International::get(2,$_[0]->get("namespace")),
WebGUI::URL::page('func=deleteAccessoryConfirm&wid='.$_[0]->get("wobjectId").'&aid='.$session{form}{aid}) WebGUI::URL::page('func=deleteAccessoryConfirm&wid='.$_[0]->get("wobjectId").'&aid='.$session{form}{aid})
@ -205,6 +206,7 @@ sub www_deleteAccessoryConfirm {
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub www_deleteBenefit { sub www_deleteBenefit {
return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage());
return $_[0]->confirm( return $_[0]->confirm(
WebGUI::International::get(48,$_[0]->get("namespace")), WebGUI::International::get(48,$_[0]->get("namespace")),
WebGUI::URL::page('func=deleteBenefitConfirm&wid='.$_[0]->get("wobjectId").'&bid='.$session{form}{bid}) WebGUI::URL::page('func=deleteBenefitConfirm&wid='.$_[0]->get("wobjectId").'&bid='.$session{form}{bid})
@ -221,6 +223,7 @@ sub www_deleteBenefitConfirm {
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub www_deleteFeature { sub www_deleteFeature {
return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage());
return $_[0]->confirm( return $_[0]->confirm(
WebGUI::International::get(3,$_[0]->get("namespace")), WebGUI::International::get(3,$_[0]->get("namespace")),
WebGUI::URL::page('func=deleteFeatureConfirm&wid='.$_[0]->get("wobjectId").'&fid='.$session{form}{fid}) WebGUI::URL::page('func=deleteFeatureConfirm&wid='.$_[0]->get("wobjectId").'&fid='.$session{form}{fid})
@ -237,6 +240,7 @@ sub www_deleteFeatureConfirm {
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub www_deleteRelated { sub www_deleteRelated {
return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage());
return $_[0]->confirm( return $_[0]->confirm(
WebGUI::International::get(4,$_[0]->get("namespace")), WebGUI::International::get(4,$_[0]->get("namespace")),
WebGUI::URL::page('func=deleteRelatedConfirm&wid='.$_[0]->get("wobjectId").'&rid='.$session{form}{rid}) WebGUI::URL::page('func=deleteRelatedConfirm&wid='.$_[0]->get("wobjectId").'&rid='.$session{form}{rid})
@ -253,6 +257,7 @@ sub www_deleteRelatedConfirm {
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub www_deleteSpecification { sub www_deleteSpecification {
return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage());
return $_[0]->confirm( return $_[0]->confirm(
WebGUI::International::get(5,$_[0]->get("namespace")), WebGUI::International::get(5,$_[0]->get("namespace")),
WebGUI::URL::page('func=deleteSpecificationConfirm&wid='.$_[0]->get("wobjectId").'&sid='.$session{form}{sid}) WebGUI::URL::page('func=deleteSpecificationConfirm&wid='.$_[0]->get("wobjectId").'&sid='.$session{form}{sid})

View file

@ -86,16 +86,16 @@ sub www_view {
unless (defined $rssFile) { unless (defined $rssFile) {
$rssFile = $cache->setByHTTP($_[0]->get("rssUrl"),3600); $rssFile = $cache->setByHTTP($_[0]->get("rssUrl"),3600);
} }
$rssFile =~ s#(<title>)(.*?)(</title>)#$1.encode_entities(decode_entities($2)).$3#ges; $rssFile =~ s#(<title>)(.*?)(</title>)#$1.encode_entities_numeric(decode_entities($2)).$3#ges;
$rssFile =~ s#(<description>)(.*?)(</description>)#$1.encode_entities(decode_entities($2)).$3#ges; $rssFile =~ s#(<description>)(.*?)(</description>)#$1.encode_entities_numeric(decode_entities($2)).$3#ges;
eval{parseRSS(\%rss, \$rssFile)}; eval{parseRSS(\%rss, \$rssFile)};
if ($@) { if ($@) {
WebGUI::ErrorHandler::warn($_[0]->get("rssUrl")." ".$@); WebGUI::ErrorHandler::warn($_[0]->get("rssUrl")." ".$@);
} }
my %var; my %var;
$var{"channel.title"} = $rss{title}; $var{"channel.title"} = $rss{title} || $rss{channel}{title};
$var{"channel.link"} = $rss{link}; $var{"channel.link"} = $rss{link} || $rss{channel}{link};
$var{"channel.description"} = $rss{description}; $var{"channel.description"} = $rss{description} || $rss{channel}{description};
my @items; my @items;
foreach my $item (@{$rss{item}}) { foreach my $item (@{$rss{item}}) {
push (@items,{ push (@items,{

View file

@ -144,8 +144,7 @@ sub www_deleteFile {
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub www_deleteSubmission { sub www_deleteSubmission {
my ($owner); my ($owner) = WebGUI::SQL->quickArray("select userId from USS_submission where USS_submissionId=$session{form}{sid}");
($owner) = WebGUI::SQL->quickArray("select userId from USS_submission where USS_submissionId=$session{form}{sid}");
if ($owner == $session{user}{userId} || WebGUI::Privilege::isInGroup($_[0]->get("groupToApprove"))) { if ($owner == $session{user}{userId} || WebGUI::Privilege::isInGroup($_[0]->get("groupToApprove"))) {
return $_[0]->confirm(WebGUI::International::get(17,$_[0]->get("namespace")), return $_[0]->confirm(WebGUI::International::get(17,$_[0]->get("namespace")),
WebGUI::URL::page('func=deleteSubmissionConfirm&wid='.$session{form}{wid}.'&sid='.$session{form}{sid})); WebGUI::URL::page('func=deleteSubmissionConfirm&wid='.$session{form}{wid}.'&sid='.$session{form}{sid}));
@ -156,11 +155,10 @@ sub www_deleteSubmission {
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub www_deleteSubmissionConfirm { sub www_deleteSubmissionConfirm {
my ($output, $owner, $file); my ($owner) = WebGUI::SQL->quickArray("select userId from USS_submission where USS_submissionId=$session{form}{sid}");
($owner) = WebGUI::SQL->quickArray("select userId from USS_submission where USS_submissionId=$session{form}{sid}");
if ($owner == $session{user}{userId} || WebGUI::Privilege::isInGroup($_[0]->get("groupToApprove"))) { if ($owner == $session{user}{userId} || WebGUI::Privilege::isInGroup($_[0]->get("groupToApprove"))) {
$_[0]->deleteCollateral("USS_submission","USS_submissionId",$session{form}{sid}); $_[0]->deleteCollateral("USS_submission","USS_submissionId",$session{form}{sid});
$file = WebGUI::Attachment->new("",$session{form}{wid},$session{form}{sid}); my $file = WebGUI::Attachment->new("",$session{form}{wid},$session{form}{sid});
$file->deleteNode; $file->deleteNode;
return ""; return "";
} else { } else {