fixes to the Gallery

This commit is contained in:
Doug Bell 2007-12-18 21:17:44 +00:00
parent 99274cd4ee
commit 53a1cbc7c2
8 changed files with 72 additions and 27 deletions

View file

@ -159,6 +159,19 @@ sub applyConstraints {
#----------------------------------------------------------------------------
=head2 canAdd ( )
Override canAdd to ignore its permissions check. Permissions are handled
by the parent Gallery and other permissions methods.
=cut
sub canAdd {
return 1;
}
#----------------------------------------------------------------------------
=head2 canComment ( [userId] )
Returns true if the user can comment on this asset. C<userId> is a WebGUI
@ -556,12 +569,21 @@ sub prepareView {
sub processPropertiesFromFormPost {
my $self = shift;
my $form = $self->session->form;
my $errors = $self->SUPER::processPropertiesFromFormPost || [];
# Return if errors
return $errors if @$errors;
# Passes all checks
### Passes all checks
# Fix if adding a new photo
if ( $form->get("assetId") eq "new" ) {
$self->update({
ownerUserId => $self->session->user->userId,
});
}
$self->requestAutoCommit;
}

View file

@ -447,18 +447,31 @@ check. If no userId is passed, will check the current user.
Users can edit this gallery if they are part of the C<groupIdEdit> group.
Also checks if a user is adding a GalleryAlbum and allows them to if they are
part of the C<groupIdAddFile> group.
=cut
sub canEdit {
my $self = shift;
my $userId = shift;
my $user = $userId
? WebGUI::User->new( $self->session, $userId )
: $self->session->user
;
my $form = $self->session->form;
return $user->isInGroup( $self->get("groupIdEdit") );
if ( $form->get('func') eq "add" ) {
return $self->canAddFile( $userId );
}
elsif ( $form->get('func') eq "editSave" && $form->get('assetId') eq "new" ) {
return $self->canAddFile( $userId );
}
else {
my $user = $userId
? WebGUI::User->new( $self->session, $userId )
: $self->session->user
;
return $user->isInGroup( $self->get("groupIdEdit") );
}
}
#----------------------------------------------------------------------------

View file

@ -165,6 +165,19 @@ sub appendTemplateVarsFileLoop {
#----------------------------------------------------------------------------
=head2 canAdd ( )
Override canAdd to ignore its permissions check. Permissions are handled
by the parent Gallery and other permissions methods.
=cut
sub canAdd {
return 1;
}
#----------------------------------------------------------------------------
=head2 canAddFile ( [userId] )
Returns true if the user can add a file to this album. C<userId> is a WebGUI
@ -467,12 +480,20 @@ approval workflow.
sub processPropertiesFromFormPost {
my $self = shift;
my $form = $self->session->form;
my $errors = $self->SUPER::processPropertiesFromFormPost || [];
# Return if error
return $errors if @$errors;
# Passes all checks
### Passes all checks
# Fix if adding a new GalleryAlbum
if ( $form->get('assetId') eq "new" ) {
$self->update({
ownerUserId => $self->session->user->userId,
});
}
$self->requestAutoCommit;
}

View file

@ -119,6 +119,7 @@ our $HELP = {
namespace => 'Asset_GalleryAlbum',
},
],
variables => [ ],
},
'help slideshow' => {
@ -134,6 +135,7 @@ our $HELP = {
namespace => 'Asset_GalleryAlbum',
},
],
variables => [ ],
},
'help thumbnails' => {

View file

@ -25,10 +25,11 @@ use WebGUI::Session;
use WebGUI::Image;
use WebGUI::Storage::Image;
use WebGUI::Asset::File::Image;
use WebGUI::Form::File;
use Test::More; # increment this value for each test you create
use Test::Deep;
plan tests => 8;
plan tests => 7;
my $session = WebGUI::Test->session;
@ -75,15 +76,8 @@ is($storage->getId, $asset->getStorageLocation->getId, 'Cached Asset storage loc
$versionTag->commit;
my $imageStorage = WebGUI::Storage::Image->create($session);
$mocker->set_always('getValueFromPost', $imageStorage->getId);
my $imageFormStorage = $asset->getStorageFromPost();
isa_ok($imageFormStorage, 'WebGUI::Storage::Image', 'Asset::Image::getStorageFromPost');
END {
if (defined $versionTag and ref $versionTag eq 'WebGUI::VersionTag') {
$versionTag->rollback;
}
##Storage is cleaned up by rolling back the version tag
$imageStorage->delete;
}

View file

@ -50,11 +50,10 @@ END {
#----------------------------------------------------------------------------
# Tests
plan tests => 10;
plan tests => 9;
#----------------------------------------------------------------------------
# Test shortcut's link to original asset
# plan => 3
my $original = $shortcut->getShortcut;
ok(
@ -74,7 +73,6 @@ is(
#----------------------------------------------------------------------------
# Test trashing snippet trashes shortcut also
# plan tests => 3
$snippet->trash;
$shortcut = WebGUI::Asset->newByDynamicClass($session, $shortcut->getId);
@ -95,7 +93,6 @@ ok(
#----------------------------------------------------------------------------
# Test restoring snippet restores shortcut also
# plan tests => 3
$snippet->publish;
$shortcut = WebGUI::Asset->newByDynamicClass($session, $shortcut->getId);
@ -111,7 +108,6 @@ ok(
#----------------------------------------------------------------------------
# Test purging snippet purges shortcut also
# plan tests => 2
$snippet->purge;
$shortcut = WebGUI::Asset->newByDynamicClass($session, $shortcut->getId);
@ -120,7 +116,3 @@ ok(
"Purge Linked Asset: Shortcut is not defined",
);
ok(
!grep({ $_->getId eq $shortcut->getId } @{ $snippet->getAssetsInTrash }),
"Purge Linked Asset: Shortcut is not in trash",
);

View file

@ -26,7 +26,7 @@ my $session = WebGUI::Test->session;
my ($extensionTests, $fileIconTests) = setupDataDrivenTests($session);
my $numTests = 77; # increment this value for each test you create
my $numTests = 80; # increment this value for each test you create
plan tests => $numTests + scalar @{ $extensionTests } + scalar @{ $fileIconTests };
my $uploadDir = $session->config->get('uploadsPath');
@ -262,8 +262,9 @@ cmp_bag($s3copy->getFiles(), [ @filesToCopy ], 'copy: passing explicit variable
#
####################################################
is(scalar @{ $storage1->getFiles}, 3, 'storage1 has 2 files');
is(scalar @{ $storage1->getFiles }, 4, 'storage1 has 4 files');
is($storage1->deleteFile("testfile-hash-renamed.file"), 1, 'deleteFile: deleted 1 file');
is($storage1->deleteFile("testfile-hash-copied.file"), 1, 'deleteFile: deleted 1 file');
is($storage1->deleteFile("WebGUI.pm"), 1, 'deleteFile: deleted another file');
cmp_bag($storage1->getFiles, [$filename], 'deleteFile: storage1 has only 1 file');

View file

@ -202,7 +202,7 @@ is($thumbStore->getThumbnailUrl(), '', 'getThumbnailUrl returns undef if no file
is($WebGUI::Test::logger_error, q/Can't make a thumbnail url without a filename./, 'getThumbnailUrl logs an error message for not sending a filename');
is($thumbStore->getThumbnailUrl('round.png'), '', 'getThumbnailUrl returns undef if the requested file is not in the storage location');
is($WebGUI::Test::logger_error, q/Can't make a thumbnail for a file that is not in my storage location./, 'getThumbnailUrl logs an error message for not sending a filename');
is($WebGUI::Test::logger_error, q/Can't make a thumbnail for a file named 'round.png' that is not in my storage location./, 'getThumbnailUrl logs an error message for not sending a filename');
is($thumbStore->getThumbnailUrl('square.png'), $thumbStore->getUrl('thumb-square.png'), 'getThumbnailUrl returns the correct url');