API-CPanel

 view release on metacpan or  search on metacpan

lib/API/CPanel/Mysql.pm  view on Meta::CPAN

package API::CPanel::Mysql;

use strict;
use warnings;

use API::CPanel;
use Data::Dumper;

our $VERSION = 0.07;

# Äîáàâëÿåò ïîëüçîâàòåëÿ â áàçó mysql
# IN:
#   - do_as_user - cPanel ïîëüçîâàòåëü äëÿ êîòîðîãî ñîçäàåòñÿ mysql-ïîëüçîâàòåëü
#   - username   - Èìÿ mysql-ïîëüçîâàòåëÿ äëÿ ñîçäàíèÿ 
#                  (ôàêòè÷åñêè áóäåò ñîçäàí mysql-ïîëüçîâàòåëü ñ èìåíåì: <do_as_user>_<username>).
#   - password   - Ïàðîëü äëÿ mysql-ïîëüçîâàòåëÿ.
sub adduser {
    my $params = shift;

    # Ìîäóëü Mysql cPanel'à ñ êîòîðûì ðàáîòàåì îòíîñèòñÿ ê ïåðâîé âåðñèè api
    $params->{'cpanel_xmlapi_apiversion'} = 1;
    # Äîáàâëÿåì íîâîãî ïîëüçîâàòåëÿ â áàçó îò èìåíè ïîëüçîâàòåëÿ ïåðåäàâàåìîãî â ïàðàìåòðå do_as_user
    # Ôàêòè÷åñêè ýòî çíà÷èò ÷òî ðàáîòàÿ ñ cPanel îò ðåñåëëåðà ìû ñîçäàåì mysql 
    # þçåðà äëÿ cPanel-ïîëüçîâàòåëÿ ñ ëîãèíîì do_as_user
    $params->{'user'} = delete $params->{'do_as_user'};

    $params->{'cpanel_xmlapi_module'} = 'Mysql';
    $params->{'cpanel_xmlapi_func'}   = 'adduser';

    $params->{'arg-0'}  = delete $params->{'username'};
    $params->{'arg-1'}  = delete $params->{'password'};

    return unless $params->{'user'}  &&
                  $params->{'arg-0'} &&
                  $params->{'arg-1'};

    my $result = API::CPanel::action_abstract(
        params         => $params,
        func           => 'cpanel',
        want_hash      => '1',
        allowed_fields => '
            user 
            cpanel_xmlapi_module 
            cpanel_xmlapi_func 
            cpanel_xmlapi_apiversion 
            arg-0
            arg-1',
    );

    return $result->{event}->{result};
}

# Äîáàâëÿåò áàçó mysql
# IN:
#   - do_as_user - cPanel ïîëüçîâàòåëü äëÿ êîòîðîãî ñîçäàåòñÿ mysql-áàçà
#   - dbname     - Èìÿ áä äëÿ ñîçäàíèÿ 
#                  (ôàêòè÷åñêè áóäåò ñîçäàíà áä ñ èìåíåì: <do_as_user>_<dbname>).
sub adddb {
    my $params = shift;

    # Ìîäóëü Mysql cPanel'à ñ êîòîðûì ðàáîòàåì îòíîñèòñÿ ê ïåðâîé âåðñèè api
    $params->{'cpanel_xmlapi_apiversion'} = 1;
    # Äîáàâëÿåì áä îò èìåíè ïîëüçîâàòåëÿ ïåðåäàâàåìîãî â ïàðàìåòðå do_as_user
    # Ôàêòè÷åñêè ýòî çíà÷èò ÷òî ðàáîòàÿ ñ cPanel îò ðåñåëëåðà ìû ñîçäàåì áä
    # äëÿ cPanel-ïîëüçîâàòåëÿ ñ ëîãèíîì do_as_user
    $params->{'user'} = delete $params->{'do_as_user'};

    $params->{'cpanel_xmlapi_module'} = 'Mysql';
    $params->{'cpanel_xmlapi_func'}   = 'adddb';

    $params->{'arg-0'}  = delete $params->{'dbname'};

    return unless $params->{'user'} &&
                  $params->{'arg-0'};


    my $result = API::CPanel::action_abstract(
        params         => $params,
        func           => 'cpanel',
        want_hash      => '1',
        allowed_fields => '
            user 
            cpanel_xmlapi_module 
            cpanel_xmlapi_func 
            cpanel_xmlapi_apiversion 
            arg-0',
    );

    return $result->{event}->{result};
}

# Óñòàíàâëèâàåò ðàçðåøåíèÿ ê áàçå
# IN:
#   - do_as_user - cPanel ïîëüçîâàòåëü äëÿ êîòîðîãî ñîçäàåòñÿ mysql-áàçà
#   - dbname     - Èìÿ áä
#   - dbuser     - Èìÿ ïîëüçîâàòåëÿ
#   - perms_list - Ñïèñîê ðàçðåøåíèé:
#                       alter      => ALTER
#                       temporary  => CREATE TEMPORARY TABLES
#                       routine    => CREATE ROUTINE
#                       create     => CREATE
#                       delete     => DELETE
#                       drop       => DROP
#                       select     => SELECT
#                       insert     => INSERT
#                       update     => UPDATE
#                       references => REFERENCES
#                       index      => INDEX
#                       lock       => LOCK TABLES
#                       all        => ALL
sub grant_perms {
    my $params = shift;

    # Ìîäóëü Mysql cPanel'à ñ êîòîðûì ðàáîòàåì îòíîñèòñÿ ê ïåðâîé âåðñèè api
    $params->{'cpanel_xmlapi_apiversion'} = 1;
    # Äîáàâëÿåì áä îò èìåíè ïîëüçîâàòåëÿ ïåðåäàâàåìîãî â ïàðàìåòðå do_as_user
    # Ôàêòè÷åñêè ýòî çíà÷èò ÷òî ðàáîòàÿ ñ cPanel îò ðåñåëëåðà ìû ñîçäàåì áä
    # äëÿ cPanel-ïîëüçîâàòåëÿ ñ ëîãèíîì do_as_user
    $params->{'user'} = delete $params->{'do_as_user'};

    $params->{'cpanel_xmlapi_module'} = 'Mysql';
    $params->{'cpanel_xmlapi_func'}   = 'adduserdb';

    $params->{'arg-0'}  = delete $params->{'dbname'};
    $params->{'arg-1'}  = delete $params->{'dbuser'};
    $params->{'arg-2'}  = delete $params->{'perms_list'};

    return unless $params->{'user'}  &&
                  $params->{'arg-0'} &&
                  $params->{'arg-1'} &&
                  $params->{'arg-2'};

    my $result = API::CPanel::action_abstract(
        params         => $params,
        func           => 'cpanel',
        want_hash      => '1',
        allowed_fields => '
            user 
            cpanel_xmlapi_module 
            cpanel_xmlapi_func 
            cpanel_xmlapi_apiversion 
            arg-0
            arg-1
            arg-2',
    );

    return $result->{event}->{result};
}




1;



( run in 1.778 second using v1.01-cache-2.11-cpan-39bf76dae61 )