]> git.proxmox.com Git - pmg-api.git/blame - PMG/RuleDB/IPAddress.pm
PMG/RuleDB/Object.pm: fix permissions for role admin
[pmg-api.git] / PMG / RuleDB / IPAddress.pm
CommitLineData
f4fe6fc4
DM
1package PMG::RuleDB::IPAddress;
2
3use strict;
4use warnings;
f4fe6fc4
DM
5use DBI;
6
7use PMG::Utils;
8use PMG::RuleDB::WhoRegex;
9
10use base qw(PMG::RuleDB::WhoRegex);
11
12sub otype {
13 return 1003;
14}
15
16sub otype_text {
17 return 'IP Address';
18}
19
f4fe6fc4
DM
20sub new {
21 my ($type, $address, $ogroup) = @_;
22
23 my $class = ref($type) || $type;
24
25 $address //= '127.0.0.1';
26
27 my $self = $class->SUPER::new($address, $ogroup);
28
29 return $self;
30}
31
32sub who_match {
33 my ($self, $addr, $ip) = @_;
34
f4fe6fc4
DM
35 return 0 if !$ip;
36
37 return $self->{address} eq $ip;
38}
39
1ad24a43
DM
40sub properties {
41 my ($class) = @_;
42
43 return {
44 ip => {
45 description => "IP address",
46 type => 'string', format => 'ip',
47 },
48 };
49}
50
718d48a7
DM
51sub get {
52 my ($self) = @_;
53
54 return { ip => $self->{address} };
55}
56
1ad24a43
DM
57sub update {
58 my ($self, $param) = @_;
59
60 $self->{address} = $param->{ip};
f4fe6fc4
DM
61}
62
631;
64
65__END__
66
67=head1 PMG::RuleDB::IPAddress
68
69A WHO object to check sender IP addresses.
70
71=head2 Attribues
72
73=head3 address
74
75An IP address.
76
77=head2 Examples
78
79 $obj = PMG::RuleDB::IPAddress->new('192.168.2.1');
80