Mysql_AdminPrivileges_Db.object
上传用户:xiao730204
上传日期:2007-01-04
资源大小:141k
文件大小:7k
源码类别:

WEB邮件程序

开发平台:

PHP

  1. <?php
  2. class Mysql_AdminPrivileges_Db extends BaseObject {
  3.    var $debug;
  4.    var $admin_privileges_db;
  5.    Function Mysql_AdminPrivileges_Db( $db_config = '' ) {
  6.       $this->BaseObject( 'Mysql_AdminPrivileges_Db' );
  7.       $this->admin_privileges_db     = new Mysql_Db;
  8.       if ( is_object( $db_config ) ) {
  9.          $this->admin_privileges_db->db = $db_config;
  10.       }
  11.       $this->debug                  = new Debug;
  12.       $this->autocreate_user        = false;
  13.       $this->debug->prefix          = 'Mysql_Db::Admin_Privileges_Db';
  14.       $this->debug->Off();
  15.    } /* END Mysql_AdminPrivileges_Db() */
  16.    Function InitDbConnection() {
  17.       /* Make sure the database handle is available ( if not try to open it ) */
  18.       if ( $this->admin_privileges_db->connection_init == false) {
  19.          $retuns = $this->admin_privileges_db->CreateConnection();
  20.       }
  21.       /* Oh no we failed to open the connection */
  22.       if ( $this->admin_privileges_db->connection_init == false ) {
  23.          return array( false, 'Database connection failed' );
  24.       }
  25.       return array( true );
  26.    }
  27.    Function ListAll() {
  28.       /* Init the database connection and bubble up errors */
  29.       $this->debug->Message( 'Init connection' );
  30.       list( $ret_val, $reason ) = $this->InitDbConnection();
  31.       if ( $ret_val == false ) {
  32.       $this->debug->Message( 'connect failed' );
  33.          return array( $ret_val, $reason );
  34.       }
  35.       $select_all_privileges = $this->admin_privileges_db->PrepareSql( 
  36.          '
  37. SELECT 
  38.    user_id, add_users,  edit_users, delete_users
  39. FROM 
  40.    admin_privileges_table
  41. ORDER BY 
  42.    user_id
  43. ');
  44.       $i = 0; 
  45.       $ResultArray   = array();
  46.       $ResultObj     = new AdminPrivileges();
  47.       $select_all_privileges->Exec();
  48.       while( 
  49.          list( $user_id, $add_users, $edit_users, $delete_users ) 
  50.             = $select_all_privileges->FetchRow()
  51.       ) {
  52.          /* Loop through the output and build the array */
  53.          $ResultObj     = new AdminPrivileges;
  54.          $ResultObj->user_id        = $user_id;
  55.          $ResultObj->add_users      = $add_users;
  56.          $ResultObj->edit_users     = $edit_users;
  57.          $ResultObj->delete_users   = $delete_users;
  58.          $ResultArray[ $i ]         = $ResultObj;
  59.          $i++;
  60.       }
  61.       return array( true, $i, $ResultArray );
  62.       } /* END List All */
  63.    Function Add( $ThisPrivilege ) {
  64.       /* Sanity check on input */
  65.       if ( $ThisPrivilege->user_id == '' ) {
  66.          return array( false, 'NO user id provided' );
  67.       }
  68.       /* Make sure the database handle is available */
  69.       /* Init the database connection and bubble up errors */
  70.       $this->debug->Message( 'Init connection' );
  71.       list( $ret_val, $reason ) = $this->InitDbConnection();
  72.       if ( $ret_val == false ) {
  73.       $this->debug->Message( 'connect failed' );
  74.          return array( $ret_val, $reason );
  75.       }
  76.       $ThisPrivilege->BinaryTrueFalse();
  77.       $insert_privilege = $this->admin_privileges_db->PrepareSql( '
  78. INSERT INTO 
  79.    admin_privileges_table 
  80.    ( user_id, add_users,  edit_users, delete_users )
  81. VALUES ( ' .
  82. $ThisPrivilege->user_id . ', ' .
  83. $ThisPrivilege->add_users . ', ' .
  84. $ThisPrivilege->edit_users . ', ' .
  85. $ThisPrivilege->delete_users . ' ' . 
  86. ' )'
  87. );
  88.       list( $ret_val, $reason ) = $insert_privilege->Exec();
  89.       if ( ! $ret_val ) {
  90.          return array( false, 'Insert to table failed.' );
  91.       } else {
  92.          return array( true, $ThisPrivilege );
  93.       }
  94.       } /* END Add() */
  95.    Function Delete( $user_id ) {
  96.       /* Make sure the database handle is available */
  97.       /* Init the database connection and bubble up errors */
  98.       $this->debug->Message( 'Init connection' );
  99.       list( $ret_val, $reason ) = $this->InitDbConnection();
  100.       if ( $ret_val == false ) {
  101.       $this->debug->Message( 'connect failed' );
  102.          return array( $ret_val, $reason );
  103.       }
  104.       $delete_user = $this->admin_privileges_db->PrepareSql( 'DELETE FROM admin_privileges_table WHERE user_id = ' . $user_id );
  105.       list( $ret_val, $reason ) = $delete_user->Exec();
  106.       if ( ! $ret_val ) {
  107.          return array( false, 'Failed to delete uid : ' . $user_id );
  108.       } else {
  109.          return array( true, $user_id );
  110.       }
  111.       } /* END Delete */
  112.    Function Get( $user_id ) {
  113.       /* Make sure the database handle is available */
  114.       /* Init the database connection and bubble up errors */
  115.       $this->debug->Message( 'Init connection' );
  116.       list( $ret_val, $reason ) = $this->InitDbConnection();
  117.       if ( $ret_val == false ) {
  118.       $this->debug->Message( 'connect failed : ' . $reason );
  119.          return array( $ret_val, $reason );
  120.       }
  121.       /* Build up the query string */
  122.       $query_string = '';
  123.       $query_string .= '
  124. SELECT
  125.    user_id, add_users,  edit_users, delete_users
  126. FROM
  127.    admin_privileges_table 
  128. WHERE
  129.    user_id = ' . $user_id;
  130.       $query_string .= ';';
  131.       $get_user_info 
  132.          = $this->admin_privileges_db->PrepareSql( $query_string );
  133.       /* $get_user_info->Exec(); */
  134.       if ( ! ( 
  135.          list( $user_id, $add_users, $edit_users, $delete_users ) 
  136.             = $get_user_info->FetchRow() 
  137.          ) ){
  138.          $this->debug->Message( 'No match found!' );
  139.          return array( false, 'NO Match found.' );
  140.       }
  141.       $ResultObject = new AdminPrivileges;
  142.       $ResultObject->user_id        = $user_id;
  143.       $ResultObject->add_users      = $add_users;
  144.       $ResultObject->edit_users     = $edit_users;
  145.       $ResultObject->delete_users   = $delete_users;
  146.       $this->debug->Message( 
  147.          'User Id      : ' . $ResultObject->user_id
  148.       );
  149.       $this->debug->Message( 
  150.          'Add Users    : ' . $ResultObject->add_users
  151.       );
  152.       $this->debug->Message(
  153.          'Edit Users   : ' . $ResultObject->edit_users
  154.       );
  155.       $this->debug->Message(
  156.          'Delete Users : ' . $ResultObject->delete_users
  157.       );
  158.       $this->debug->Message( 'Ret true' );
  159.       return array( true, $ResultObject );
  160.       } /* END Get() */
  161.    Function Modify( $user_id, $ThisPrivileges ) {
  162.       if ( $user_id == '' ) { 
  163.          return array( false, 'Please provide a user id.');
  164.       }
  165.       /* Make sure the database handle is available */
  166.       /* Init the database connection and bubble up errors */
  167.       $this->debug->Message( 'Init connection' );
  168.       list( $ret_val, $reason ) = $this->InitDbConnection();
  169.       if ( $ret_val == false ) {
  170.       $this->debug->Message( 'connect failed' );
  171.          return array( $ret_val, $reason );
  172.       }
  173.       $ThisPrivileges->BinaryTrueFalse();
  174.       $query_string = '';
  175.       $query_string = 
  176. '
  177. UPDATE
  178.    admin_privileges_table 
  179. SET ';
  180.       $more_than_one = false;
  181.       if ( $ThisPrivileges->add_users != '' ) {
  182.          $more_than_one = true;
  183.          $query_string .= 'add_users = ' . $ThisPrivileges->add_users . ' ';
  184.       }
  185.       if ( $ThisPrivileges->edit_users != '' ) {
  186.          if ( $more_than_one ) {
  187.             $query_string .= ' , ';
  188.          }
  189.          $more_than_one = true;
  190.          $query_string .= 'edit_users  = ' . $ThisPrivileges->edit_users . ' ';
  191.       }
  192.       if ( $ThisPrivileges->delete_users != '' ) {
  193.          if ( $more_than_one ) {
  194.             $query_string .= ' , ';
  195.          }
  196.          $more_than_one = true;
  197.          $query_string .= 'delete_users     = ' . $ThisPrivileges->delete_users . ' ';
  198.       }
  199.       $query_string .= 'where user_id = ' . $user_id
  200. ;
  201.       $mod_user_info = $this->admin_privileges_db->PrepareSql( $query_string );
  202.       return array( true, $mod_user_info->Exec() );
  203.       } /* END Modify */
  204. }
  205. ?>