From 40a36966ddeb17fbb461a16f6744d0c477500889 Mon Sep 17 00:00:00 2001 From: JT Smith Date: Sun, 12 Sep 2004 17:01:15 +0000 Subject: [PATCH] bugfix [ 1025755 ] UILevel can't be set to beginner (0) --- docs/changelog/6.x.x.txt | 2 ++ lib/WebGUI/Operation/User.pm | 15 ++++----------- lib/WebGUI/User.pm | 2 +- 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/docs/changelog/6.x.x.txt b/docs/changelog/6.x.x.txt index 46dc320e3..62b076008 100644 --- a/docs/changelog/6.x.x.txt +++ b/docs/changelog/6.x.x.txt @@ -9,6 +9,8 @@ - bugfix [ 1024643 ] Unknown column error. (Leendert Bottelberghs) - bugfix [ 1025120 ] Pagination in forum thread doesn't work. New default thread template. (Leendert Bottelberghs) - Fixed a bug where you couldn't delete templates. + - bugfix [ 1025755 ] UILevel can't be set to beginner (0) + 6.2.1 diff --git a/lib/WebGUI/Operation/User.pm b/lib/WebGUI/Operation/User.pm index 0624b8bb4..7b20addfe 100644 --- a/lib/WebGUI/Operation/User.pm +++ b/lib/WebGUI/Operation/User.pm @@ -15,6 +15,7 @@ use strict qw(vars subs); use Tie::CPHash; use Tie::IxHash; use WebGUI::DateTime; +use WebGUI::FormProcessor; use WebGUI::Group; use WebGUI::Grouping; use WebGUI::HTMLForm; @@ -517,19 +518,14 @@ sub www_editUserProfile { $method = $data{dataType}; $label = eval $data{fieldLabel}; if ($method eq "selectList" || $method eq "checkList" || $method eq "radioList") { - # note: this big if statement doesn't look elegant, but doing regular - # ORs caused problems with the array reference. - - # make sure the values are ordered my $orderedValues = {}; tie %{$orderedValues}, 'Tie::IxHash'; foreach my $ov (sort keys %{$values}) { $orderedValues->{$ov} = $values->{$ov}; } - if ($session{form}{$data{fieldName}}) { $default = [$session{form}{$data{fieldName}}]; - } elsif ($user{$data{fieldName}} && (defined($values->{$user{$data{fieldName}}}))) { + } elsif (exists $user{$data{fieldName}} && (defined($values->{$user{$data{fieldName}}}))) { $default = [$user{$data{fieldName}}]; } else { $default = eval $data{dataDefault}; @@ -568,12 +564,9 @@ sub www_editUserProfileSave { my ($a, %field, $u); tie %field, 'Tie::CPHash'; $u = WebGUI::User->new($session{form}{uid}); - $a = WebGUI::SQL->read("select * from userProfileField"); + $a = WebGUI::SQL->read("select fieldName,dataType from userProfileField"); while (%field = $a->hash) { - if ($field{dataType} eq "date") { - $session{form}{$field{fieldName}} = setToEpoch($session{form}{$field{fieldName}}); - } - $u->profileField($field{fieldName},$session{form}{$field{fieldName}}) if (exists $session{form}{$field{fieldName}}); + $u->profileField($field{fieldName},WebGUI::FormProcessor::process($field{fieldName},$field{dataType})); } $a->finish; return www_editUserProfile(); diff --git a/lib/WebGUI/User.pm b/lib/WebGUI/User.pm index d47dbe935..a29004f1a 100644 --- a/lib/WebGUI/User.pm +++ b/lib/WebGUI/User.pm @@ -297,7 +297,7 @@ sub profileField { $class = shift; $fieldName = shift; $value = shift; - $value = WebGUI::Macro::negate($value); # Len Kranendonk - 20030701: fixed security hole + $value = WebGUI::Macro::negate($value); if (defined $value) { $class->{_profile}{$fieldName} = $value; WebGUI::SQL->write("delete from userProfileData where userId=".quote($class->{_userId})." and fieldName=".quote($fieldName));