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

WEB邮件程序

开发平台:

PHP

  1. <?php
  2. class Mysql_User_Db extends BaseObject {
  3.    var $debug;
  4.    var $user_db;
  5.    Function Mysql_User_Db( $db_config = '') {
  6.       $this->BaseObject( 'Mysql_User_Db' );
  7.       $this->user_db = new Mysql_Db();
  8.       if ( is_object( $db_config ) ) {
  9.          $this->user_db->db = $db_config;
  10.       }
  11.       $this->debug                  = new Debug;
  12.       $this->debug->prefix          = 'Mysql_Db::User_Db';
  13.       $this->debug->Off();
  14.       $this->user_db->debug->Off();
  15.       } /* END Mysql_User_Db() */
  16.    Function InitDbConnection() {
  17.       /* Make sure the database handle is available ( if not try to open it ) */
  18.       if ( $this->user_db->connection_init == false) {
  19.          $retuns = $this->user_db->CreateConnection();
  20.       }
  21.       /* Oh no we failed to open the connection */
  22.       if ( $this->user_db->connection_init == false ) {
  23.          return array( false, 'Not connected' );
  24.       }
  25.       return array( true );
  26.    }
  27.    Function ListAll( $domain_id = '0' ) {
  28.       /* Init the database connection and bubble up errors */
  29.       $this->debug->Message( 'Init connection - listall' );
  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.       if ( $domain_id == '' ) { $domain_id = 0 ; }
  36. $sql =      "
  37. SELECT 
  38.    user_id, user_name, password, login_deny, domain_id, last_update
  39. FROM 
  40.    user_table 
  41. WHERE
  42.    domain_id = $domain_id
  43. ORDER BY 
  44.    user_id
  45. ";
  46.       $select_all_users = $this->user_db->PrepareSql( $sql );
  47.       $i = 0; 
  48.       $ResultArray   = array();
  49.       $ResultObj     = new User;
  50.       $select_all_users->Exec();
  51.       while( 
  52.          list( $user_id, $user_name, $password, $login_deny, $domain_id, $last_update ) = 
  53.             $select_all_users->FetchRow()
  54.       ) {
  55.          /* Loop through the output and build the array */
  56.          $ResultObj->user_id     = 0;
  57.          $ResultObj->user_name   = '';
  58.          $ResultObj->password    = '';
  59.          $ResultObj->login_deny  = true;
  60.          $ResultObj->user_id     = $user_id;
  61.          $ResultObj->user_name   = $user_name;
  62.          $ResultObj->password    = $password;
  63.          $ResultObj->login_deny  = $login_deny;
  64.          $ResultObj->domain_id   = $domain_id;
  65.          $ResultObj->last_update = $last_update;
  66.          $ResultArray[ $i ] = $ResultObj;
  67.          $i++;
  68.       }
  69.       return array( true, $i, $ResultArray );
  70.       } /* END List All */
  71.    Function Add( $ThisUser ) {
  72.       /* Sanity check on input */
  73.       if ( $ThisUser->user_name == '' ) {
  74.          return array( false, 'NO user name provided' );
  75.       }
  76.       if ( $ThisUser->password == '' ) {
  77.          return array( false, 'NO password provided' );
  78.       }
  79.       if ( $ThisUser->login_deny == true ) {
  80.          $ThisUser->login_deny = 1;
  81.       } else {
  82.          $ThisUser->login_deny = 0;
  83.       }
  84.       /* Make sure the database handle is available */
  85.       /* Init the database connection and bubble up errors */
  86.       $this->debug->Message( 'Init connection - Add' );
  87.       list( $ret_val, $reason ) = $this->InitDbConnection();
  88.       if ( $ret_val == false ) {
  89.       $this->debug->Message( 'connect failed' );
  90.          return array( $ret_val, $reason );
  91.       }
  92.       $insert_user = $this->user_db->PrepareSql( '
  93. INSERT INTO 
  94.    user_table ( user_name, password, login_deny, domain_id, last_update ) 
  95. VALUES ( ' .
  96. "'" . $ThisUser->user_name . "', " .
  97. "'" . $ThisUser->password . "', " .
  98. "'" . $ThisUser->login_deny . "', " .
  99. "'" . $ThisUser->domain_id . "', " .
  100. "'" . $ThisUser->last_update . "'" .
  101. ' )'
  102. );
  103.       list( $ret_val, $reason ) = $insert_user->Exec();
  104.       if ( ! $ret_val ) {
  105.          return array( false, 'Insert to table failed.' );
  106.       } else {
  107.          $ThisUser->user_id = $insert_user->GetInsertId();
  108.          return array( true, $ThisUser );
  109.       }
  110.    } /* END Add() */
  111.    Function Delete( $ThisUser ) {
  112.       /* Make sure the database handle is available */
  113.       /* Init the database connection and bubble up errors */
  114.       $this->debug->Message( 'Init connection - delete' );
  115.       list( $ret_val, $reason ) = $this->InitDbConnection();
  116.       if ( $ret_val == false ) {
  117.       $this->debug->Message( 'connect failed' );
  118.          return array( $ret_val, $reason );
  119.       }
  120.       $delete_user = $this->user_db->PrepareSql( 
  121.          'DELETE FROM user_table WHERE ' .
  122.             ' user_id = ' . $ThisUser->user_id .
  123.          ' AND ' .
  124.             ' domain_id = ' . $ThisUser->domain_id
  125.       );
  126.       list( $ret_val, $reason ) = $delete_user->Exec();
  127.       if ( ! $ret_val ) {
  128.          return array( false, 'Failed to delete uid : ' . $UserObject->user_id );
  129.       } else {
  130.          return array( true, $ThisUser );
  131.       }
  132.       } /* END Delete */
  133.    Function Get( $ThisUser ) {
  134.       /* Make sure the database handle is available */
  135.       /* Init the database connection and bubble up errors */
  136.       $this->debug->Message( 'Init connection - get' );
  137.       list( $ret_val, $reason ) = $this->InitDbConnection();
  138.       if ( $ret_val == false ) {
  139.       $this->debug->Message( 'connect failed' );
  140.          return array( $ret_val, $reason );
  141.       }
  142.       /* Build up the query string */
  143.       $query_string = '';
  144.       $query_string .= '
  145. SELECT
  146.    user_id, user_name, password, login_deny, domain_id, last_update
  147. FROM
  148.    user_table
  149. WHERE
  150.    domain_id = ' . $ThisUser->domain_id . ' ';
  151.       if ( $ThisUser->user_id != '' && $ThisUser->user_id != -1 ) {
  152.          $query_string .= ' AND user_id = ' . $ThisUser->user_id;
  153.       }
  154.       $query_string .= ' AND user_name = "' . $ThisUser->user_name . '"';
  155.       if ( $ThisUser->password != undef ) {
  156.          $query_string .= ' AND password = "' . $ThisUser->password . '"';
  157.       }
  158.       $query_string .= ';';
  159.       $this->debug->Message( $query_string );
  160.       $get_user_info = $this->user_db->PrepareSql( $query_string );
  161.       $get_user_info->Exec();
  162.       $ResultObject = new User;
  163.       if ( ! (
  164.          list(
  165.             $ResultObject->user_id,
  166.             $ResultObject->user_name, 
  167.             $ResultObject->password,
  168.             $ResultObject->login_deny,
  169.             $ResultObject->domain_id,
  170.             $ResultObject->last_update ) 
  171.                = $get_user_info->FetchRow() ) ){
  172.          $this->debug->Message( 'No Match found' );
  173.          $this->debug->Message( $user_id );
  174.          return array( false, 'NO Match found.' );
  175.       }
  176.       /*
  177.       if ( $ResultObject->password == $ThisUser->password ) {
  178.          return array( true, $ResultObject );
  179.       } else {
  180.          return array( false, $ResultObject );
  181.       }
  182.       if ( $ResultObject->password == $ThisUser->EncryptPassword() ) {
  183.          return array( true, $ResultObject );
  184.       } else {
  185.          return array( false, $ResultObject );
  186.       }
  187.       */
  188.       return array( true, $ResultObject );
  189.       //return array( false, 'NO Match found.' );
  190.    } /* END Get() */
  191.    Function Modify( $ThisUser ) {
  192.       if ( $ThisUser->user_id == '' ) { 
  193.          return array( false, 'Please provide a user id.' );
  194.       }
  195.       /* Make sure the database handle is available */
  196.       /* Init the database connection and bubble up errors */
  197.       $this->debug->Message( 'Init connection - modify' );
  198.       list( $ret_val, $reason ) = $this->InitDbConnection();
  199.       if ( $ret_val == false ) {
  200.       $this->debug->Message( 'connect failed' );
  201.          return array( $ret_val, $reason );
  202.       }
  203.       $query_string = '';
  204.       $query_string = 
  205. '
  206. UPDATE
  207.    user_table
  208. SET 
  209.    last_update= NOW() ';
  210.       if ( $ThisUser->user_name != '' ) {
  211.          $query_string .= ' , ';
  212.          $query_string .= 
  213.             'user_name = '' . $ThisUser->user_name . '' ';
  214.       }
  215.       if ( $ThisUser->password != '' ) {
  216.          $query_string .= ' , ';
  217.          $query_string .= 
  218.             'password  = '' . $ThisUser->password . '' ';
  219.       }
  220.       if ( $ThisUser->login_deny == 0 || $ThisUser->login_deny == 1) {
  221.          $query_string .= ' , ';
  222.          $query_string .= 
  223.             'login_deny      = ' . $ThisUser->login_deny . ' ';
  224.       }
  225.       $query_string .= 
  226. 'WHERE user_id = ' . 
  227.    $ThisUser->user_id . ' and domain_id = ' . $ThisUser->domain_id
  228. ;
  229.       $mod_user_info = $this->user_db->PrepareSql( $query_string );
  230.       return array( true, $mod_user_info->Exec() );
  231.       } /* END Modify */
  232.    }
  233. ?>