use PMG::RuleDB::IPNet;
use PMG::RuleDB::Domain;
use PMG::RuleDB::ReceiverDomain;
-# fixme:
-#use Proxmox::RuleDB::LDAP;
-#use Proxmox::RuleDB::LDAPUser;
+use PMG::RuleDB::LDAP;
+use PMG::RuleDB::LDAPUser;
use PMG::RuleDB::TimeFrame;
use PMG::RuleDB::Spam;
use PMG::RuleDB::ReportSpam;
$sth->execute($rule->{id});
- my ($from, $to, $when, $what, $action) = ((), (), (), (), ());
+ my ($from, $to, $when, $what, $action) = ([], [], [], [], []);
while (my $ref = $sth->fetchrow_hashref()) {
my $og = PMG::RuleDB::Group->new($ref->{name}, $ref->{info});
return ($from, $to, $when, $what, $action);
}
+sub load_groups_by_name {
+ my ($self, $rule) = @_;
+
+ my ($from, $to, $when, $what, $action) =
+ $self->load_groups($rule);
+
+ return {
+ from => $from,
+ to => $to,
+ when => $when,
+ what => $what,
+ action => $action,
+ };
+}
+
sub save_group {
my ($self, $og) = @_;
elsif ($otype == PMG::RuleDB::IPNet::otype) {
$obj = PMG::RuleDB::IPNet->new();
}
-# fixme
-# elsif ($otype == Proxmox::RuleDB::LDAP::otype) {
-# $obj = Proxmox::RuleDB::LDAP->new();
-# }
-# elsif ($otype == Proxmox::RuleDB::LDAPUser::otype) {
-# $obj = Proxmox::RuleDB::LDAPUser->new();
-# }
+ elsif ($otype == PMG::RuleDB::LDAP::otype) {
+ $obj = PMG::RuleDB::LDAP->new();
+ }
+ elsif ($otype == PMG::RuleDB::LDAPUser::otype) {
+ $obj = PMG::RuleDB::LDAPUser->new();
+ }
# WHEN OBJECTS
elsif ($otype == PMG::RuleDB::TimeFrame::otype) {
$obj = PMG::RuleDB::TimeFrame->new();
return 1;
}
+my $grouptype_hash = {
+ from => 0,
+ to => 1,
+ when => 2,
+ what => 3,
+ action => 4,
+};
+
sub rule_add_group {
- my ($self, $ruleid, $groupid, $gtype) = @_;
+ my ($self, $ruleid, $groupid, $gtype_str) = @_;
+
+ my $gtype = $grouptype_hash->{$gtype_str} //
+ die "unknown group type '$gtype_str'\n";
defined($ruleid) || die "undefined rule id: ERROR";
defined($groupid) || die "undefined group id: ERROR";
sub rule_add_from_group {
my ($self, $rule, $group) = @_;
- $self->rule_add_group($rule->{id}, $group->{id}, 0);
+ $self->rule_add_group($rule->{id}, $group->{id}, 'from');
}
sub rule_add_to_group {
my ($self, $rule, $group) = @_;
- $self->rule_add_group($rule->{id}, $group->{id}, 1);
+ $self->rule_add_group($rule->{id}, $group->{id}, 'to');
}
sub rule_add_when_group {
my ($self, $rule, $group) = @_;
- $self->rule_add_group($rule->{id}, $group->{id}, 2);
+ $self->rule_add_group($rule->{id}, $group->{id}, 'when');
}
sub rule_add_what_group {
my ($self, $rule, $group) = @_;
- $self->rule_add_group($rule->{id}, $group->{id}, 3);
+ $self->rule_add_group($rule->{id}, $group->{id}, 'what');
}
sub rule_add_action {
my ($self, $rule, $group) = @_;
- $self->rule_add_group($rule->{id}, $group->{id}, 4);
+ $self->rule_add_group($rule->{id}, $group->{id}, 'action');
}
sub rule_remove_group {
- my ($self, $ruleid, $groupid, $gtype) = @_;
+ my ($self, $ruleid, $groupid, $gtype_str) = @_;
+
+ my $gtype = $grouptype_hash->{$gtype_str} //
+ die "unknown group type '$gtype_str'\n";
defined($ruleid) || die "undefined rule id: ERROR";
defined($groupid) || die "undefined group id: ERROR";
Possible values for $gtype are:
- 0 = FROM, 1 = TO, 2 = WHEN, 3 = WHAT, 4 = ACTION
+ 'from' 'to', 'when', 'what', 'action'
=head3 $ruledb->rule_remove_group ($rule, $og, $gtype)