source: trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Mail/Aliases.pm @ 2013

Last change on this file since 2013 was 2013, checked in by nanardon, 7 years ago

Sort aliases in mail file

File size: 1.5 KB
Line 
1package LATMOS::Accounts::Bases::Mail::Aliases;
2
3use strict;
4use warnings;
5
6use base qw(LATMOS::Accounts::Bases::Mail::objects);
7use LATMOS::Accounts::Log;
8
9our $VERSION = (q$Rev: 641 $ =~ /^Rev: (\d+) /)[0];
10
11=head1 NAME
12
13LATMOS::Accounts::Bases::Mail::Aliases - Aliases support for mail base.
14
15=cut
16
17sub new {
18    my ($class, $base, $id, @args) = @_;
19    if (exists($base->{aliases}{$id})) {
20        return bless({}, $class);
21    } else { return }
22}
23
24sub _get_attr_schema {
25    my ($class, $base) = @_;
26    {
27        forward => {
28            multiple => 1,
29        },
30    }
31}
32
33sub get_field {
34    my ($self, $field) = @_;
35    $field eq 'forward' and do {
36        my @forw = sort split(',', $self->base->{aliases}{$self->id});
37        return scalar(@forw) > 1
38            ? [ @forw ]
39            : $self->base->{aliases}{$self->id};
40    };
41    return
42}
43
44sub set_fields {
45    my ($self, %data) = @_;
46    if ($data{forward}) {
47        $self->base->{aliases}{$self->id} = ref $data{forward}
48            ? join(',', sort @{$data{forward}})
49            : $data{forward};
50        return 1;
51    }
52    return;
53}
54
551;
56
57__END__
58
59=head1 SEE ALSO
60
61L<LATMOS::Accounts::Bases::Mail>
62
63=head1 AUTHOR
64
65Olivier Thauvin, E<lt>olivier.thauvin@latmos.ipsl.frE<gt>
66
67=head1 COPYRIGHT AND LICENSE
68
69Copyright (C) 2008, 2009, 2010, 2011, 2012 CNRS SA/CETP/LATMOS
70
71This library is free software; you can redistribute it and/or modify
72it under the same terms as Perl itself, either Perl version 5.10.0 or,
73at your option, any later version of Perl 5 you may have available.
74
75=cut
76
Note: See TracBrowser for help on using the repository browser.