Merge branch 'master' of git@github.com:plainblack/webgui

Conflicts:

	docs/changelog/7.x.x.txt
This commit is contained in:
Martin Kamerbeek 2010-12-23 14:48:02 +00:00
commit 90e3cd6b6f
6 changed files with 62 additions and 6 deletions

View file

@ -6,6 +6,9 @@
be empty ( Martin Kamerbeek / Oqapi )
- fixed bug where an invalid address ids would prevent a customer from ever
checking out again ( Martin Kamerbeek / Oqapi )
- fixed #11997: maximumAssets in config is ignored (Arjan Widlak / United Knowledge)
- fixed #11998: maximumAssets affects not only new assets, but als prevents editing existing assets if maximum is reached
- fixed #12003: WebGUI::User->delete leaves around cache data
7.10.6
- fixed #11974: Toolbar icons unclickable in Webkit using HTML5

View file

@ -2999,10 +2999,10 @@ sub www_editSave {
my $isNewAsset = $session->form->process("assetId") eq "new" ? 1 : 0;
return $session->privilege->locked() if (!$self->canEditIfLocked and !$isNewAsset);
return $session->privilege->insufficient() unless $self->canEdit && $session->form->validToken;
if ($self->session->config("maximumAssets")) {
if ($self->session->config->get("maximumAssets")) {
my ($count) = $self->session->db->quickArray("select count(*) from asset");
my $i18n = WebGUI::International->new($self->session, "Asset");
return $self->session->style->userStyle($i18n->get("over max assets")) if ($self->session->config("maximumAssets") <= $count);
return $self->session->style->userStyle($i18n->get("over max assets")) if ( $self->session->config->get("maximumAssets") <= $count && $isNewAsset );
}
my $object;
if ($isNewAsset) {

View file

@ -380,7 +380,6 @@ sub delete {
my $userId = $self->userId;
my $session = $self->session;
my $db = $session->db;
$self->uncache;
foreach my $groupId ( @{ $self->getGroups } ) {
my $group = WebGUI::Group->new($session, $groupId);
@ -429,6 +428,7 @@ sub delete {
$credit->purge;
# remove user itself
$self->uncache;
$db->write("DELETE FROM userProfileData WHERE userId=?",[$userId]);
$db->write("DELETE FROM users WHERE userId=?",[$userId]);
}

View file

@ -65,11 +65,14 @@ my $totalAsset = $session->db->quickScalar('SELECT COUNT(*) FROM asset');
my $totalAssetData = $session->db->quickScalar('SELECT COUNT( DISTINCT( assetId ) ) FROM assetData' );
my $total = $totalAsset >= $totalAssetData ? $totalAsset : $totalAssetData;
# Order by to put corrupt parents before corrupt children
# Order by lineage to put corrupt parents before corrupt children
# Join assetData to get all asset and assetData
my $sql = "SELECT * FROM asset LEFT JOIN assetData USING ( assetId ) GROUP BY assetId ORDER BY lineage ASC";
my $sth = $session->db->read($sql);
##Guarantee that we get the most recent revisionDate
my $max_revision = $session->db->prepare('select max(revisionDate) from assetData where assetId=?');
my $count = 1;
my %classTables; # Cache definition lookups
while ( my %row = $sth->hash ) {
@ -85,6 +88,8 @@ while ( my %row = $sth->hash ) {
eval "require $row{className}";
[ map { $_->{tableName} } reverse @{ $row{className}->definition($session) } ];
};
$max_revision->execute([$row{assetId}]);
($row{revisionDate}) = $max_revision->array();
$row{revisionDate} ||= time;
for my $table ( @{$classTables} ) {
@ -196,6 +201,8 @@ while ( my %row = $sth->hash ) {
} ## end if ( !$asset )
progress( $total, $count++ );
} ## end while ( my %row = $sth->hash)
$sth->finish;
$max_revision->finish;
finish($session);
print "\n";

View file

@ -47,8 +47,15 @@ $session->{_request} = $request;
$auth = WebGUI::Auth->new( $session, $AUTH_METHOD );
my $username = $session->id->generate;
my $language = "German";
my $language = "PigLatin";
push @cleanupUsernames, $username;
installPigLatin();
WebGUI::Test->addToCleanup(sub {
unlink File::Spec->catfile(WebGUI::Test->lib, qw/WebGUI i18n PigLatin WebGUI.pm/);
unlink File::Spec->catfile(WebGUI::Test->lib, qw/WebGUI i18n PigLatin.pm/);
rmdir File::Spec->catdir(WebGUI::Test->lib, qw/WebGUI i18n PigLatin/);
});
$session->scratch->setLanguageOverride($language);
$output = $auth->createAccountSave( $username, { }, "PASSWORD" );
WebGUI::Test->addToCleanup(sub {
@ -77,6 +84,7 @@ is(
);
is $session->user->profileField('language'), $language, 'languageOverride is taken in to account in createAccountSave';
$session->scratch->delete('language'); ##Remove language override
# Session Cleanup
$session->{_request} = $oldRequest;
@ -106,4 +114,17 @@ is $output, undef, 'login returns undef when showMessageOnLogin is false';
# Session Cleanup
$session->{_request} = $oldRequest;
sub installPigLatin {
use File::Copy;
mkdir File::Spec->catdir(WebGUI::Test->lib, 'WebGUI', 'i18n', 'PigLatin');
copy(
WebGUI::Test->getTestCollateralPath('WebGUI.pm'),
File::Spec->catfile(WebGUI::Test->lib, qw/WebGUI i18n PigLatin WebGUI.pm/)
);
copy(
WebGUI::Test->getTestCollateralPath('PigLatin.pm'),
File::Spec->catfile(WebGUI::Test->lib, qw/WebGUI i18n PigLatin.pm/)
);
}

View file

@ -18,6 +18,7 @@ use strict;
use lib "$FindBin::Bin/lib";
use Test::More;
use Data::Dumper;
use File::Spec;
use WebGUI::Test; # Must use this before any other WebGUI modules
use WebGUI::Session;
use WebGUI::Form::Text;
@ -92,11 +93,19 @@ ok( $ff = $langField->formField, 'formField method returns something, langua
$ffvalue = $session->user->profileField('language');
like( $ff, qr/value="$ffvalue"[^>]+selected/, 'html returned contains value, language field, session user' );
installPigLatin();
WebGUI::Test->addToCleanup(sub {
unlink File::Spec->catfile(WebGUI::Test->lib, qw/WebGUI i18n PigLatin WebGUI.pm/);
unlink File::Spec->catfile(WebGUI::Test->lib, qw/WebGUI i18n PigLatin.pm/);
rmdir File::Spec->catdir(WebGUI::Test->lib, qw/WebGUI i18n PigLatin/);
});
$ff = undef;
$ffvalue = "German";
$ffvalue = "PigLatin";
$session->scratch->setLanguageOverride($ffvalue);
ok( $ff = $langField->formField, 'formField method returns something, language field, session user, languageOverride' );
like( $ff, qr/value="$ffvalue"[^>]+selected/, 'html returned contains value, language field, session user, languageOverride' );
$session->scratch->delete('language');
###########################################################
#
@ -204,3 +213,19 @@ $newProfileField3->set({ required => 1});
is ($newProfileField3->get('required'), 1, 'set required = 1');
is ($newProfileField3->get('editable'), 1, '... editable = 1');
$newProfileField3->delete;
sub installPigLatin {
use File::Copy;
mkdir File::Spec->catdir(WebGUI::Test->lib, 'WebGUI', 'i18n', 'PigLatin');
copy(
WebGUI::Test->getTestCollateralPath('WebGUI.pm'),
File::Spec->catfile(WebGUI::Test->lib, qw/WebGUI i18n PigLatin WebGUI.pm/)
);
copy(
WebGUI::Test->getTestCollateralPath('PigLatin.pm'),
File::Spec->catfile(WebGUI::Test->lib, qw/WebGUI i18n PigLatin.pm/)
);
}