diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt
index 2fc0faf3b..c5898029e 100644
--- a/docs/changelog/7.x.x.txt
+++ b/docs/changelog/7.x.x.txt
@@ -1,4 +1,5 @@
7.7.19
+ - fixed #10845: Shop 'Who can manage' denied access
- fixed #10849: Shop: Bad behavior with no shipping drivers
- fixed #10843: Ad Sales: how many do I have to buy?
- fixed #10835: Ad Sales: Ad Space field not user-friendly
diff --git a/lib/WebGUI/Asset/Sku/Ad.pm b/lib/WebGUI/Asset/Sku/Ad.pm
index 572d1325a..a127bfb79 100644
--- a/lib/WebGUI/Asset/Sku/Ad.pm
+++ b/lib/WebGUI/Asset/Sku/Ad.pm
@@ -24,6 +24,7 @@ use WebGUI::Shop::Pay;
use WebGUI::AssetCollateral::Sku::Ad::Ad;
use WebGUI::AdSpace;
use WebGUI::AdSpace::Ad;
+use Data::Dumper;
=head1 NAME
@@ -322,42 +323,42 @@ sub onCompletePurchase {
# LATER: if we use Temp Storage for the image we need to move it to perm storage
if( $options->{adId} ne '' ) {
- $ad = WebGUI::AdSpace::Ad->new($self->session,$options->{adId});
- my $clicks = $options->{clicks} + $ad->get('clicksBought');
- my $impressions = $options->{impressions} + $ad->get('impressionsBought');
- $ad->set({
+ $ad = WebGUI::AdSpace::Ad->new($self->session,$options->{adId});
+ my $clicks = $options->{clicks} + $ad->get('clicksBought');
+ my $impressions = $options->{impressions} + $ad->get('impressionsBought');
+ $ad->set({
title => $options->{'adtitle'},
- clicksBought => $clicks,
- impressionsBought => $impressions,
- url => $options->{'link'},
- storageId => $options->{'image'},
- });
- } else {
+ clicksBought => $clicks,
+ impressionsBought => $impressions,
+ url => $options->{'link'},
+ storageId => $options->{'image'},
+ });
+ }
+ else {
$ad = WebGUI::AdSpace::Ad->create($self->session,$self->get('adSpace'),{
title => $options->{'adtitle'},
- clicksBought => $options->{'clicks'},
- impressionsBought => $options->{'impressions'},
- url => $options->{'link'},
- storageId => $options->{'image'},
- ownerUserId => $self->session->user->userId,
- isActive => 1,
- type => 'image',
- priority => $self->get('priority'),
- adSpace => $self->get('adSpace'),
+ clicksBought => $options->{'clicks'},
+ impressionsBought => $options->{'impressions'},
+ url => $options->{'link'},
+ storageId => $options->{'image'},
+ ownerUserId => $self->session->user->userId,
+ isActive => 1,
+ type => 'image',
+ priority => $self->get('priority'),
+ adSpace => $self->get('adSpace'),
});
}
WebGUI::AssetCollateral::Sku::Ad::Ad->create($self->session,{
- userId => $item->transaction->get('userId'),
- transactionItemId => $item->getId,
- adId => $ad->getId,
- clicksPurchased => $options->{'clicks'},
- impressionsPurchased => $options->{'impressions'},
- dateOfPurchase => $item->transaction->get('dateOfPurchase'),
- storedImage => $options->{'image'},
- isDeleted => 0,
- });
-
+ userId => $item->transaction->get('userId'),
+ transactionItemId => $item->getId,
+ adId => $ad->getId,
+ clicksPurchased => $options->{'clicks'},
+ impressionsPurchased => $options->{'impressions'},
+ dateOfPurchase => $item->transaction->get('dateOfPurchase'),
+ storedImage => $options->{'image'},
+ isDeleted => 0,
+ });
}
#-------------------------------------------------------------------
@@ -471,6 +472,7 @@ sub view {
my ($self) = @_;
my $session = $self->session;
my $options = $self->getOptions();
+ my $form = $session->form;
my $i18n = WebGUI::International->new($session, "Asset_AdSku");
my $adSpace = $self->getAdSpace;
@@ -496,20 +498,20 @@ sub view {
-value=>$options->{link},
-size=>40
}),
- formImage => WebGUI::Form::File($session, {
+ formImage => WebGUI::Form::Image($session, {
-name=>"formImage",
- -value=>$options->{image},
+ -value=>$form->get('formImage','image'),
-size=>40
-forceImageOnly=>1,
}),
formClicks => WebGUI::Form::Integer($session, {
-name=>"formClicks",
- -value=>$options->{clicks},
+ -value=>$options->{clicks} || $adSpace->get('minimumClicks'),
-size=>40
}),
formImpressions => WebGUI::Form::Integer($session, {
-name=>"formImpressions",
- -value=>$options->{impressions},
+ -value=>$options->{impressions} || $adSpace->get('minimumImpressions'),
-size=>40
}),
formAdId => WebGUI::Form::Hidden($session, {
@@ -542,7 +544,10 @@ sub www_addToCart {
my $form = $session->form;
my @errors;
#my $imageStorage = $self->getOptions->{image} || WebGUI::Storage->create($session); # LATER should be createTemp
+ $session->log->warn(Dumper($self->getOptions));
my $imageStorageId = $form->process('formImage', 'image'); # , $self->getOptions->{image});
+ $session->log->warn("storageId: $imageStorageId");
+ $session->log->warn("storageText: ". $form->process('formImage'));
my $imageStorage = WebGUI::Storage->get($session,$imageStorageId);
my $code;
if( not defined $imageStorage ) {
@@ -599,8 +604,10 @@ sub www_addToCart {
impressions => $impressions,
adId => $adId,
image => $imageStorageId,
- error_msg => join( '
', @errors ),
+ error_msg => join( '
', @errors ),
});
+ ##Since Sku Options do not persist until an item is created, we need a way to persist the storageId through the
+ ##form generation, and back into www_addToCart.
}
return $self->www_view;
}
diff --git a/lib/WebGUI/Shop/Admin.pm b/lib/WebGUI/Shop/Admin.pm
index e8d92017b..3d83c8678 100644
--- a/lib/WebGUI/Shop/Admin.pm
+++ b/lib/WebGUI/Shop/Admin.pm
@@ -132,7 +132,7 @@ Displays the general commerce settings.
sub www_editSettings {
my $self = shift;
- return $self->session->privilege->adminOnly() unless ($self->session->user->isAdmin);
+ return $self->session->privilege->adminOnly() unless ($self->canManage);
my $i18n = WebGUI::International->new($self->session, "Shop");
my $ac = $self->getAdminConsole;
my $setting = $self->session->setting;