Merge branch 'master' of git@github.com:plainblack/webgui
Conflicts: docs/changelog/7.x.x.txt
This commit is contained in:
commit
90e3cd6b6f
6 changed files with 62 additions and 6 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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]);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
|
|
|
|||
23
t/Auth.t
23
t/Auth.t
|
|
@ -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/)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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/)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue