MT#53706 enable_2fa option for /api/admins

Change-Id: I7de37482fed913551fc0a1c9b18f789b51b67a05
mr13.3
Rene Krenn 1 month ago
parent f167a55a2f
commit 6600d7c949

@ -1,6 +1,7 @@
package NGCP::Panel::Controller::API::Admins; package NGCP::Panel::Controller::API::Admins;
use NGCP::Panel::Utils::Generic qw(:all); use NGCP::Panel::Utils::Generic qw(:all);
use NGCP::Panel::Utils::UserRole; use NGCP::Panel::Utils::UserRole;
use NGCP::Panel::Utils::Auth qw();
use Sipwise::Base; use Sipwise::Base;
@ -59,6 +60,15 @@ sub create_item {
try { try {
my $pass = delete $resource->{password}; my $pass = delete $resource->{password};
$resource->{auth_mode} ||= 'local'; $resource->{auth_mode} ||= 'local';
if ($resource->{enable_2fa}) {
$resource->{enable_2fa} = 1;
$resource->{otp_secret} = NGCP::Panel::Utils::Auth::create_otp_secret();
$resource->{show_otp_registration_info} = 1;
} else {
$resource->{enable_2fa} = 0;
$resource->{otp_secret} = undef;
$resource->{show_otp_registration_info} = 0;
}
$item = $c->model('DB')->resultset('admins')->create($resource); $item = $c->model('DB')->resultset('admins')->create($resource);
NGCP::Panel::Utils::Admin::insert_password_journal( NGCP::Panel::Utils::Admin::insert_password_journal(
$c, $item, $pass $c, $item, $pass

@ -210,6 +210,16 @@ sub update_item {
} }
$resource->{auth_mode} ||= 'local'; $resource->{auth_mode} ||= 'local';
if ($resource->{enable_2fa}) {
$resource->{enable_2fa} = 1;
unless ($item->otp_secret) {
$resource->{otp_secret} = NGCP::Panel::Utils::Auth::create_otp_secret();
$resource->{show_otp_registration_info} = 1;
}
} else {
$resource->{enable_2fa} = 0;
}
$item->update($resource); $item->update($resource);
return $item; return $item;

Loading…
Cancel
Save