AmberDB
view release on metacpan or search on metacpan
bin/push_wiki.pl view on Meta::CPAN
print "No changes detected. Wiki is already up-to-date!\n";
} else {
my $commit_msg = "Wiki Sync: " . scalar(gmtime()) . " UTC [automated]";
system("git -C \"$temp_clone_dir\" commit -m \"$commit_msg\"");
my $push_rc = system("git -C \"$temp_clone_dir\" push origin master") == 0
|| system("git -C \"$temp_clone_dir\" push origin main") == 0;
if ($push_rc) {
print "Successfully synchronized AmberDB Wiki to GitHub!\n";
} else {
warn "Warning: git push returned an error. Check credentials/permissions.\n";
}
}
print "4. Cleaning up temporary workspace...\n";
remove_tree($temp_clone_dir);
print "Done.\n";
lib/AmberDB/Base.pm view on Meta::CPAN
$self->{_connect}->{token} = $token;
$self->{_connect}->{database} = $sess->{connect}->{database} // $sess->{database} // $self->{_connect}->{database} // '';
$self->{_connect}->{username} = $sess->{connect}->{username} // $sess->{username} // $self->{_connect}->{username} // 'user_system';
$self->{_connect}->{password} = $sess->{connect}->{password} // $sess->{password} // '';
$self->{_cfg}->{user} = $self->{_connect}->{username};
return $token;
}
return undef;
}
# Sub-case B: Authenticate credentials & generate session token
my $connect_cfg = $self->_load_connect_config();
# Dbase dir leaf name as default database if not specified
if ( !defined $database || !length $database ) {
if ( $connect_cfg && $connect_cfg->{database} ) {
$database = $connect_cfg->{database};
}
else {
my $dbase_dir = $self->path('dbase_dir') || ".";
my ($leaf) = $dbase_dir =~ m{([^/\\\\]+)[/\\\\]*$};
t/amberdb_connect_lifecycle.t view on Meta::CPAN
ok( $adb->disconnect($token), "disconnect() successfully clears session" );
ok( ! -f $sess_file, "Session file deleted upon disconnect" );
}
# 4. User Management API (user_add, user_passwd, user_list, user_del)
{
my $adb = AmberDB->new( path => { dbase_dir => $db_dir } );
# user_add
ok( $adb->user_add( 'new_operator', 'operator123', role => 'cli' ), "user_add adds new user" );
ok( $adb->user_verify( 'new_operator', 'operator123' ), "user_verify confirms new user credentials" );
ok( !$adb->user_verify( 'new_operator', 'badpass' ), "user_verify rejects bad password" );
# user_list
my @users = $adb->user_list();
my ($op) = grep { $_->{username} eq 'new_operator' } @users;
ok( $op, "user_list includes new user" );
is( $op->{role}, 'cli', "user_list provides user role" );
is( $op->{has_password}, 1, "user_list indicates password is set" );
ok( !exists $op->{shadow}, "user_list does not expose shadow hash" );
( run in 2.542 seconds using v1.01-cache-2.11-cpan-007c89162af )