Restrict certain domain-prefs to their respective reseller

The preferences rewrite_rule_sets, ncos_levels, and sound_sets
on a domain should be restricted to ones, that have the same reseller
as the domain itself.

In addition we have to make sure, the preference view does not die,
if an invalid preference had already been selected, for example when
the respective *set/*level had been deleted or had been one, with a wrong
reseller, because of this bug, we just fixed.

Mantis: 4127
agranig/peering-route
Gerhard Jungwirth 13 years ago
parent 25dbc9d8d7
commit 76f4bdd14c

@ -332,18 +332,22 @@ sub load_preference_list :Private {
];
}
my $correct_reseller_id = $c->stash->{domain_result}->domain_resellers->first->reseller_id;
my $rewrite_rule_sets_rs = $c->model('DB')
->resultset('voip_rewrite_rule_sets');
->resultset('voip_rewrite_rule_sets')
->search_rs({ reseller_id => $correct_reseller_id, });
$c->stash(rwr_sets_rs => $rewrite_rule_sets_rs,
rwr_sets => [$rewrite_rule_sets_rs->all]);
my $ncos_levels_rs = $c->model('DB')
->resultset('ncos_levels');
->resultset('ncos_levels')
->search_rs({ reseller_id => $correct_reseller_id, });
$c->stash(ncos_levels_rs => $ncos_levels_rs,
ncos_levels => [$ncos_levels_rs->all]);
my $sound_sets_rs = $c->model('DB')
->resultset('voip_sound_sets');
->resultset('voip_sound_sets')
->search_rs({ reseller_id => $correct_reseller_id, });
$c->stash(sound_sets_rs => $sound_sets_rs,
sound_sets => [$sound_sets_rs->all]);

@ -37,23 +37,28 @@ sub load_preference_list {
foreach my $pref(@group_prefs) {
if($pref->attribute eq "rewrite_rule_set") {
$pref->{rwrs_id} = $pref_values->{rewrite_caller_in_dpid} ?
$c->stash->{rwr_sets_rs}->search({
my $tmp;
$pref->{rwrs_id} = $pref_values->{rewrite_caller_in_dpid} &&
($tmp = $c->stash->{rwr_sets_rs}->search({
caller_in_dpid =>$pref_values->{rewrite_caller_in_dpid}
})->first->id
})->first) ?
$tmp->id
: undef;
}
elsif($pref->attribute eq "ncos") {
$pref->{ncos_id} = $pref_values->{ncos_id} ?
$c->stash->{ncos_levels_rs}
->find($pref_values->{ncos_id})->id
: undef;
if ($pref_values->{ncos_id} &&
(my $tmp = $c->stash->{ncos_levels_rs}
->find($pref_values->{ncos_id}) )) {
$pref->{ncos_id} = $tmp->id;
}
}
elsif($pref->attribute eq "adm_ncos") {
$pref->{adm_ncos_id} = $pref_values->{adm_ncos_id} ?
$c->stash->{ncos_levels_rs}
->find($pref_values->{adm_ncos_id})->id
: undef;
if ($pref_values->{adm_ncos_id} &&
(my $tmp = $c->stash->{ncos_levels_rs}
->find($pref_values->{adm_ncos_id}) )) {
$pref->{adm_ncos_id} = $tmp->id;
}
}
elsif($pref->attribute eq "allowed_ips") {
$pref->{allowed_ips_group_id} = $pref_values->{allowed_ips_grp};
@ -108,10 +113,12 @@ sub create_preference_form {
},{
join => 'attribute'
})->first;
if (defined $rewrite_caller_in_dpid) {
$preselected_value = $c->stash->{rwr_sets_rs}->search({
if (defined $rewrite_caller_in_dpid && (
my $tmp = $preselected_value = $c->stash->{rwr_sets_rs}->search({
caller_in_dpid => $rewrite_caller_in_dpid->value,
})->first->id;
})->first
)) {
$preselected_value = $tmp->id;
}
} elsif ($c->stash->{preference_meta}->attribute eq "ncos") {
my $ncos_id_preference = $pref_rs->search({

Loading…
Cancel
Save