-
Guillaume ROUSSE authoredGuillaume ROUSSE authored
access-check-manager.pl 11.91 KiB
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use Mojo::File qw(curfile);
use lib curfile()->dirname()->sibling('lib')->to_string;
use Config::Tiny;
use Data::Dumper;
use DateTime;
use English qw(-no_match_vars);
use Getopt::Long qw(:config auto_help);
use Pod::Usage;
use Syntax::Keyword::Try;
use AccessCheck::Data::Account;
use AccessCheck::Data::Entity;
use AccessCheck::Data::Token;
use AccessCheck::Metadata;
use AccessCheck::Tools;
my %options;
GetOptions(
\%options,
'profile=s',
'configuration=s',
'contacts=s',
'delete',
'displayname=s',
'email_address=s',
'expired',
'entityid=s',
'token=s',
) or pod2usage(
-message => "unknown option, aborting\n",
-verbose => 0
);
my $action = $ARGV[0];
pod2usage(
-message => "no action given, aborting\n",
-verbose => 0
) unless $action;
my $configuration_file = $ENV{ACCESS_CHECK_CONFIG} || 'conf/manager.conf';
my $configuration = Config::Tiny->read($configuration_file);
if (!$configuration) {
die Config::Tiny->errstr() . "\n";
}
AccessCheck::DB->register_db(
driver => $configuration->{database}->{type},
database => $configuration->{database}->{name},
host => $configuration->{database}->{host},
password => $configuration->{database}->{password},
username => $configuration->{database}->{username},
options => [
$configuration->{database}->{options} ?
split(/, */, $configuration->{database}->{options}) :
()
]
);
my $db = AccessCheck::DB->new();
SWITCH: {
if ($action eq 'add_account') { add_account(); last SWITCH; }