summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2017-03-03 10:28:17 +0100
committerYorhel <git@yorhel.nl>2017-03-03 10:28:17 +0100
commitcb1af38ef7cfc49932ed5e3176505f4e2f3e639c (patch)
treec459cc7123a372d51b986ea32d56239762d5cd6f /lib
parent96f3499884e5290a33b263cca81feac16e3df524 (diff)
Don't allow deleted or unapproved traits to be linked to char entries
Fixes https://vndb.org/t2520.213
Diffstat (limited to 'lib')
-rw-r--r--lib/VNDB/Handler/Chars.pm3
-rw-r--r--lib/VNDB/Handler/Traits.pm1
2 files changed, 4 insertions, 0 deletions
diff --git a/lib/VNDB/Handler/Chars.pm b/lib/VNDB/Handler/Chars.pm
index 5caf677e..ab4a5627 100644
--- a/lib/VNDB/Handler/Chars.pm
+++ b/lib/VNDB/Handler/Chars.pm
@@ -339,6 +339,9 @@ sub edit {
$frm->{desc} = $self->bbSubstLinks($frm->{desc});
$frm->{main_spoil} = 0 if !$frm->{main};
+ my %traits = map +($_->{id}, 1), @{$self->dbTraitGet(results => 500, state => 2, id => [ map $_->[0], @traits ])};
+ @traits = grep $traits{$_->[0]}, @traits;
+
# check for changes
my $same = $id && !grep $frm->{$_} ne $b4{$_}, keys %b4;
return $self->resRedirect("/c$id", 'post') if !$copy && $same;
diff --git a/lib/VNDB/Handler/Traits.pm b/lib/VNDB/Handler/Traits.pm
index 0f4169aa..41057c44 100644
--- a/lib/VNDB/Handler/Traits.pm
+++ b/lib/VNDB/Handler/Traits.pm
@@ -413,6 +413,7 @@ sub traitxml {
results => $f->{r},
page => 1,
sort => 'group',
+ state => 2,
!$f->{q} ? () : $f->{q} =~ /^i([1-9]\d*)/ ? (id => $1) : (search => $f->{q}, sort => 'search'),
$f->{id} && $f->{id}[0] ? (id => $f->{id}) : (),
);