Skip to content

Commit 6d926b7

Browse files
committed
Fixup to validate enteredFrom data
1 parent f2d0813 commit 6d926b7

File tree

1 file changed

+17
-12
lines changed
  • lib/MusicBrainz/Server/Controller/WS/js

1 file changed

+17
-12
lines changed

lib/MusicBrainz/Server/Controller/WS/js/Edit.pm

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -203,9 +203,7 @@ our $data_processors = {
203203
$EDIT_RELATIONSHIP_DELETE => sub {
204204
my ($c, $loader, $data) = @_;
205205

206-
if (defined $data->{enteredFrom}) {
207-
$data->{entered_from} = delete $data->{enteredFrom};
208-
}
206+
process_entered_from($c, $loader, $data);
209207
},
210208

211209
$EDIT_RELATIONSHIPS_REORDER => sub {
@@ -225,9 +223,7 @@ our $data_processors = {
225223
$ordering->{old_order} = $relationship->link_order;
226224
}
227225

228-
if (defined $data->{enteredFrom}) {
229-
$data->{entered_from} = delete $data->{enteredFrom};
230-
}
226+
process_entered_from($c, $loader, $data);
231227
},
232228

233229
$EDIT_RELEASE_REORDER_MEDIUMS => sub {
@@ -284,9 +280,7 @@ sub process_entity {
284280
$data->{comment} = substr($data->{comment}, 0, 255);
285281
}
286282

287-
if (defined $data->{enteredFrom}) {
288-
$data->{entered_from} = delete $data->{enteredFrom};
289-
}
283+
process_entered_from($c, $loader, $data);
290284

291285
process_artist_credit($c, $loader, $data);
292286
}
@@ -367,6 +361,19 @@ sub process_artist_credit {
367361
if defined $data->{artist_credit};
368362
}
369363

364+
sub process_entered_from {
365+
my ($c, $loader, $data) = @_;
366+
367+
if (defined $data->{enteredFrom}) {
368+
my $entered_from = delete $data->{enteredFrom};
369+
my $entity_model = type_to_model($entered_from->{entity_type});
370+
my $entity = $c->model($entity_model)->get_by_gid($entered_from->{gid});
371+
if ($entity) {
372+
$data->{entered_from} = $entered_from;
373+
}
374+
}
375+
}
376+
370377
sub process_medium {
371378
my ($c, $loader, $data) = @_;
372379

@@ -476,9 +483,7 @@ sub process_relationship {
476483
);
477484
}
478485

479-
if (defined $data->{enteredFrom}) {
480-
$data->{entered_from} = delete $data->{enteredFrom};
481-
}
486+
process_entered_from($c, $loader, $data);
482487

483488
delete $data->{id};
484489
delete $data->{linkTypeID};

0 commit comments

Comments
 (0)