Skip to content

Commit fcd9334

Browse files
committedMar 20, 2012
Fix the duplicating of events with related links that have restrictive permissions. Fixes bug #12010.
1 parent 1eb5579 commit fcd9334

File tree

3 files changed

+27
-5
lines changed

3 files changed

+27
-5
lines changed
 

‎docs/changelog/7.x.x.txt

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
7.10.25
2+
- fixed #12010 related link duplication where links have group view restrictions
23
- fixed #12297: keywords.form missing from Post template help
34
- fixed #12321: Error while deleting a group.
45
- fixed #12322: Cache/CHI stomps on the config file

‎lib/WebGUI/Asset/Event.pm

+5-1
Original file line numberDiff line numberDiff line change
@@ -420,7 +420,7 @@ sub duplicate {
420420
my $newAsset = $self->SUPER::duplicate(@_);
421421
my $newStorage = $self->getStorageLocation->copy;
422422
$newAsset->update({storageId=>$newStorage->getId});
423-
my $links = $self->getRelatedLinks();
423+
my $links = $self->getRelatedLinks('nolimit');
424424
my $id = $self->session->id;
425425
foreach my $link (@{ $links }) {
426426
$link->{new_event} = 1;
@@ -1076,12 +1076,16 @@ Gets an arrayref of hashrefs of related links.
10761076

10771077
sub getRelatedLinks {
10781078
my $self = shift;
1079+
my $limitflag = shift || 'yes';
10791080

10801081
my $sth
10811082
= $self->session->db->prepare(
10821083
"SELECT * FROM Event_relatedlink WHERE assetId=? ORDER BY sequenceNumber",
10831084
);
10841085
$sth->execute([ $self->getId ]);
1086+
if( $limitflag eq 'nolimit' ) {
1087+
return [ map { $sth->hashRef } ( 1..$sth->rows ) ];
1088+
}
10851089

10861090
my @links;
10871091
while ( my $link = $sth->hashRef ) {

‎t/Asset/Event.t

+21-4
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ use WebGUI::Test;
1616

1717
use Test::More; # increment this value for each test you create
1818
use Test::Deep;
19-
plan tests => 30;
19+
20+
plan tests => 31;
2021

2122
use WebGUI::Session;
2223
use WebGUI::Storage;
@@ -172,10 +173,11 @@ $event6->setRelatedLinks([
172173
sequenceNumber => 2,
173174
linkurl => 'http://www.somewhere.com',
174175
linktext => 'Another great link',
175-
groupIdView => '7',
176+
groupIdView => '2',
176177
eventlinkId => '28',
177178
},
178179
]);
180+
$session->user({userId => 3}); # admin can see all the links
179181
cmp_deeply(
180182
$event6->getRelatedLinks(),
181183
[{
@@ -190,12 +192,25 @@ cmp_deeply(
190192
sequenceNumber => 2,
191193
linkURL => 'http://www.somewhere.com',
192194
linktext => 'Another great link',
193-
groupIdView => '7',
195+
groupIdView => '2',
194196
eventlinkId => '28',
195197
assetId => $event6->getId,
196198
}],
197199
'related links stored in the database correctly'
198200
);
201+
$session->user({userId => 1}); # visitor can only see one link
202+
cmp_deeply(
203+
$event6->getRelatedLinks(),
204+
[{
205+
sequenceNumber => 1,
206+
linkURL => 'http://www.nowhere.com',
207+
linktext => 'Great link',
208+
groupIdView => '7',
209+
eventlinkId => '27',
210+
assetId => $event6->getId,
211+
}],
212+
'related links:user access restriction works'
213+
);
199214

200215
#######################################
201216
#
@@ -206,6 +221,7 @@ cmp_deeply(
206221
my $event6b = $event6->duplicate();
207222
ok($session->id->valid($event6b->get('storageId')), 'duplicated event got a valid storageId');
208223
isnt($event6b->get('storageId'), $event6->get('storageId'), 'duplicating an asset creates a new storage location');
224+
$session->user({userId => 3}); # admin can see all the links
209225
cmp_deeply(
210226
$event6b->getRelatedLinks(),
211227
[{
@@ -220,12 +236,13 @@ cmp_deeply(
220236
sequenceNumber => 2,
221237
linkURL => 'http://www.somewhere.com',
222238
linktext => 'Another great link',
223-
groupIdView => '7',
239+
groupIdView => '2',
224240
eventlinkId => ignore(),
225241
assetId => $event6b->getId,
226242
}],
227243
'duplicated event has relatedLinks'
228244
);
245+
$session->user({userId => 1}); # run remaining tests as visitor
229246

230247
#######################################
231248
#

0 commit comments

Comments
 (0)