# case-sensitive, but most of our DBs are case-insensitive, so we do
# this check case-insensitively.
if (!grep { lc($_) eq lc($result) } @{ $self->see_also }) {
+ my $privs;
+ my $can = $self->check_can_change_field('see_also', '', $result, \$privs);
+ if (!$can) {
+ ThrowUserError('illegal_change', { field => 'see_also',
+ newvalue => $result,
+ privs => $privs });
+ }
+
push(@{ $self->see_also }, $result);
}
}
sub remove_see_also {
my ($self, $url) = @_;
my $see_also = $self->see_also;
- @$see_also = grep { lc($_) ne lc($url) } @$see_also;
+ my @new_see_also = grep { lc($_) ne lc($url) } @$see_also;
+ my $privs;
+ my $can = $self->check_can_change_field('see_also', $see_also, \@new_see_also, \$privs);
+ if (!$can) {
+ ThrowUserError('illegal_change', { field => 'see_also',
+ oldvalue => $url,
+ privs => $privs });
+ }
+ $self->{see_also} = \@new_see_also;
}
#####################################################################