API-DirectAdmin

 view release on metacpan or  search on metacpan

lib/API/DirectAdmin.pm  view on Meta::CPAN

    email    => $email,
    package  => $package,
    ip       => $ip,
 });

 # Switch off account:
 my $suspend_result = $da->user->disable( {
    select0 => $user_name,
 } );

 if ( $suspend_result->{error} == 1 ) {
    die "Cannot  suspend account $suspend_result->{text}";
 }



 # Switch on account
 my $resume_result = $da->user->enable( {
    select0 => $user_name,
 } );

 if ( $resume_result->{error} == 1 ) {
    die "Cannot Resume account $resume_result->{text}";
 }



 # Delete account
 my $delete_result = $da->user->delete( {
    select0 => $user_name,
 } );

 if ( $delete_result->{error} == 1 ) {
    die "Cannot delete account $delete_result->{text}";
 }
 
 # Custom request
 my %params = (
    action  => 'package',
    package => 'package_name',
    user    => 'username',
 );

lib/API/DirectAdmin/User.pm  view on Meta::CPAN


# Change package for user
# params: user, package
sub change_package {
    my ($self, $params ) = @_;
    
    my $package = $params->{package};

    unless ( $self->{fake_answer} ) {
	unless ( $package ~~ $self->show_packages() ) {
	    return {error => 1, text => "No such package $package on server"};
	} 
    }
    
    my %add_params = (
	action => 'package',
    );
    
    my %params = (%$params, %add_params);
    
    my $responce = $self->directadmin->query(

t/01-test.t  view on Meta::CPAN

	    allow_https => 0, 
    } ), 
    'http://'.$connection_params{auth_user}.':'.$connection_params{auth_passwd}.'@'.$connection_params{host}.':2222/CMD?param1=val1&param2=val2',
    $func
);

# IP

use_ok('API::DirectAdmin::Ip');

$da->{fake_answer} = ! $ONLINE ? { list => ['127.0.0.1'], error => 0 } : undef;

my $ip_list = $da->ip->list();

my $main_shared_ip = $ip_list->[0];
ok($ip_list && ref $ip_list eq 'ARRAY' && scalar @$ip_list, 'API::DirectAdmin::Ip::list');

my %answer = (
    text    => "User $manipulate_user created",
    error   => 0,
    details => 'Unix User created successfully
Users System Quotas set
Users data directory created successfully
Domains directory created successfully
Domains directory created successfully in users home
Domain Created Successfully');
$da->{fake_answer} = ! $ONLINE ? \%answer : undef;

# User

t/01-test.t  view on Meta::CPAN

	passwd2  => 'qwerty',
	email    => 'test@example.com',
	ip       => '127.0.0.1',
	package  => 'newpackage',
    }
);
is_deeply( $result, \%answer, 'API::DirectAdmin::User::create' );

%answer = (
  text    => 'Cannot Create Account',
  error   => 1,
  details => 'That username already exists on the system'
);
	
$da->{fake_answer} = ! $ONLINE ? \%answer : undef;

$result = $da->user->create(
    {
	username => $manipulate_user,
	domain   => 'zse1.ru',
	passwd   => 'qwerty',
	passwd2  => 'qwerty',
	email    => 'test@example.com',
	ip       => '127.0.0.1',
	package  => 'newpackage',
    }
);
is_deeply( $result, \%answer, 'API::DirectAdmin::User::create repeat');

%answer = (
    text 	=> 'Password Changed',
    error 	=> 0,
    details 	=> 'Password successfully changed'
);

$da->{fake_answer} = ! $ONLINE ? \%answer : undef;

$result = $da->user->change_password(
    {
	user => $manipulate_user,
	pass => 'sdfdsfsdfhsdfj',
    }
);
is_deeply( $result, \%answer, 'API::DirectAdmin::User::change_password');

%answer = (
    text 	=> 'Success',
    error 	=> 0,
    details 	=> 'All selected Users have been suspended',
);

$da->{fake_answer} = ! $ONLINE ? \%answer : undef;

$result = $da->user->disable(
    {
	user   => $manipulate_user,
	reason => 'test reason1',
    }

t/01-test.t  view on Meta::CPAN


$da->{fake_answer} = ! $ONLINE ? \%answer : undef;

$result = $da->user->enable(
    {
	user => $manipulate_user,
    }
);
is_deeply( $result, \%answer, 'API::DirectAdmin::User::enable');

$da->{fake_answer} = ! $ONLINE ? { list => ['default','admin'], error => 0, } : undef;

$result = $da->user->list();
ok( ref $result eq 'ARRAY' && scalar @$result, 'API::DirectAdmin::User::list');

%answer = (
    text 	=> 'No such package newpackage on server',
    error 	=> 1,
);

$da->{fake_answer} = ! $ONLINE ? \%answer : undef;

$result = $da->user->change_package(
    {
	user    => $manipulate_user,
	package => 'newpackage',
    }
);

is_deeply( $result, \%answer, 'API::DirectAdmin::User::change_package');

%answer = (
    text 	=> 'Users deleted',
    error 	=> 0,
    details 	=> "User $manipulate_user Removed",
);

$da->{fake_answer} = ! $ONLINE ? \%answer : undef;

$result = $da->user->delete(
    {
	user => $manipulate_user,
    }
);
is_deeply( $result, \%answer, 'API::DirectAdmin::User::delete');

%answer = (
    text 	=> 'Error while deleting Users',
    error 	=> 1,
    details 	=> "User $manipulate_user did not exist on the server.  Removing it from your list.",
);

$da->{fake_answer} = ! $ONLINE ? \%answer : undef;

$result = $da->user->delete(
    {
	user => $manipulate_user,
    }
);
is_deeply( $result, \%answer , 'API::DirectAdmin::User::delete repeat');

# Mysql

use_ok('API::DirectAdmin::Mysql');

$connection_params{auth_user} .= '|' . $manipulate_user;

%answer = (
    text 	=> 'Database Created',
    error 	=> 0,
    details 	=> 'Database Created',
);

$da->{fake_answer} = ! $ONLINE ? \%answer : undef;

$result = $da->mysql->adddb(
    {
        name     => 'default',
        user     => 'default',
        passwd   => 'default_pass',

t/01-test.t  view on Meta::CPAN

is_deeply( $result, \%answer, 'API::DirectAdmin::Mysql::adddb');

# Domain

use_ok('API::DirectAdmin::Domain');

my $addondomain = 'ssssss.ru';

%answer = (
    text 	=> 'Domain Created',
    error 	=> 0,
    details 	=> 'Domain Created Successfully'
);

$da->{fake_answer} = ! $ONLINE ? \%answer : undef;
$result = $da->domain->add(
    {
        domain => $addondomain,
        php => 'ON',
        cgi => 'ON',
    }
);
is_deeply( $result, \%answer  , 'API::DirectAdmin::Domain::add');

%answer = (
    text 	=> 'Cannot create that domain',
    error 	=> 1,
    details 	=> 'That domain already exists'
);

$da->{fake_answer} = ! $ONLINE ? \%answer : undef;
$result = $da->domain->add(
    {
        domain => $addondomain,
        php => 'ON',
        cgi => 'ON',
    }



( run in 0.586 second using v1.01-cache-2.11-cpan-49f99fa48dc )