From bec29627f4b00b26916d01e89286313bfe46c56c Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Sat, 15 Nov 2008 03:58:41 +0000 Subject: [PATCH] Three UserList bug fixes from Bernd. --- docs/changelog/7.x.x.txt | 2 ++ lib/WebGUI/Asset/Wobject/UserList.pm | 16 ++++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index b5d7ff12a..ddf3c9a94 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -11,6 +11,8 @@ - fixed #4214: Missing i18n in asset manager - fixed #8849: More missing i18n - fixed #4182: Edit links show in asset manager for locked assets + - fixed #8971: UserList shows accounts that have been self-deactivated (Bernd Kalbfuß-Zimmermann) + - fixed #4199: Default values of user profile fields are not filled in correctly when shown by the UserList asset (Bernd Kalbfuß-Zimmerman) 7.6.3 - improved performance of file uploads diff --git a/lib/WebGUI/Asset/Wobject/UserList.pm b/lib/WebGUI/Asset/Wobject/UserList.pm index 19f479b83..1d24e0bf6 100644 --- a/lib/WebGUI/Asset/Wobject/UserList.pm +++ b/lib/WebGUI/Asset/Wobject/UserList.pm @@ -390,6 +390,7 @@ sub view { "sequenceNumber"=>$profileField->{sequenceNumber}, "visible"=>$profileField->{visible}, "fieldType"=>$profileField->{fieldType}, + "dataDefault"=>$profileField->{dataDefault}, }); if($profileField->{visible}){ push (@profileField_loop, { @@ -432,13 +433,14 @@ sub view { }); } + # Query user profile data. Exclude the visitor account and users that have been deactivated. $sql = "select distinct users.userId, users.userName, userProfileData.publicProfile, userProfileData.publicEmail "; - + # Include remaining profile fields in the query foreach my $profileField (@profileFields){ $sql .= ", userProfileData.$profileField->{fieldName}"; } - $sql .= " from users"; - $sql .= " left join userProfileData using(userId) where users.userId != '1'"; + $sql .= " from users"; + $sql .= " left join userProfileData using(userId) where users.userId != '1' and users.status = 'active'"; my $constraint; my @profileSearchFields = (); @@ -547,11 +549,17 @@ sub view { "profile_emailNotPublic"=>1, }); } - else{ + else { + # Assign field name my $profileFieldName = $profileField->{fieldName}; $profileFieldName =~ s/ /_/g; $profileFieldName =~ s/\./_/g; + # Assign value my $value = $user->{$profileField->{fieldName}}; + # Assign default value if not available + $value = $profileField->{dataDefault} if $value eq ''; + # Handle special case of alias, which does not have a default value but is set to the username by default + $value = $user->{userName} if ($profileFieldName eq 'alias' && $value eq ''); my %profileFieldValues; if (WebGUI::Utility::isIn(ucfirst $profileField->{fieldType},qw(File Image)) && $value ne ''){ my $file = WebGUI::Form::DynamicField->new($self->session,