You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ngcp-panel/lib/NGCP/Panel/Form/Administrator/System.pm

40 lines
1.4 KiB

package NGCP::Panel::Form::Administrator::System;
use HTML::FormHandler::Moose;
use HTML::FormHandler::Widget::Block::Bootstrap;
extends 'NGCP::Panel::Form::Administrator::Admin';
use Storable qw();
for (qw(lawful_intercept is_system)) {
has_field $_ => (type => 'Boolean');
}
has_block 'fields' => (
tag => 'div',
class => [qw(modal-body)],
render_list => [qw(
reseller login password email role_id is_master is_active read_only show_passwords call_data billing_data can_reset_password
)],
);
sub validate {
my ($self) = @_;
my $c = $self->ctx;
return unless $c;
my $resource = Storable::dclone($self->values);
if ($resource->{lawful_intercept} &&
($resource->{is_superuser} || $resource->{is_master} || $resource->{is_ccare} || $resource->{is_system} || $resource->{call_data} || $resource->{billing_data} || $resource->{show_passwords})) {
my $err = "Administrator can be flagged as 'lafwul_intercept' only in conjunction with 'is_active', 'read_only' and 'can_reset_password' flags";
$c->log->error($err);
$self->field('lawful_intercept')->add_error($err);
}
if (defined $resource->{login} && $resource->{login} eq 'system') {
my $err = 'Restricted login definition: ' . $resource->{login};
$c->log->error($err);
$self->field('login')->add_error($err);
}
}
1;