diff --git a/docs/changelog/6.x.x.txt b/docs/changelog/6.x.x.txt index 2d060277b..f93e28a9f 100644 --- a/docs/changelog/6.x.x.txt +++ b/docs/changelog/6.x.x.txt @@ -11,6 +11,7 @@ - Fixed not being able to set display title and other yes no questions to no. - Fixed a bug where URLs would become unreachable when using SSL. - Fixed a password timeout bug caused by the change in the interval method. + - Fixed a bug where subscription groups where showing up in user manager. - Removed the depricated fileSize property from the File asset. - Fixed a user profile editing bug. - bugfix [ 1151462 ] missing slash in form URL @@ -27,6 +28,9 @@ - bugfix [ 1153518 ] re-edit forum post error - bugfix [ 1152819 ] Error when edit fild in Admin console -> user profiling - bugfix [ 1152047 ] Unable to create new account + - bugfix [ 1150173 ] Error message when logging out + - bugfix [ 1154247 ] Title and menuTitle set to 'untitled' if url is changed + - bugfix [ 1150982 ] Subscribe to forum thread causes error 6.3.0 diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm index 58a4636b9..e95eac74a 100644 --- a/lib/WebGUI/Asset.pm +++ b/lib/WebGUI/Asset.pm @@ -373,6 +373,7 @@ sub definition { defaultValue=>undef }, assetSize=>{ + noFormPost=>1, fieldType=>'hidden', defaultValue=>0 }, @@ -1837,6 +1838,7 @@ sub processPropertiesFromFormPost { my %data; foreach my $definition (@{$self->definition}) { foreach my $property (keys %{$definition->{properties}}) { + next if ($definition->{properties}{$property}{noFormPost}); $data{$property} = WebGUI::FormProcessor::process( $property, $definition->{properties}{$property}{fieldType}, @@ -2229,7 +2231,7 @@ sub www_add { startDate => $self->get("startDate"), endDate => $self->get("endDate") ); - $properties{isHidden} = 1 unless (WebGUI::Utility::isIn(ref $session{form}{class}, @{$session{config}{assetContainers}})); + $properties{isHidden} = 1 unless (WebGUI::Utility::isIn($session{form}{class}, @{$session{config}{assetContainers}})); my $newAsset = WebGUI::Asset->newByDynamicClass("new",$session{form}{class},\%properties); $newAsset->{_parent} = $self; return $newAsset->www_edit(); diff --git a/lib/WebGUI/Asset/File.pm b/lib/WebGUI/Asset/File.pm index b21006bd1..bf0783216 100644 --- a/lib/WebGUI/Asset/File.pm +++ b/lib/WebGUI/Asset/File.pm @@ -64,14 +64,17 @@ sub definition { className=>'WebGUI::Asset::File', properties=>{ filename=>{ + noFormPost=>1, fieldType=>'hidden', defaultValue=>undef }, storageId=>{ + noFormPost=>1, fieldType=>'hidden', defaultValue=>undef }, olderVersions=>{ + noFormPost=>1, fieldType=>'hidden', defaultValue=>undef } diff --git a/lib/WebGUI/Asset/Post.pm b/lib/WebGUI/Asset/Post.pm index 6b4ab81f4..5958b1700 100644 --- a/lib/WebGUI/Asset/Post.pm +++ b/lib/WebGUI/Asset/Post.pm @@ -89,14 +89,17 @@ sub definition { className=>'WebGUI::Asset::Post', properties=>{ storageId => { + noFormPost=>1, fieldType=>"hidden", defaultValue=>undef }, threadId => { + noFormPost=>1, fieldType=>"hidden", defaultValue=>undef }, dateSubmitted => { + noFormPost=>1, fieldType=>"hidden", defaultValue=>undef }, @@ -105,18 +108,22 @@ sub definition { defaultValue=>time() }, username => { + noFormPost=>1, fieldType=>"hidden", defaultValue=>$session{user}{alias} || $session{user}{username} }, status => { + noFormPost=>1, fieldType=>"hidden", defaultValue=>undef }, rating => { + noFormPost=>1, fieldType=>"hidden", defaultValue=>undef }, views => { + noFormPost=>1, fieldType=>"hidden", defaultValue=>undef }, diff --git a/lib/WebGUI/Asset/Post/Thread.pm b/lib/WebGUI/Asset/Post/Thread.pm index 1812d27c2..09a8f72bd 100644 --- a/lib/WebGUI/Asset/Post/Thread.pm +++ b/lib/WebGUI/Asset/Post/Thread.pm @@ -75,10 +75,12 @@ sub definition { className=>'WebGUI::Asset::Post::Thread', properties=>{ subscriptionGroupId => { + noFormPost=>1, fieldType=>"hidden", defaultValue=>undef }, replies => { + noFormPost=>1, fieldType=>"hidden", defaultValue=>undef }, @@ -91,10 +93,12 @@ sub definition { defaultValue=>0 }, lastPostId => { + noFormPost=>1, fieldType=>"hidden", defaultValue=>undef }, lastPostDate => { + noFormPost=>1, fieldType=>"hidden", defaultValue=>undef } @@ -405,6 +409,16 @@ sub lock { } +#------------------------------------------------------------------- +sub processPropertiesFromFormPost { + my $self = shift; + $self->SUPER::processPropertiesFromFormPost; + if ($self->get("subscriptionGroupId") eq "") { + $self->createSubscriptionGroup; + } +} + + #------------------------------------------------------------------- =head2 rate ( rating ) @@ -486,9 +500,7 @@ Subscribes the user to this thread. sub subscribe { my $self = shift; - unless ($self->isSubscribed) { - WebGUI::Grouping::addUsersToGroups([$session{user}{userId}],[$self->get("subscriptionGroupId")]); - } + WebGUI::Grouping::addUsersToGroups([$session{user}{userId}],[$self->get("subscriptionGroupId")]); } #------------------------------------------------------------------- @@ -527,9 +539,7 @@ Negates the subscribe method. sub unsubscribe { my $self = shift; - if ($self->isSubscribed) { - WebGUI::Grouping::deleteUsersFromGroups([$session{user}{userId}],[$self->get("subscriptionGroupId")]); - } + WebGUI::Grouping::deleteUsersFromGroups([$session{user}{userId}],[$self->get("subscriptionGroupId")]); } diff --git a/lib/WebGUI/Asset/Shortcut.pm b/lib/WebGUI/Asset/Shortcut.pm index 48b2966eb..0dcfad770 100644 --- a/lib/WebGUI/Asset/Shortcut.pm +++ b/lib/WebGUI/Asset/Shortcut.pm @@ -29,6 +29,7 @@ sub definition { className=>'WebGUI::Asset::Shortcut', properties=>{ shortcutToAssetId=>{ + noFormPost=>1, fieldType=>"hidden", defaultValue=>undef }, diff --git a/lib/WebGUI/Asset/Template.pm b/lib/WebGUI/Asset/Template.pm index a6b8d12f6..03d5078f7 100644 --- a/lib/WebGUI/Asset/Template.pm +++ b/lib/WebGUI/Asset/Template.pm @@ -107,10 +107,12 @@ sub definition { defaultValue=>undef }, isEditable=>{ + noFormPost=>1, fieldType=>'hidden', defaultValue=>1 }, showInForms=>{ + noFormPost=>1, fieldType=>'yesNo', defaultValue=>1 }, diff --git a/lib/WebGUI/Asset/Wobject/Collaboration.pm b/lib/WebGUI/Asset/Wobject/Collaboration.pm index 5b0d4540e..2ec61d1b4 100644 --- a/lib/WebGUI/Asset/Wobject/Collaboration.pm +++ b/lib/WebGUI/Asset/Wobject/Collaboration.pm @@ -13,6 +13,7 @@ package WebGUI::Asset::Wobject::Collaboration; use strict; use Tie::CPHash; use WebGUI::DateTime; +use WebGUI::Group; use WebGUI::Grouping; use WebGUI::HTML; use WebGUI::HTTP; @@ -255,30 +256,37 @@ sub definition { defaultValue=>31536000 }, subscriptionGroupId =>{ + noFormPost=>1, fieldType=>"hidden", defaultValue=>undef }, lastPostDate =>{ + noFormPost=>1, fieldType=>"hidden", defaultValue=>undef }, lastPostId =>{ + noFormPost=>1, fieldType=>"hidden", defaultValue=>undef }, rating =>{ + noFormPost=>1, fieldType=>"hidden", defaultValue=>undef }, replies =>{ + noFormPost=>1, fieldType=>"hidden", defaultValue=>undef }, views =>{ + noFormPost=>1, fieldType=>"hidden", defaultValue=>undef }, threads =>{ + noFormPost=>1, fieldType=>"hidden", defaultValue=>undef }, @@ -681,7 +689,7 @@ sub isSubscribed { sub processPropertiesFromFormPost { my $self = shift; $self->SUPER::processPropertiesFromFormPost; - if ($session{form}{func} eq "add") { + if ($self->get("subscriptionGroupId") eq "") { $self->createSubscriptionGroup; } } @@ -749,9 +757,7 @@ Subscribes a user to this collaboration system. sub subscribe { my $self = shift; - unless ($self->isSubscribed) { - WebGUI::Grouping::addUsersToGroups([$session{user}{userId}],[$self->get("subscriptionGroupId")]); - } + WebGUI::Grouping::addUsersToGroups([$session{user}{userId}],[$self->get("subscriptionGroupId")]); } #------------------------------------------------------------------- @@ -764,9 +770,7 @@ Unsubscribes a user from this collaboration system sub unsubscribe { my $self = shift; - if ($self->isSubscribed) { - WebGUI::Grouping::deleteUsersFromGroups([$session{user}{userId}],[$self->get("subscriptionGroupId")]); - } + WebGUI::Grouping::deleteUsersFromGroups([$session{user}{userId}],[$self->get("subscriptionGroupId")]); } diff --git a/lib/WebGUI/Asset/Wobject/Layout.pm b/lib/WebGUI/Asset/Wobject/Layout.pm index e362d1cb5..d633ca812 100644 --- a/lib/WebGUI/Asset/Wobject/Layout.pm +++ b/lib/WebGUI/Asset/Wobject/Layout.pm @@ -67,6 +67,7 @@ sub definition { defaultValue=>'PBtmpl0000000000000054' }, contentPositions => { + noFormPost=>1, defaultValue=>undef, fieldType=>"hidden" } diff --git a/lib/WebGUI/Grouping.pm b/lib/WebGUI/Grouping.pm index 2f48e07b2..2aaedec79 100755 --- a/lib/WebGUI/Grouping.pm +++ b/lib/WebGUI/Grouping.pm @@ -70,6 +70,7 @@ An array reference containing the list of group ids to add the first list to. =cut sub addGroupsToGroups { + delete $session{isInGroup}; foreach my $gid (@{$_[0]}) { foreach my $toGid (@{$_[1]}) { my ($isIn) = WebGUI::SQL->quickArray("select count(*) from groupGroupings @@ -104,6 +105,7 @@ An override for the default offset of the grouping. Specified in seconds. =cut sub addUsersToGroups { + delete $session{isInGroup}; foreach my $gid (@{$_[1]}) { my $expireOffset; if ($_[2]) { @@ -142,8 +144,10 @@ An array reference containing the list of group ids to delete from. =cut sub deleteGroupsFromGroups { + delete $session{isInGroup}; foreach my $gid (@{$_[0]}) { foreach my $fromGid (@{$_[1]}) { + WebGUI::Cache->new("groups_in_group_".$fromGid)->delete; WebGUI::SQL->write("delete from groupGroupings where groupId=".quote($gid)." and inGroup=".quote($fromGid)); } } @@ -167,6 +171,7 @@ An array reference containing a list of groups. =cut sub deleteUsersFromGroups { + delete $session{isInGroup}; foreach my $gid (@{$_[1]}) { foreach my $uid (@{$_[0]}) { WebGUI::SQL->write("delete from groupings where groupId=".quote($gid)." and userId=".quote($uid)); diff --git a/lib/WebGUI/Operation/User.pm b/lib/WebGUI/Operation/User.pm index 493e71547..bb71a86bb 100644 --- a/lib/WebGUI/Operation/User.pm +++ b/lib/WebGUI/Operation/User.pm @@ -338,7 +338,7 @@ sub www_editUser { $tabform->getTab("groups")->selectList( -name=>"groupsToDelete", -options=>WebGUI::SQL->buildHashRef("select groupId, groupName from groups - where groupId in (".quoteAndJoin(\@include).") order by groupName"), + where groupId in (".quoteAndJoin(\@include).") and showInForms=1 order by groupName"), -label=>"GROUPS TO DELETE", -multiple=>1, -size=>15,