aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Fripost/Schema
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Fripost/Schema')
-rw-r--r--lib/Fripost/Schema/Alias.pm24
-rw-r--r--lib/Fripost/Schema/List.pm23
-rw-r--r--lib/Fripost/Schema/Mailbox.pm24
3 files changed, 71 insertions, 0 deletions
diff --git a/lib/Fripost/Schema/Alias.pm b/lib/Fripost/Schema/Alias.pm
index c413257..0976093 100644
--- a/lib/Fripost/Schema/Alias.pm
+++ b/lib/Fripost/Schema/Alias.pm
@@ -134,6 +134,30 @@ sub add {
return $@;
}
+
+=item B<delete> (I<alias>, I<domain>, I<OPTIONS>)
+
+Delete the given alias.
+
+=cut
+
+sub delete {
+ my $self = shift;
+ my $l = shift;
+ my $d = shift;
+ my %options = @_;
+
+ my $mesg = $self->ldap->delete( "fva=$l,fvd=$d,".$self->suffix );
+ if ($mesg->code) {
+ if (defined $options{'-die'}) {
+ return $mesg->error unless $options{'-die'};
+ die $options{'-die'}."\n";
+ }
+ die $mesg->error;
+ }
+}
+
+
=back
=head1 GLOBAL OPTIONS
diff --git a/lib/Fripost/Schema/List.pm b/lib/Fripost/Schema/List.pm
index ad0902d..ec66f76 100644
--- a/lib/Fripost/Schema/List.pm
+++ b/lib/Fripost/Schema/List.pm
@@ -143,6 +143,29 @@ sub add {
}
+=item B<delete> (I<list>, I<domain>, I<OPTIONS>)
+
+Delete the given list. Note: this will NOT wipe the archives off the
+disk, but merely delete the list entry in the LDAP directory.
+
+=cut
+
+sub delete {
+ my $self = shift;
+ my $l = shift;
+ my $d = shift;
+ my %options = @_;
+
+ my $mesg = $self->ldap->delete( "fvl=$l,fvd=$d,".$self->suffix );
+ if ($mesg->code) {
+ if (defined $options{'-die'}) {
+ return $mesg->error unless $options{'-die'};
+ die $options{'-die'}."\n";
+ }
+ die $mesg->error;
+ }
+}
+
=back
diff --git a/lib/Fripost/Schema/Mailbox.pm b/lib/Fripost/Schema/Mailbox.pm
index a3ae4be..28ef376 100644
--- a/lib/Fripost/Schema/Mailbox.pm
+++ b/lib/Fripost/Schema/Mailbox.pm
@@ -160,6 +160,30 @@ sub add {
}
+=item B<delete> (I<mailbox>, I<domain>, I<OPTIONS>)
+
+Delete the given mailbox. Note: this will NOT wipe the mailbox off the
+disk, but merely delete its entry in the LDAP directory.
+
+=cut
+
+sub delete {
+ my $self = shift;
+ my $l = shift;
+ my $d = shift;
+ my %options = @_;
+
+ my $mesg = $self->ldap->delete( "fvu=$l,fvd=$d,".$self->suffix );
+ if ($mesg->code) {
+ if (defined $options{'-die'}) {
+ return $mesg->error unless $options{'-die'};
+ die $options{'-die'}."\n";
+ }
+ die $mesg->error;
+ }
+}
+
+
=back
=head1 GLOBAL OPTIONS