PHP Classes

File: sql/class.pgsql.php

Recommend this page to a friend!
  Classes of giuseppe lucarelli   dbuser   sql/class.pgsql.php   Download  
File: sql/class.pgsql.php
Role: Class source
Content type: text/plain
Description: php class for postgresql
Class: dbuser
Manage MySQL or PostgreSQL users using reconfig
Author: By
Last change: changed visibility
Date: 8 years ago
Size: 2,794 bytes
 

Contents

Class file image Download
<?php

class REConfigUser Extends REConfig
{
    function
BuildQuery() {
       
$privs='';
       
$json_data=&$_POST['json_data']['building'];

        if(!
strcasecmp('yes',@$json_data[4]['value'][0])) {
           
$privs='ALL PRIVILEGES';
        } else {
            if(!
strcasecmp('y',@$json_data[5]['value'][0])) $privs.='select';
            if(!
strcasecmp('y',@$json_data[6]['value'][0])) $privs.=',insert';
            if(!
strcasecmp('y',@$json_data[7]['value'][0])) $privs.=',update';
            if(!
strcasecmp('y',@$json_data[8]['value'][0])) $privs.=',delete';
           
$privs=ltrim($privs,',');
        }
        if(@
in_array('insert',$this->action)) {
           
$this->sources['building']['out']['query']=$this->SqlGrantPrivs(
               
$json_data[0]['value'][0],$json_data[2]['value'][0],$json_data[3]['value'][0],$privs,@$json_data[9]['value'][0]);
        } else if(@
in_array('update',$this->action)) {
           
$this->sources['building']['out']['query']=$this->SqlUpdatePrivs(
               
$json_data[0]['value'][0],$json_data[2]['value'][0],$json_data[3]['value'][0],$privs,@$json_data[9]['value'][0]);
        } else if(@
in_array('delete',$this->action)) {
           
$this->sources['building']['out']['query']=$this->SqlRevokePrivs(
                  
$json_data[0]['value'][0],$json_data[1]['value'][0],@$json_data[9]['value'][0]);
        }
       
$this->sources['building']['out']['dbname']=$json_data[0]['value'][0];
    }

    function
SqlListPrivs($host,$user) {
        return
"SELECT usename as user,'' as password,'n' as Select_priv,'n' as Insert_priv,'n' as Update_priv,'n' as Delete_priv,'n' as Grant_priv FROM pg_user WHERE usename='".$user.'\';';
    }

    function
SqlGrantPrivs($db,$user,$password,$privs,$grant) {
       
$grantoption=($grant=='Y' ? ' WITH GRANT OPTION' : '');

       
$sql = array(
           
'CREATE USER '.$user." WITH PASSWORD '".$password."';",
           
"GRANT ".$privs.' ON ALL TABLES IN SCHEMA public TO '.$user.$grantoption.';'
       
);
        return
$sql;
    }

    function
SqlUpdatePrivs($db,$user,$password,$privs,$grant) {
       
$grantoption=($grant=='Y' ? ' WITH GRANT OPTION' : '');

       
$sql = array(
           
'REVOKE ALL PRIVILEGES ON DATABASE '.$db.' FROM '.$user.';',
           
"GRANT ".$privs.' ON ALL TABLES IN SCHEMA public TO '.$user.$grantoption.';');
        if(
strlen($password) > 2) {
       
$sql[] = "ALTER USER $user WITH PASSWORD '$password';";
        }
        return
$sql;
   }

   function
SqlRevokePrivs($db,$user,$grant) {
        global
$GLOBALCFG;

       
$sql = array(
           
'REVOKE ALL PRIVILEGES ON DATABASE '.$db.' FROM '.$user); //,'DROP USER '.$user);
       
return $sql;
    }
};