HEX
Server: Apache
System: Linux vpshost0650.publiccloud.com.br 4.4.79-grsec-1.lc.x86_64 #1 SMP Wed Aug 2 14:18:21 -03 2017 x86_64
User: bandeirantesbomb3 (10068)
PHP: 8.0.7
Disabled: apache_child_terminate,dl,escapeshellarg,escapeshellcmd,exec,link,mail,openlog,passthru,pcntl_alarm,pcntl_exec,pcntl_fork,pcntl_get_last_error,pcntl_getpriority,pcntl_setpriority,pcntl_signal,pcntl_signal_dispatch,pcntl_sigprocmask,pcntl_sigtimedwait,pcntl_sigwaitinfo,pcntl_strerror,pcntl_wait,pcntl_waitpid,pcntl_wexitstatus,pcntl_wifexited,pcntl_wifsignaled,pcntl_wifstopped,pcntl_wstopsig,pcntl_wtermsig,php_check_syntax,php_strip_whitespace,popen,proc_close,proc_open,shell_exec,symlink,system
Upload Files
File: //usr/lib/python2.7/site-packages/lwdbadmin/bottlelibs/bottlepgsql.py
import logging

from lwdbadmin.bottle import abort, get, post, delete, request, route
from lwdbadmin.pgsql import libpgsql


@post('/pgsql')
def createDatabase():
    entity = request.json
    database = entity.get('database')
    username = entity.get('username')
    password = entity.get('password')
    encoding = entity.get('encoding')
    collate = entity.get('collate')
    ctype = entity.get('ctype')
    # hide host from panel, it's not wise to let the logic
    # outside the operations side
    host = '%'

    if not encoding:
        encoding = 'UTF-8'

    if not collate:
        collate = 'en_US.UTF-8'

    if not ctype:
        ctype = 'en_US.UTF-8'

    try:
        libpgsql.createdatabase(database, username, password, host, encoding, collate, ctype)
        logging.info('Database created: {0}'.format(database))
    except Exception, e:
        logging.error("Could not create database {0}: {1}".format(database, str(e)))
        abort(500, str(e))
    return 'Database {0} created'.format(database)


@delete('/pgsql/:database')
def deleteDatabase(database):
    try:
        libpgsql.removedatabase(database)
        logging.info('Database removed: {0}'.format(database))
    except libpgsql.DatabaseNotExists, le:
        logging.error("Database '{0}' does not exits".format(database))
        abort(404, 'Database does not exists')
    except Exception, e:
        logging.error(e)
        abort(500, str(e))

    return "Database {0} removed".format(database)


@get('/pgsql/:database')
def isActive(database):
    try:
        status = libpgsql.isactive(database)
    except libpgsql.DatabaseNotExists, le:
        logging.error("Database '{0}' does not exits".format(database))
        abort(404, 'Database does not exists')
    except Exception, e:
        logging.error(e)
        abort(500, str(e))
    return { 'database': database,
             'status': status}


@route('/pgsql/:database', 'PATCH')
def changeDatabase(database):
    entity = request.json
    password = entity.get('password')
    status = entity.get('status')

    try:
        if password:
            libpgsql.setpassword(database, password)
            logging.info('New password for: {0}'.format(database))
            return 'Password set for user {0}'.format(database)

        if status == 'enabled':
            libpgsql.activatedatabase(database)
            logging.info('Database {0} is now enabled'.format(database))

        elif status == 'disabled':
            libpgsql.deactivatedatabase(database)
            logging.info('Database {0} is now disabled'.format(database))
        else:
            abort(400, "'status' must be one of {'enabled', 'disabled'}")

    except libpgsql.DatabaseNotExists, le:
        logging.error("Database '{0}' does not exits".format(database))
        abort(404, 'Database does not exists')
    except Exception, e:
        logging.error(e)
        abort(500, str(e))

    return "Login {0} is now {1}".format(database, status)