merge from trunk until r8246

r8170 (frontend for trusted peers) is skipped, it belongs to 2.6 release
3.3
Andrew Pogrebennyk 15 years ago
parent b282dee98d
commit b4a16ccb52

12
debian/changelog vendored

@ -1,3 +1,15 @@
ngcp-www-admin (3.3.4) unstable; urgency=low
[cveigl]
* enforce billing profile name limit (mantis:969)
* avoid get_subscriber_by_id where possible
[dtiefnig]
* add fraud parameters to billing profile web form
* call_prov() expects a ref for returning data
-- Andrew Pogrebennyk <apogrebennyk@sipwise.com> Mon, 02 Apr 2012 12:21:35 +0200
ngcp-www-admin (3.3.3) unstable; urgency=low
[dtiefnig]

@ -223,6 +223,10 @@ sub edit_bilprof : Local {
sprintf "%.2f", $c->stash->{bilprof}{data}{interval_charge} /= 100;
$c->stash->{bilprof}{data}{interval_free_cash} =
sprintf "%.2f", $c->stash->{bilprof}{data}{interval_free_cash} /= 100;
$c->stash->{bilprof}{data}{fraud_interval_limit} =
sprintf "%.2f", $c->stash->{bilprof}{data}{fraud_interval_limit} /= 100;
$c->stash->{bilprof}{data}{fraud_interval_notify} =
eval { join ', ', @{$c->stash->{bilprof}{data}{fraud_interval_notify}} };
} elsif($bilprof) {
return unless $c->model('Provisioning')->call_prov( $c, 'billing', 'get_billing_profile',
{ handle => $bilprof },
@ -232,6 +236,10 @@ sub edit_bilprof : Local {
sprintf "%.2f", $c->stash->{bilprof}{data}{interval_charge} /= 100;
$c->stash->{bilprof}{data}{interval_free_cash} =
sprintf "%.2f", $c->stash->{bilprof}{data}{interval_free_cash} /= 100;
$c->stash->{bilprof}{data}{fraud_interval_limit} =
sprintf "%.2f", $c->stash->{bilprof}{data}{fraud_interval_limit} /= 100;
$c->stash->{bilprof}{data}{fraud_interval_notify} =
eval { join ', ', @{$c->stash->{bilprof}{data}{fraud_interval_notify}} };
}
$c->stash->{handle} = $bilprof if $bilprof;
@ -299,6 +307,28 @@ sub do_edit_bilprof : Local {
$settings{interval_free_cash} = 0;
}
$settings{fraud_interval_limit} = $c->request->params->{fraud_interval_limit};
if(length $settings{fraud_interval_limit}) {
if($settings{fraud_interval_limit} =~ /^[+]?\d+(?:[.,]\d\d?)?$/) {
$settings{fraud_interval_limit} =~ s/^\+//;
$settings{interval_free_cash} =~ s/,/./;
$settings{fraud_interval_limit} *= 100;
} else {
$messages{fraud_interval_limit} = 'Client.Syntax.CashValue';
}
} else {
delete $settings{fraud_interval_limit};
}
$settings{fraud_interval_lock} = $c->request->params->{fraud_interval_lock}
if $c->request->params->{fraud_interval_lock};
if(length $c->request->params->{fraud_interval_notify}) {
@{$settings{fraud_interval_notify}} = split /\s*,\s*/, $c->request->params->{fraud_interval_notify};
} else {
$settings{fraud_interval_notify} = [];
}
$settings{currency} = $c->request->params->{currency} || '';
$settings{vat_rate} = $c->request->params->{vat_rate};
@ -324,6 +354,8 @@ sub do_edit_bilprof : Local {
$c->response->redirect("/billing#bilprof");
return;
}
$c->session->{messages}{fraud_interval_notify} = $c->session->{prov_error}
if $c->session->{prov_error} eq 'Client.Syntax.Email';
$c->session->{restore_bilprof_input} = \%settings;
$c->response->redirect("/billing/edit_bilprof?bilprof=$bilprof");
return;

@ -693,7 +693,7 @@ sub preferences : Local {
{ username => $$subscriber{username},
domain => $$subscriber{domain},
},
$$subscriber{reminder}
\$$subscriber{reminder}
);
$c->stash->{cf_dsets} = $cf_dsets;

@ -60,6 +60,10 @@ a:hover {
text-decoration: none;
}
a.red {
color: red !important;
}
.content .ui-sortable {
cursor: move;
}

@ -209,9 +209,12 @@
[% FOREACH subscriber = account.subscribers %]
<li class="ui-state-default">
<div class="span-6">
[% IF subscriber.subscriber_id %]
[% IF subscriber.status == "active" %]
<a href="/subscriber/detail?subscriber_id=[% subscriber.subscriber_id %]">
[% subscriber.username %]@[% subscriber.domain %]</a>
[% ELSIF subscriber.status == "locked" %]
<a class="red" href="/subscriber/detail?subscriber_id=[% subscriber.subscriber_id %]">
[% subscriber.username %]@[% subscriber.domain %]</a>
[% ELSE %]
[% subscriber.username %]@[% subscriber.domain %]
[% END %]

@ -68,7 +68,7 @@
<li class="ui-state-default">
<div class="span-3">Interval Free Cash:</div>
<div class="span-6">
<input type="text" name="interval_free_cash" title="float, specifying Euro"
<input type="text" name="interval_free_cash" title="float, specifying EUR, USD, etc."
value="[% bilprof.data.interval_free_cash %]" />
</div>
<div class="span-6 last">
@ -76,6 +76,46 @@
</div>
</li>
[% IF messages.free_cash %]<div class="error">[% messages.free_cash %]</div>[% END %]
<li class="ui-state-default">
<div class="span-3">Fraud Limit:</div>
<div class="span-6">
<input type="text" name="fraud_interval_limit" title="float, specifying EUR, USD, etc."
value="[% bilprof.data.fraud_interval_limit %]" />
</div>
<div class="span-6 last">
fraud detection threshold, per month
</div>
</li>
[% IF messages.fraud_interval_limit %]<div class="error">[% messages.fraud_interval_limit %]</div>[% END %]
<li class="ui-state-default">
<div class="span-3">Fraud Lock:</div>
<div class="span-6">
<select size="1" name="fraud_interval_lock" title="the lock level">
<option value="none" [% IF bilprof.data.fraud_interval_lock == 'none' %]selected="selected"[% END %]>none</option>
<option value="foreign" [% IF bilprof.data.fraud_interval_lock == 'foreign' %]selected="selected"[% END %]>foreign</option>
<option value="outgoing" [% IF bilprof.data.fraud_interval_lock == 'outgoing' %]selected="selected"[% END %]>outgoing</option>
<option value="incoming" [% IF bilprof.data.fraud_interval_lock == 'incoming' %]selected="selected"[% END %]>incoming</option>
<option value="global" [% IF bilprof.data.fraud_interval_lock == 'global' %]selected="selected"[% END %]>global</option>
</select>
</div>
<div class="span-6 last">
lock accounts if the limit is exceeded
</div>
</li>
[% IF messages.fraud_interval_lock %]<div class="error">[% messages.fraud_interval_lock %]</div>[% END %]
<li class="ui-state-default">
<div class="span-3">Fraud Notify:</div>
<div class="span-6">
<input type="text" name="fraud_interval_notify" title="string, a list of e-mail addreses separated by comma"
value="[% bilprof.data.fraud_interval_notify %]" />
</div>
<div class="span-6 last">
where e-mail notifications are sent
</div>
</li>
[% IF messages.fraud_interval_notify %]<div class="error">[% messages.fraud_interval_notify %]</div>[% END %]
<li class="ui-state-default">
<div class="span-3">Currency:</div>
<div class="span-6">

Loading…
Cancel
Save