App-PAIA
view release on metacpan or search on metacpan
lib/App/PAIA/Command.pm view on Meta::CPAN
}
);
sub expired {
my ($self) = @_;
my $expires = $self->session->get('expires_at');
return $expires ? $expires <= time : 0;
}
sub not_authentificated {
my ($self, $scope) = @_;
my $token = $self->token // return "missing access token";
return "access token expired" if $self->expired;
if ($scope and $self->scope and !$self->has_scope($scope)) {
return "current scope '{$self->scope}' does not include $scope!\n";
}
lib/App/PAIA/Command.pm view on Meta::CPAN
cancel => 'write_items',
fees => 'read_fees',
change => 'change_password',
);
sub auto_login_for {
my ($self, $command) = @_;
my $scope = $required_scopes{$command};
if ( $self->not_authentificated($scope) ) {
# add to existing scopes (TODO: only if wanted)
my $new_scope = join ' ', split(' ',$self->scope // ''), $scope;
$self->logger->("auto-login with scope '$new_scope'");
$self->login( $new_scope );
if ( $self->scope and !$self->has_scope($scope) ) {
die "current scope '{$self->scope}' does not include $scope!\n";
}
}
}
lib/App/PAIA/Command/session.pm view on Meta::CPAN
our $VERSION = '0.30';
use App::PAIA::JSON;
sub _execute {
my ($self, $opt, $args) = @_;
if (defined $self->session->file ) {
my $data = $self->session->load;
say encode_json($data) if $self->app->global_options->verbose;
my $msg = $self->not_authentificated;
die "$msg.\n" if $msg;
say "session looks fine.";
} else {
die "no session file found.\n";
}
if (!$self->auth) {
die "PAIA auth server URL not found\n";
} else {
$self->logger->('auth URL: '.$self->auth);
( run in 0.806 second using v1.01-cache-2.11-cpan-0a987023a57 )