summaryrefslogtreecommitdiff
path: root/fml/lib/FML/Command
diff options
context:
space:
mode:
authortmu <tmu>2002-11-20 10:58:09 +0000
committertmu <tmu>2002-11-20 10:58:09 +0000
commit0a888ed3bc338591243fa8afd91f7588bb9fd8d3 (patch)
tree36e56c9c9880d49c9c56747d2f3b1b865de0ef74 /fml/lib/FML/Command
parent53b010fc8d252ea041adccd78011850e5b301f15 (diff)
downloadfml8-0a888ed3bc338591243fa8afd91f7588bb9fd8d3.tar.gz
fml8-0a888ed3bc338591243fa8afd91f7588bb9fd8d3.tar.bz2
fml8-0a888ed3bc338591243fa8afd91f7588bb9fd8d3.zip
init digest mode change for user
Diffstat (limited to 'fml/lib/FML/Command')
-rw-r--r--fml/lib/FML/Command/User/digest.pm129
1 files changed, 129 insertions, 0 deletions
diff --git a/fml/lib/FML/Command/User/digest.pm b/fml/lib/FML/Command/User/digest.pm
new file mode 100644
index 00000000..9bd53019
--- /dev/null
+++ b/fml/lib/FML/Command/User/digest.pm
@@ -0,0 +1,129 @@
+#-*- perl -*-
+#
+# Copyright (C) 2002 MURASHITA Takuya
+# All rights reserved. This program is free software; you can
+# redistribute it and/or modify it under the same terms as Perl itself.
+#
+# $FML: on.pm,v 1.4 2002/09/22 14:56:48 fukachan Exp $
+#
+
+package FML::Command::User::digest;
+use strict;
+use vars qw(@ISA @EXPORT @EXPORT_OK $AUTOLOAD);
+use Carp;
+use FML::Log qw(Log LogWarn LogError);
+
+
+=head1 NAME
+
+FML::Command::User::digest - digest
+
+=head1 SYNOPSIS
+
+See C<FML::Command> for more details.
+
+=head1 DESCRIPTION
+
+digest mode change on or off
+
+=head1 METHODS
+
+=head2 C<process($curproc, $command_args)>
+
+=cut
+
+
+# Descriptions: standard constructor
+# Arguments: OBJ($self)
+# Side Effects: none
+# Return Value: OBJ
+sub new
+{
+ my ($self) = @_;
+ my ($type) = ref($self) || $self;
+ my $me = {};
+ return bless $me, $type;
+}
+
+
+# Descriptions: need lock or not
+# Arguments: none
+# Side Effects: none
+# Return Value: NUM( 1 or 0)
+sub need_lock { 1;}
+
+
+# Descriptions: digest on or off adapter.
+# Arguments: OBJ($self) OBJ($curproc) HASH_REF($command_args)
+# Side Effects: update database for confirmation.
+# prepare reply message.
+# Return Value: none
+sub process
+{
+ my ($self, $curproc, $command_args) = @_;
+ my $config = $curproc->{ config };
+ my $member_map = $config->{ primary_member_map };
+ my $recipient_map = $config->{ primary_recipient_map };
+ my $cache_dir = $config->{ db_dir };
+ my $keyword = $config->{ confirm_command_prefix };
+ my $command = $command_args->{ command };
+ my $address = $curproc->{ credential }->sender();
+ my $mode = "";
+
+ # fundamental check
+ croak("\$member_map is not specified") unless $member_map;
+ croak("\$recipient_map is not specified") unless $recipient_map;
+
+ use FML::Credential;
+ my $cred = new FML::Credential $curproc;
+
+ # if not member, on request is wrong.
+ unless ($cred->is_member($address)) {
+ $curproc->reply_message_nl('error.not_member');
+ LogError("digest request from not member");
+ croak("not member");
+ return;
+ }
+
+ if ($command =~ /digest\s+(\w+)/)
+ {
+ $mode = $1;
+ }
+
+ $command_args->{ command_data } = $address;
+ Log("change digest mode $command $mode");
+ use FML::Command::Admin::digest;
+ my $obj = new FML::Command::Admin::digest $curproc,$command_args;
+ if($mode eq "on") {
+ $obj->_on($curproc, $command_args);
+ }
+ if($mode eq "off") {
+ $obj->_off($curproc, $command_args);
+ }
+}
+
+
+=head1 CODING STYLE
+
+See C<http://www.fml.org/software/FNF/> on fml coding style guide.
+
+=head1 AUTHOR
+
+MURASHITA Takuya
+
+=head1 COPYRIGHT
+
+Copyright (C) 2002 MURASHITA Takuya
+
+All rights reserved. This program is free software; you can
+redistribute it and/or modify it under the same terms as Perl itself.
+
+=head1 HISTORY
+
+FML::Command::User::digest first appeared in fml8 mailing list driver package.
+See C<http://www.fml.org/> for more details.
+
+=cut
+
+
+1;