diff options
Diffstat (limited to 'Bugzilla')
-rw-r--r-- | Bugzilla/Component.pm | 5 | ||||
-rw-r--r-- | Bugzilla/Version.pm | 9 |
2 files changed, 14 insertions, 0 deletions
diff --git a/Bugzilla/Component.pm b/Bugzilla/Component.pm index 215119715..ceca7e794 100644 --- a/Bugzilla/Component.pm +++ b/Bugzilla/Component.pm @@ -155,6 +155,11 @@ sub remove_from_db { $dbh->bz_start_transaction(); + # Products must have at least one component. + if (scalar(@{$self->product->components}) == 1) { + ThrowUserError('component_is_last', { comp => $self }); + } + if ($self->bug_count) { if (Bugzilla->params->{'allowbugdeletion'}) { require Bugzilla::Bug; diff --git a/Bugzilla/Version.pm b/Bugzilla/Version.pm index 7f53add13..250c474ca 100644 --- a/Bugzilla/Version.pm +++ b/Bugzilla/Version.pm @@ -143,12 +143,21 @@ sub remove_from_db { my $self = shift; my $dbh = Bugzilla->dbh; + $dbh->bz_start_transaction(); + + # Products must have at least one version. + if (scalar(@{$self->product->versions}) == 1) { + ThrowUserError('version_is_last', { version => $self }); + } + # The version cannot be removed if there are bugs # associated with it. if ($self->bug_count) { ThrowUserError("version_has_bugs", { nb => $self->bug_count }); } $self->SUPER::remove_from_db(); + + $dbh->bz_commit_transaction(); } ############################### |