* Login CSC v2 button is shown on the subscriber's master data page if www_admin.http_csc.csc_js_enable == 1 or 2 * When the login is triggered an auth token is generated internally followed by a redirect to CSC as /?a=auth_token * move generate_auth_token() into Utils/Auth * improve generate_auth_token() arguments support * add /api/authtokens error handling Change-Id: Idd65400bf8ce6ce48979c736f6a199fb567ffaa4mr10.0
parent
62cf532c8e
commit
1cdae0b1e0
@ -1,35 +1,13 @@
|
||||
package NGCP::Panel::Role::API::AuthTokens;
|
||||
|
||||
use Sipwise::Base;
|
||||
use NGCP::Panel::Utils::Redis;
|
||||
|
||||
use parent 'NGCP::Panel::Role::API';
|
||||
|
||||
use Redis;
|
||||
use UUID;
|
||||
|
||||
sub get_form {
|
||||
my ($self, $c) = @_;
|
||||
return NGCP::Panel::Form::get("NGCP::Panel::Form::AuthToken", $c);
|
||||
}
|
||||
|
||||
sub generate_auth_token {
|
||||
my ($self, $c, $resource) = @_;
|
||||
|
||||
my ($uuid_bin, $uuid_string);
|
||||
UUID::generate($uuid_bin);
|
||||
UUID::unparse($uuid_bin, $uuid_string);
|
||||
#remove '-' from the token
|
||||
$uuid_string =~ s/\-//g;
|
||||
my $redis = NGCP::Panel::Utils::Redis::get_redis_connection($c, {database => $c->config->{'Plugin::Session'}->{redis_db}});
|
||||
return unless $redis;
|
||||
$redis->hset("auth_token:$uuid_string", 'type', $resource->{type});
|
||||
$redis->hset("auth_token:$uuid_string", 'role', $c->user->roles);
|
||||
$redis->hset("auth_token:$uuid_string", 'user_id', $c->user->id);
|
||||
$redis->expire("auth_token:$uuid_string", $resource->{expires});
|
||||
|
||||
return $uuid_string;
|
||||
}
|
||||
|
||||
1;
|
||||
# vim: set tabstop=4 expandtab:
|
||||
|
||||
Loading…
Reference in new issue