diff --git a/debian/changelog b/debian/changelog index eeec749..3ede2ec 100644 --- a/debian/changelog +++ b/debian/changelog @@ -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 Mon, 02 Apr 2012 12:21:35 +0200 + ngcp-www-admin (3.3.3) unstable; urgency=low [dtiefnig] diff --git a/lib/admin/Controller/billing.pm b/lib/admin/Controller/billing.pm index 78b0c43..879289b 100644 --- a/lib/admin/Controller/billing.pm +++ b/lib/admin/Controller/billing.pm @@ -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; diff --git a/lib/admin/Controller/subscriber.pm b/lib/admin/Controller/subscriber.pm index d950def..9564e11 100644 --- a/lib/admin/Controller/subscriber.pm +++ b/lib/admin/Controller/subscriber.pm @@ -693,7 +693,7 @@ sub preferences : Local { { username => $$subscriber{username}, domain => $$subscriber{domain}, }, - $$subscriber{reminder} + \$$subscriber{reminder} ); $c->stash->{cf_dsets} = $cf_dsets; diff --git a/root/css/admin.css b/root/css/admin.css index 40b13bf..98e04bb 100644 --- a/root/css/admin.css +++ b/root/css/admin.css @@ -60,6 +60,10 @@ a:hover { text-decoration: none; } +a.red { + color: red !important; +} + .content .ui-sortable { cursor: move; } diff --git a/root/tt/account_detail.tt b/root/tt/account_detail.tt index a9a039f..52701e8 100644 --- a/root/tt/account_detail.tt +++ b/root/tt/account_detail.tt @@ -209,9 +209,12 @@ [% FOREACH subscriber = account.subscribers %]
  • - [% IF subscriber.subscriber_id %] + [% IF subscriber.status == "active" %] [% subscriber.username %]@[% subscriber.domain %] + [% ELSIF subscriber.status == "locked" %] + + [% subscriber.username %]@[% subscriber.domain %] [% ELSE %] [% subscriber.username %]@[% subscriber.domain %] [% END %] diff --git a/root/tt/bilprof_edit.tt b/root/tt/bilprof_edit.tt index 7dbf244..15a631f 100644 --- a/root/tt/bilprof_edit.tt +++ b/root/tt/bilprof_edit.tt @@ -68,7 +68,7 @@
  • Interval Free Cash:
    -
    @@ -76,6 +76,46 @@
  • [% IF messages.free_cash %]
    [% messages.free_cash %]
    [% END %] + +
  • +
    Fraud Limit:
    +
    + +
    +
    + fraud detection threshold, per month +
    +
  • + [% IF messages.fraud_interval_limit %]
    [% messages.fraud_interval_limit %]
    [% END %] +
  • +
    Fraud Lock:
    +
    + +
    +
    + lock accounts if the limit is exceeded +
    +
  • + [% IF messages.fraud_interval_lock %]
    [% messages.fraud_interval_lock %]
    [% END %] +
  • +
    Fraud Notify:
    +
    + +
    +
    + where e-mail notifications are sent +
    +
  • + [% IF messages.fraud_interval_notify %]
    [% messages.fraud_interval_notify %]
    [% END %] +
  • Currency: