]> git.proxmox.com Git - pmg-api.git/blame - PMG/RuleDB/EMail.pm
fix schema definition
[pmg-api.git] / PMG / RuleDB / EMail.pm
CommitLineData
0a580593
DM
1package PMG::RuleDB::EMail;
2
3use strict;
4use warnings;
0a580593
DM
5use DBI;
6
7use PMG::RuleDB::WhoRegex;
8
9use base qw(PMG::RuleDB::WhoRegex);
10
11sub otype {
12 return 1001;
13}
14
15sub otype_text {
16 return 'Mail address';
17}
18
0a580593
DM
19sub new {
20 my ($type, $address, $ogroup) = @_;
21 my $class = ref($type) || $type;
22
23 $address //= 'unknown@domain.tld';
24
25 my $self = $class->SUPER::new($address, $ogroup);
26
27 return $self;
28}
29
30sub who_match {
31 my ($self, $addr) = @_;
32
33 return (lc ($addr) eq lc ($self->address));
34}
35
36
37sub short_desc {
38 my $self = shift;
39
40 my $desc = $self->{address};
41
42 return $desc;
43}
44
693cf3b6
DM
45sub properties {
46 my ($class) = @_;
47
48 return {
49 email => {
50 description => "Email address.",
51 type => 'string', format => 'email',
52 },
53 };
54}
55
718d48a7
DM
56sub get {
57 my ($self) = @_;
58
59 return { email => $self->{address} };
60}
61
693cf3b6
DM
62sub update {
63 my ($self, $param) = @_;
64
65 $self->{address} = $param->{email};
66}
67
0a580593
DM
681;
69
70__END__
71
72=head1 PMG::RuleDB::EMail
73
74A WHO object to check email addresses.
75
76=head2 Attribues
77
78=head3 address
79
80An Email address. We use case insensitive compares.
81
82=head2 Examples
83
84 $obj = PMG::RuleDB::Email->new ('you@yourdomain.com');
85