Handle the preference man_allowed_ips like allowed_ips

agranig/peering-route
Gerhard Jungwirth 13 years ago committed by Andreas Granig
parent c33021d30e
commit 356891c29b

@ -58,6 +58,11 @@ sub load_preference_list {
$pref->{allowed_ips_rs} = $c->model('DB')->resultset('voip_allowed_ip_groups')
->search_rs({ group_id => $pref_values->{allowed_ips_grp} });
}
elsif($pref->attribute eq "man_allowed_ips") {
$pref->{man_allowed_ips_group_id} = $pref_values->{man_allowed_ips_grp};
$pref->{man_allowed_ips_rs} = $c->model('DB')->resultset('voip_allowed_ip_groups')
->search_rs({ group_id => $pref_values->{man_allowed_ips_grp} });
}
if($pref->data_type eq "enum") {
$pref->{enums} = [];
push @{ $pref->{enums} },
@ -91,6 +96,8 @@ sub create_preference_form {
my $aip_grp_rs;
my $aip_group_id;
my $man_aip_grp_rs;
my $man_aip_group_id;
my $preselected_value = undef;
if ($c->stash->{preference_meta}->attribute eq "rewrite_rule_set") {
@ -133,6 +140,17 @@ sub create_preference_form {
$aip_grp_rs = $c->model('DB')->resultset('voip_allowed_ip_groups')
->search({ group_id => $aip_group_id });
}
} elsif ($c->stash->{preference_meta}->attribute eq "man_allowed_ips") {
my $man_allowed_ips_grp = $pref_rs->search({
'attribute.attribute' => 'man_allowed_ips_grp'
},{
join => 'attribute'
})->first;
if (defined $man_allowed_ips_grp) {
$man_aip_group_id = $man_allowed_ips_grp->value;
$man_aip_grp_rs = $c->model('DB')->resultset('voip_allowed_ip_groups')
->search({ group_id => $man_aip_group_id });
}
} elsif ($c->stash->{preference_meta}->max_occur == 1) {
$preselected_value = $c->stash->{preference_values}->[0];
}
@ -188,6 +206,31 @@ sub create_preference_form {
group_id => $aip_group_id,
ipnet => $form->field($attribute)->value,
});
} elsif ($attribute eq "man_allowed_ips") {
unless (defined $man_aip_group_id) {
#TODO put this in a transaction
my $new_group = $c->model('DB')->resultset('voip_aig_sequence')
->create({});
my $man_aig_preference_id = $c->model('DB')
->resultset('voip_preferences')
->find({ attribute => 'man_allowed_ips_grp' })
->id;
$pref_rs->create({
value => $new_group->id,
attribute_id => $man_aig_preference_id,
});
$man_aip_group_id = $new_group->id;
$man_aip_grp_rs = $c->model('DB')->resultset('voip_allowed_ip_groups')
->search({ group_id => $man_aip_group_id });
$c->model('DB')->resultset('voip_aig_sequence')->search_rs({
id => { '<' => $new_group->id },
})->delete_all;
}
$man_aip_grp_rs->create({
group_id => $man_aip_group_id,
ipnet => $form->field($attribute)->value,
});
} elsif ($c->stash->{preference_meta}->max_occur != 1) {
$pref_rs->create({
attribute_id => $c->stash->{preference_meta}->id,
@ -298,12 +341,28 @@ sub create_preference_form {
if (defined $allowed_ips_grp_preference);
}
}
}
my $delete_man_aig_param = $c->request->params->{delete_man_aig};
if($delete_man_aig_param) {
my $result = $man_aip_grp_rs->find($delete_man_aig_param);
if($result) {
$result->delete;
unless ($man_aip_grp_rs->first) { #its empty
my $man_allowed_ips_grp_preference = $pref_rs->search({
'attribute.attribute' => 'man_allowed_ips_grp'
},{
join => 'attribute'
})->first;
$man_allowed_ips_grp_preference->delete
if (defined $man_allowed_ips_grp_preference);
}
}
}
$form->process if $posted;
$c->stash(form => $form,
aip_grp_rs => $aip_grp_rs);
aip_grp_rs => $aip_grp_rs,
man_aip_grp_rs => $man_aip_grp_rs);
}
sub _set_rewrite_preferences {

@ -13,7 +13,7 @@
helper.rewrite_rule_sets = rwr_sets;
helper.ncos_levels = ncos_levels;
helper.sound_sets = sound_sets;
helper.aip_grp_rs = aip_grp_rs;
helper.man_aip_grp_rs = man_aip_grp_rs;
helper.top_buttons = [
{ name = 'Back', uri = c.uri_for(), icon = 'icon-arrow-left' },

@ -89,6 +89,10 @@
[% FOR ipnet IN r.allowed_ips_rs.all -%]
[% ipnet.ipnet -%]<br/>
[% END -%]
[% ELSIF r.attribute == "man_allowed_ips" -%]
[% FOR ipnet IN r.man_allowed_ips_rs.all -%]
[% ipnet.ipnet -%]<br/>
[% END -%]
[% ELSIF r.data_type == "boolean" %]
<input type="checkbox" disabled="disabled"
@ -150,6 +154,19 @@
<span class="pull-right">[% helper.form.field("add").render %]</span>
</form>
</div>
[% ELSIF helper.preference_meta.attribute == "man_allowed_ips" %]
<div class="modal-body">
[% FOREACH net IN helper.man_aip_grp_rs.all %]
<div class="row-fluid">
<input type="text" value="[% net.ipnet %]" disabled="disabled"></input>
<a class="btn btn-primary pull-right" href="?delete_man_aig=[% net.id %]"><i class="icon-trash"></i></a>
</div>
[% END %]
<form action="[% helper.form.action %]" method="post">
[% helper.form.field(helper.preference_meta.attribute).render %]
<span class="pull-right">[% helper.form.field("add").render %]</span>
</form>
</div>
[% ELSIF helper.preference_meta.max_occur != 1 %]
<div class="modal-body">
[% FOREACH v IN helper.preference.all %]

@ -11,7 +11,7 @@
helper.base_uri = c.uri_for_action("/peering/servers_preferences_root",
[c.req.captures.0, c.req.captures.1]);
helper.rewrite_rule_sets = rwr_sets;
helper.aip_grp_rs = aip_grp_rs;
helper.man_aip_grp_rs = man_aip_grp_rs;
helper.dt_buttons = [
{ name = 'Edit', uri = c.uri_for_action("/peering/servers_preferences_root", [c.req.captures.0, c.req.captures.1]), class = 'btn-small btn-primary', icon = 'icon-edit' },

@ -14,6 +14,7 @@
helper.ncos_levels = ncos_levels;
helper.sound_sets = sound_sets;
helper.aip_grp_rs = aip_grp_rs;
helper.man_aip_grp_rs = man_aip_grp_rs;
helper.skip_head = 1;
%]

Loading…
Cancel
Save