/[notice-sender]/trunk/Nos.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/Nos.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 69 by dpavlin, Mon Aug 1 08:59:36 2005 UTC revision 70 by dpavlin, Tue Aug 2 19:41:28 2005 UTC
# Line 164  Delete list from database. Line 164  Delete list from database.
164    
165   my $ok = delete_list(   my $ok = delete_list(
166          list => 'My list'          list => 'My list'
167            aliases => '/etc/mail/mylist',
168   );   );
169    
170  Returns false if list doesn't exist.  Returns false if list doesn't exist.
# Line 179  sub delete_list { Line 180  sub delete_list {
180    
181          $args->{'list'} = lc($args->{'list'});          $args->{'list'} = lc($args->{'list'});
182    
183            my $aliases = $args->{'aliases'} || croak "need path to aliases file";
184    
185          my $lists = $self->{'loader'}->find_class('lists');          my $lists = $self->{'loader'}->find_class('lists');
186    
187          my $this_list = $lists->search( name => $args->{'list'} )->first || return;          my $this_list = $lists->search( name => $args->{'list'} )->first || return;
188    
189            $self->_remove_alias( email => $this_list->email, aliases => $aliases);
190    
191          $this_list->delete || croak "can't delete list\n";          $this_list->delete || croak "can't delete list\n";
192    
193          return $lists->dbi_commit || croak "can't commit";          return $lists->dbi_commit || croak "can't commit";
# Line 759  sub _add_aliases { Line 764  sub _add_aliases {
764                  $a->append($email, $target) or croak "can't add alias ".$a->error_check;                  $a->append($email, $target) or croak "can't add alias ".$a->error_check;
765          }          }
766    
767            #$a->write($aliases) or croak "can't save aliases $aliases ".$a->error_check;
768    
769          return 1;          return 1;
770  }  }
771    
# Line 841  sub _get_list { Line 848  sub _get_list {
848          return $lists->search({ name => lc($name) })->first;          return $lists->search({ name => lc($name) })->first;
849  }  }
850    
851    
852    =head2 _remove_alias
853    
854    Remove list alias
855    
856     my $ok = $nos->_remove_alias(
857            email => 'mylist@example.com',
858            aliases => '/etc/mail/mylist',
859     );
860    
861    Returns true if list is removed or false if list doesn't exist. Dies in case of error.
862    
863    =cut
864    
865    sub _remove_alias {
866            my $self = shift;
867    
868            my $arg = {@_};
869    
870            my $email = lc($arg->{'email'}) || confess "can't remove alias without email";
871            my $aliases = lc($arg->{'aliases'}) || confess "can't remove alias without list";
872    
873            my $a = new Mail::Alias($aliases) || croak "can't open aliases file $aliases: $!";
874    
875            if ($a->exists($email)) {
876                    $a->delete($email) || croak "can't remove alias $email";
877            } else {
878                    return 0;
879            }
880    
881            return 1;
882    
883    }
884    
885  ###  ###
886  ### SOAP  ### SOAP
887  ###  ###
# Line 933  sub NewList { Line 974  sub NewList {
974  sub DeleteList {  sub DeleteList {
975          my $self = shift;          my $self = shift;
976    
977            my $aliases = $nos->{'aliases'} || croak "need 'aliases' argument to new constructor";
978    
979          if ($_[0] !~ m/^HASH/) {          if ($_[0] !~ m/^HASH/) {
980                  return $nos->delete_list(                  return $nos->delete_list(
981                          list => $_[0],                          list => $_[0],
982                            aliases => $aliases,
983                  );                  );
984          } else {          } else {
985                  return $nos->delete_list( %{ shift @_ } );                  return $nos->delete_list( %{ shift @_ }, aliases => $aliases );
986          }          }
987  }  }
988    

Legend:
Removed from v.69  
changed lines
  Added in v.70

  ViewVC Help
Powered by ViewVC 1.1.26