refactored storage api to handle new session stuff
This commit is contained in:
parent
02c5a65857
commit
1e5034acd6
11 changed files with 84 additions and 45 deletions
|
|
@ -813,6 +813,18 @@ perl -pi.bak -e 's!WebGUI\:\:ProfileField\-\>new\(!WebGUI::ProfileField->new(\$s
|
|||
perl -pi.bak -e 's!WebGUI\:\:ProfileField\-\>create\(!WebGUI::ProfileField->create(\$self->session,!g' fileNameGoesHere
|
||||
|
||||
|
||||
5.23.21 WebGUI::Storage API Refactored
|
||||
|
||||
The WebGUI::Storage API has been refactored to accept $session in it's
|
||||
constructors.
|
||||
|
||||
perl -pi.bak -e 's!WebGUI\:\:Storage\-\>get\(!WebGUI::Storage->get(\$self->session,!g' fileNameGoesHere
|
||||
perl -pi.bak -e 's!WebGUI\:\:Storage\-\>create\(!WebGUI::Storage->create(\$self->session,!g' fileNameGoesHere
|
||||
perl -pi.bak -e 's!WebGUI\:\:Storage\:\:Image\-\>get\(!WebGUI::Storage::Image->get(\$self->session,!g' fileNameGoesHere
|
||||
perl -pi.bak -e 's!WebGUI\:\:Storage\:\:Image\-\>create\(!WebGUI::Storage::Image->create(\$self->session,!g' fileNameGoesHere
|
||||
perl -pi.bak -e 's!WebGUI\:\:Storage\-\>createTemp\(!WebGUI::Storage->createTemp(\$self->session,!g' fileNameGoesHere
|
||||
perl -pi.bak -e 's!WebGUI\:\:Storage\:\:Image\-\>createTemp\(!WebGUI::Storage::Image->createTemp(\$self->session,!g' fileNameGoesHere
|
||||
|
||||
|
||||
|
||||
6. Automatic list of Assets in Help System.
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ sub addRevision {
|
|||
my $self = shift;
|
||||
my $newSelf = $self->SUPER::addRevision(@_);
|
||||
if ($self->get("storageId")) {
|
||||
my $newStorage = WebGUI::Storage->get($self->get("storageId"))->copy;
|
||||
my $newStorage = WebGUI::Storage->get($self->session,$self->get("storageId"))->copy;
|
||||
$newSelf->update({storageId=>$newStorage->getId});
|
||||
}
|
||||
return $newSelf;
|
||||
|
|
@ -184,7 +184,7 @@ sub getStorageLocation {
|
|||
$self->{_storageLocation} = WebGUI::Storage->create;
|
||||
$self->update({storageId=>$self->{_storageLocation}->getId});
|
||||
} else {
|
||||
$self->{_storageLocation} = WebGUI::Storage->get($self->get("storageId"));
|
||||
$self->{_storageLocation} = WebGUI::Storage->get($self->session,$self->get("storageId"));
|
||||
}
|
||||
}
|
||||
return $self->{_storageLocation};
|
||||
|
|
@ -216,7 +216,7 @@ sub purge {
|
|||
my $self = shift;
|
||||
my $sth = $self->session->db->read("select storageId from FileAsset where assetId=".$self->session->db->quote($self->getId));
|
||||
while (my ($storageId) = $sth->array) {
|
||||
WebGUI::Storage->get($storageId)->delete;
|
||||
WebGUI::Storage->get($self->session,$storageId)->delete;
|
||||
}
|
||||
$sth->finish;
|
||||
return $self->SUPER::purge;
|
||||
|
|
|
|||
|
|
@ -163,7 +163,7 @@ sub getStorageLocation {
|
|||
$self->{_storageLocation} = WebGUI::Storage::Image->create;
|
||||
$self->update({storageId=>$self->{_storageLocation}->getId});
|
||||
} else {
|
||||
$self->{_storageLocation} = WebGUI::Storage::Image->get($self->get("storageId"));
|
||||
$self->{_storageLocation} = WebGUI::Storage::Image->get($self->session,$self->get("storageId"));
|
||||
}
|
||||
}
|
||||
return $self->{_storageLocation};
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ sub addRevision {
|
|||
my $self = shift;
|
||||
my $newSelf = $self->SUPER::addRevision(@_);
|
||||
if ($self->get("storageId")) {
|
||||
my $newStorage = WebGUI::Storage->get($self->get("storageId"))->copy;
|
||||
my $newStorage = WebGUI::Storage->get($self->session,$self->get("storageId"))->copy;
|
||||
$newSelf->update({storageId=>$newStorage->getId});
|
||||
}
|
||||
return $newSelf;
|
||||
|
|
@ -249,7 +249,7 @@ sub getAvatarUrl {
|
|||
my $user = WebGUI::User->new($self->get('ownerUserId'));
|
||||
#Get avatar field, storage Id.
|
||||
my $storageId = $user->profileField("avatar");
|
||||
my $avatar = WebGUI::Storage::Image->get($storageId);
|
||||
my $avatar = WebGUI::Storage::Image->get($self->session,$storageId);
|
||||
if ($avatar) {
|
||||
#Get url from storage object.
|
||||
foreach my $imageName (@{$avatar->getFiles}) {
|
||||
|
|
@ -391,7 +391,7 @@ sub getStorageLocation {
|
|||
$self->{_storageLocation} = WebGUI::Storage::Image->create;
|
||||
$self->update({storageId=>$self->{_storageLocation}->getId});
|
||||
} else {
|
||||
$self->{_storageLocation} = WebGUI::Storage::Image->get($self->get("storageId"));
|
||||
$self->{_storageLocation} = WebGUI::Storage::Image->get($self->session,$self->get("storageId"));
|
||||
}
|
||||
}
|
||||
return $self->{_storageLocation};
|
||||
|
|
@ -716,7 +716,7 @@ sub purge {
|
|||
my $self = shift;
|
||||
my $sth = $self->session->db->read("select storageId from Post where assetId=".$self->session->db->quote($self->getId));
|
||||
while (my ($storageId) = $sth->array) {
|
||||
WebGUI::Storage->get($storageId)->delete;
|
||||
WebGUI::Storage->get($self->session,$storageId)->delete;
|
||||
}
|
||||
$sth->finish;
|
||||
$self->session->db->write("delete from Post_rating where assetId=".$self->session->db->quote($self->getId));
|
||||
|
|
|
|||
|
|
@ -381,7 +381,7 @@ sub www_styleWizard {
|
|||
my $storageId = $self->session->form->file("logo");
|
||||
my $logo;
|
||||
if ($storageId) {
|
||||
my $storage = WebGUI::Storage::Image->get($self->session->form->file("logo"));
|
||||
my $storage = WebGUI::Storage::Image->get($self->session,$self->session->form->file("logo"));
|
||||
$logo = $self->addChild({
|
||||
className=>"WebGUI::Asset::File::Image",
|
||||
title=>$self->session->form->text("heading")." Logo",
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ sub getCookieJar {
|
|||
$storage = WebGUI::Storage->create;
|
||||
$self->update({cookieJarStorageId=>$storage->getId});
|
||||
} else {
|
||||
$storage = WebGUI::Storage->get($self->get("cookieJarStorageId"));
|
||||
$storage = WebGUI::Storage->get($self->session,$self->get("cookieJarStorageId"));
|
||||
}
|
||||
return $storage;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ sub _addFileTab {
|
|||
return;
|
||||
}
|
||||
|
||||
my $file = WebGUI::Storage->get($self->get($column));
|
||||
my $file = WebGUI::Storage->get($self->session,$self->get($column));
|
||||
$tabform->getTab("properties")->readOnly(
|
||||
-value=>'<a href="'.$self->getUrl('func=deleteFileConfirm&file='.$column).'">'.$i18n->get("deleteImage").'</a>',
|
||||
-label=>$i18n->get($internationalId),
|
||||
|
|
@ -53,7 +53,7 @@ sub _duplicateFile {
|
|||
my $newAsset = $_[0];
|
||||
my $column = $_[1];
|
||||
if($self->get($column)){
|
||||
my $file = WebGUI::Storage->get($self->get($column));
|
||||
my $file = WebGUI::Storage->get($self->session,$self->get($column));
|
||||
my $newstore = $file->copy;
|
||||
$newAsset->update({ $column=>$newstore->getId });
|
||||
}
|
||||
|
|
@ -85,7 +85,7 @@ sub addRevision {
|
|||
my $newSelf = $self->SUPER::addRevision(@_);
|
||||
foreach my $field (qw(image1 image2 image3 brochure manual warranty)) {
|
||||
if ($self->get($field)) {
|
||||
my $newStorage = WebGUI::Storage->get($self->get($field))->copy;
|
||||
my $newStorage = WebGUI::Storage->get($self->session,$self->get($field))->copy;
|
||||
$newSelf->update({$field=>$newStorage->getId});
|
||||
$self->session->db->write("update Product set $field=".$self->session->db->quote($newStorage->getId)." where assetId=".$self->session->db->quote($newSelf->getId)." and revisionDate=".$self->session->db->quote($newSelf->get("revisionDate")));
|
||||
}
|
||||
|
|
@ -286,7 +286,7 @@ sub purge {
|
|||
while (my @array = $sth->array) {
|
||||
foreach my $id (@array){
|
||||
next if ($id eq "");
|
||||
WebGUI::Storage->get($id)->delete;
|
||||
WebGUI::Storage->get($self->session,$id)->delete;
|
||||
}
|
||||
}
|
||||
$sth->finish;
|
||||
|
|
@ -302,12 +302,12 @@ sub purge {
|
|||
|
||||
sub purgeRevision {
|
||||
my $self = shift;
|
||||
WebGUI::Storage->get($self->get("image1"))->delete if ($self->get("image1"));
|
||||
WebGUI::Storage->get($self->get("image2"))->delete if ($self->get("image2"));
|
||||
WebGUI::Storage->get($self->get("image3"))->delete if ($self->get("image3"));
|
||||
WebGUI::Storage->get($self->get("brochure"))->delete if ($self->get("brochure"));
|
||||
WebGUI::Storage->get($self->get("manual"))->delete if ($self->get("manual"));
|
||||
WebGUI::Storage->get($self->get("warranty"))->delete if ($self->get("warranty"));
|
||||
WebGUI::Storage->get($self->session,$self->get("image1"))->delete if ($self->get("image1"));
|
||||
WebGUI::Storage->get($self->session,$self->get("image2"))->delete if ($self->get("image2"));
|
||||
WebGUI::Storage->get($self->session,$self->get("image3"))->delete if ($self->get("image3"));
|
||||
WebGUI::Storage->get($self->session,$self->get("brochure"))->delete if ($self->get("brochure"));
|
||||
WebGUI::Storage->get($self->session,$self->get("manual"))->delete if ($self->get("manual"));
|
||||
WebGUI::Storage->get($self->session,$self->get("warranty"))->delete if ($self->get("warranty"));
|
||||
return $self->SUPER::purgeRevision;
|
||||
}
|
||||
|
||||
|
|
@ -424,7 +424,7 @@ sub www_deleteFileConfirm {
|
|||
my $column = $self->session->form->process("file");
|
||||
return $self->session->privilege->insufficient() unless ($self->canEdit);
|
||||
my $store = $self->get($column);
|
||||
my $file = WebGUI::Storage->get($store);
|
||||
my $file = WebGUI::Storage->get($self->session,$store);
|
||||
$file->delete;
|
||||
$self->update({$column => ''});
|
||||
return $self->www_edit;
|
||||
|
|
@ -724,40 +724,40 @@ sub view {
|
|||
#---brochure
|
||||
my $i18n = WebGUI::International->new($self->session,'Asset_Product');
|
||||
if ($brochure) {
|
||||
$file = WebGUI::Storage->get($brochure);
|
||||
$file = WebGUI::Storage->get($self->session,$brochure);
|
||||
$var{"brochure.icon"} = $self->getFileIconUrl($file);
|
||||
$var{"brochure.label"} = $i18n->get(13);
|
||||
$var{"brochure.URL"} = $self->getFileUrl($file);
|
||||
}
|
||||
#---manual
|
||||
if ($manual) {
|
||||
$file = WebGUI::Storage->get($manual);
|
||||
$file = WebGUI::Storage->get($self->session,$manual);
|
||||
$var{"manual.icon"} = $self->getFileIconUrl($file);
|
||||
$var{"manual.label"} = $i18n->get(14);
|
||||
$var{"manual.URL"} = $self->getFileUrl($file);
|
||||
}
|
||||
#---warranty
|
||||
if ($warranty) {
|
||||
$file = WebGUI::Storage->get($warranty);
|
||||
$file = WebGUI::Storage->get($self->session,$warranty);
|
||||
$var{"warranty.icon"} = $self->getFileIconUrl($file);
|
||||
$var{"warranty.label"} = $i18n->get(15);
|
||||
$var{"warranty.URL"} = $self->getFileUrl($file);
|
||||
}
|
||||
#---image1
|
||||
if ($image1) {
|
||||
$file = WebGUI::Storage->get($image1);
|
||||
$file = WebGUI::Storage->get($self->session,$image1);
|
||||
$var{thumbnail1} = $self->getThumbnailUrl($file);
|
||||
$var{image1} = $self->getFileUrl($file);
|
||||
}
|
||||
#---image2
|
||||
if ($image2) {
|
||||
$file = WebGUI::Storage->get($image2);
|
||||
$file = WebGUI::Storage->get($self->session,$image2);
|
||||
$var{thumbnail2} = $self->getThumbnailUrl($file);
|
||||
$var{image2} = $self->getFileUrl($file);
|
||||
}
|
||||
#---image3
|
||||
if ($image3) {
|
||||
$file = WebGUI::Storage->get($image3);
|
||||
$file = WebGUI::Storage->get($self->session,$image3);
|
||||
$var{thumbnail3} = $self->getThumbnailUrl($file);
|
||||
$var{image3} = $self->getFileUrl($file);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ sub displayForm {
|
|||
return $self->toHtml unless $self->get("value");
|
||||
##There are files inside here, for each one, display the image
|
||||
##and another form control for deleting it.
|
||||
my $location = WebGUI::Storage->get($self->get("value"));
|
||||
my $location = WebGUI::Storage->get($self->session,$self->get("value"));
|
||||
my $id = $location->getId;
|
||||
my $fileForm = '';
|
||||
foreach my $file ( @{ $location->getFiles } ) {
|
||||
|
|
@ -126,7 +126,7 @@ form elements will just return their value.
|
|||
sub displayValue {
|
||||
my ($self) = @_;
|
||||
return '' unless $self->get("value");
|
||||
my $location = WebGUI::Storage->get($self->get("value"));
|
||||
my $location = WebGUI::Storage->get($self->session,$self->get("value"));
|
||||
local $_;
|
||||
my @files = map { sprintf qq!<img src="%s" /> %s!, $location->getFileIconUrl($_), $_; } @{ $location->getFiles };
|
||||
my $fileValue = join "<br />\n", @files;
|
||||
|
|
@ -147,14 +147,14 @@ sub getValueFromPost {
|
|||
my $self = shift;
|
||||
my $value = $self->session->request->param($self->get("name"));
|
||||
if ($self->session->request->param(join '_', '_', $self->get("name"), 'delete')) {
|
||||
my $storage = WebGUI::Storage->get($value);
|
||||
my $storage = WebGUI::Storage->get($self->session,$value);
|
||||
$storage->delete;
|
||||
return '';
|
||||
}
|
||||
else {
|
||||
my $storage;
|
||||
if ($value) {
|
||||
$storage = WebGUI::Storage::Image->get($value);
|
||||
$storage = WebGUI::Storage::Image->get($self->session,$value);
|
||||
}
|
||||
else {
|
||||
$storage = WebGUI::Storage::Image->create;
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ profile field.
|
|||
sub displayValue {
|
||||
my ($self) = @_;
|
||||
return '' unless $self->get("value");
|
||||
my $location = WebGUI::Storage->get($self->get("value"));
|
||||
my $location = WebGUI::Storage->get($self->session,$self->get("value"));
|
||||
local $_;
|
||||
my @files = map { sprintf qq!<img src="%s" />!, $location->getUrl($_) } @{ $location->getFiles };
|
||||
my $fileValue = join "<br />\n", @files;
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ sub process {
|
|||
my $url = shift;
|
||||
my $asset = WebGUI::Asset->newByUrl($session,$url);
|
||||
if (defined $asset) {
|
||||
my $storage = WebGUI::Storage->get($asset->get("storageId"));
|
||||
my $storage = WebGUI::Storage->get($session,$asset->get("storageId"));
|
||||
return $storage->getUrl($asset->get("filename"));
|
||||
} else {
|
||||
my $i18n = WebGUI::International->new($session, 'Macro_FileUrl');
|
||||
|
|
|
|||
|
|
@ -22,10 +22,6 @@ use POSIX;
|
|||
use Storable qw(nstore retrieve);
|
||||
use strict;
|
||||
use warnings;
|
||||
use WebGUI::ErrorHandler;
|
||||
use WebGUI::Id;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::URL;
|
||||
use WebGUI::Utility;
|
||||
use Apache2::Request;
|
||||
use Apache2::Upload;
|
||||
|
|
@ -42,7 +38,7 @@ This package provides a mechanism for storing and retrieving files that are not
|
|||
|
||||
use WebGUI::Storage;
|
||||
$store = WebGUI::Storage->create;
|
||||
$store = WebGUI::Storage->get($id);
|
||||
$store = WebGUI::Storage->get($self->session,$id);
|
||||
|
||||
$filename = $store->addFileFromFilesystem($pathToFile);
|
||||
$filename = $store->addFileFromFormPost($formVarName);
|
||||
|
|
@ -318,32 +314,44 @@ sub copy {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 create ( )
|
||||
=head2 create ( session )
|
||||
|
||||
Creates a new storage location on the file system.
|
||||
|
||||
=head3 session
|
||||
|
||||
A reference to the current session;
|
||||
|
||||
=cut
|
||||
|
||||
sub create {
|
||||
my $class = shift;
|
||||
my $id = $self->session->id->generate();
|
||||
my $self = $class->get($id);
|
||||
my $session = shift;
|
||||
my $id = $session->id->generate();
|
||||
my $self = $class->get($session,$id);
|
||||
$self->_makePath;
|
||||
return $self;
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 createTemp ( )
|
||||
=head2 createTemp ( session )
|
||||
|
||||
Creates a temporary storage location on the file system.
|
||||
|
||||
=head3 session
|
||||
|
||||
A reference to the current session.
|
||||
|
||||
=cut
|
||||
|
||||
sub createTemp {
|
||||
my $class = shift;
|
||||
my $session = shift;
|
||||
my $id = $self->session->id->generate();
|
||||
$id =~ m/^(.{2})/;
|
||||
my $self = {_id => $id, _part1 => 'temp', _part2 => $1};
|
||||
my $self = {_session=>$session, _id => $id, _part1 => 'temp', _part2 => $1};
|
||||
bless $self, ref($class)||$class;
|
||||
$self->_makePath;
|
||||
return $self;
|
||||
|
|
@ -385,10 +393,14 @@ sub deleteFile {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 get ( id )
|
||||
=head2 get ( session, id )
|
||||
|
||||
Returns a WebGUI::Storage object.
|
||||
|
||||
=head3 session
|
||||
|
||||
A reference to the current sesion.
|
||||
|
||||
=head3 id
|
||||
|
||||
The unique identifier for this file system storage location.
|
||||
|
|
@ -397,10 +409,11 @@ The unique identifier for this file system storage location.
|
|||
|
||||
sub get {
|
||||
my $class = shift;
|
||||
my $session = shift;
|
||||
my $id = shift;
|
||||
return undef unless $id;
|
||||
$id =~ m/^(.{2})(.{2})/;
|
||||
my $self = {_id => $id, _part1 => $1, _part2 => $2};
|
||||
my $self = {_session=>$session, _id => $id, _part1 => $1, _part2 => $2};
|
||||
bless $self, ref($class)||$class;
|
||||
$self->_makePath unless (-e $self->getPath); # create the folder in case it got deleted somehow
|
||||
return $self;
|
||||
|
|
@ -663,6 +676,20 @@ sub renameFile {
|
|||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head3 session ( )
|
||||
|
||||
Returns a reference to the current session.
|
||||
|
||||
=cut
|
||||
|
||||
sub session {
|
||||
my $self = shift;
|
||||
return $self->{_session};
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 setPrivileges ( ownerUserId, groupIdView, groupIdEdit )
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue