Develop and Download Open Source Software

Browse CVS Repository

Diff of /xoonips/AL/commonal.cc

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.11 by aga, Fri Nov 26 08:16:26 2004 UTC revision 1.12 by youi, Fri Nov 26 09:45:28 2004 UTC
# Line 2  Line 2 
2   *   *
3   * $Revision$   * $Revision$
4   * $Log$   * $Log$
5     * Revision 1.12  2004/11/26 09:45:28  youi
6     * getAccountを定義.
7     *
8   * Revision 1.11  2004/11/26 08:16:26  aga   * Revision 1.11  2004/11/26 08:16:26  aga
9   * ・getSession, loginUser, createSession, freeResult(const session_t*) 修正.   * ・getSession, loginUser, createSession, freeResult(const session_t*) 修正.
10   *   *
# Line 189  result_t deleteAccount( sessionid_t sid, Line 192  result_t deleteAccount( sessionid_t sid,
192   * @return   * @return
193   *   *
194   */   */
195  result_t getAccount( sessionid_t sid, userid_t uid, const account_t** )  result_t getAccount( sessionid_t sid, userid_t uid, const account_t** acc )
196  {  {
197      return RES_ERROR;      if( !isValidSessionID( sid ) ) return RES_NO_SUCH_SESSION;
198        
199        string sql;
200        MYSQL_RES* result;
201        MYSQL_ROW row;
202        account_t* dst = new account_t[ 1 ];
203        
204        sql = "SELECT uid, name, uname, email, url, user_avatar, user_regdate, user_icq, user_from, user_sig, user_viewemail, actkey, user_aim, user_yim, user_msnm, pass, posts, attachsig, rank, level, theme, timezone_offset, last_login, umode, uorder, notify_method, notify_mode, user_occ, bio, user_intrest, user_mailok FROM " + dbprefix + "_users WHERE uid = " + string( unsignedIntToString( uid ) );
205        if( mysql_query( mysql, sql.c_str( ) ) ){
206            fprintf( stderr, "%d %s\n", mysql_errno(mysql), mysql_error(mysql) );
207            return RES_DB_QUERY_ERROR;
208        }
209        result = mysql_store_result( mysql ) ;
210        row = mysql_fetch_row(result);
211        if( row ){
212            dst -> setUID( atoi( row[ 0 ] ) );
213            dst -> setName( row[ 1 ] );
214            dst -> setUname( row[ 2 ] );
215            dst -> setEmail( row[ 3 ] );
216            dst -> setURL( row[ 4 ] );
217            dst -> setUserAvatar( row[ 5 ] );
218            dst -> setUserRegdate( atoi( row[ 6 ] ) );
219            dst -> setUserIcq( row[ 7 ] );
220            dst -> setUserFrom( row[ 8 ] );
221            dst -> setUserSig( row[ 9 ] );
222            dst -> setUserViewemail( atoi( row[ 10 ] ) );
223            dst -> setActkey( row[ 11 ] );
224            dst -> setUserAim( row[ 12 ] );
225            dst -> setUserYim( row[ 13 ] );
226            dst -> setUserMsnm( row[ 14 ] );
227            dst -> setPass( row[ 15 ] );
228            dst -> setPosts( atoi( row[ 16 ] ) );
229            dst -> setAttachsig( atoi( row[ 17 ] ) );
230            dst -> setRank( atoi( row[ 18 ] ) );
231            dst -> setLevel( atoi( row[ 19 ] ) );
232            dst -> setTheme( row[ 20 ] );
233            dst -> setTimezoneOffset( atof( row[ 21 ] ) );
234            dst -> setLastLogin( atoi( row[ 22 ] ) );
235            dst -> setUmode( row[ 23 ] );
236            dst -> setUorder( atoi( row[ 24 ] ) );
237            dst -> setNotifyMethod( atoi( row[ 25 ] ) );
238            dst -> setNotifyMode( atoi( row[ 26 ] ) );
239            dst -> setUserOcc( row[ 27 ] );
240            dst -> setBio( row[ 28 ] );
241            dst -> setUserIntrest( row[ 29 ] );
242            dst -> setUserMailok( atoi( row[ 30 ] ) );
243        }else{
244            mysql_free_result( result );
245            delete[] dst;
246            return RES_NO_SUCH_USER;
247        }
248        mysql_free_result( result );
249        
250        sql = "SELECT activate, address, institute, tel, organization, country, zipcode, fax, base_url, notice_mail, notice_mail_since FROM " + dbprefix + "_vpaccount_users WHERE uid = " + string( unsignedIntToString( uid ) );
251        if( mysql_query( mysql, sql.c_str( ) ) ){
252            fprintf( stderr, "%d %s\n", mysql_errno(mysql), mysql_error(mysql) );
253            return RES_DB_QUERY_ERROR;
254        }
255        result = mysql_store_result( mysql ) ;
256        row = mysql_fetch_row(result);
257        if( row ){
258            dst -> setActivate( atoi( row[ 0 ] ) );
259            dst -> setAddress( row[ 1 ] );
260            dst -> setInstitute( row[ 2 ] );
261            dst -> setTel( row[ 3 ] );
262            dst -> setOrganization( row[ 4 ] );
263            dst -> setCountry( row[ 5 ] );
264            dst -> setZipcode( row[ 6 ] );
265            dst -> setFax( row[ 7 ] );
266            dst -> setBaseURL( row[ 8 ] );
267            dst -> setNoticeMail( atoi( row[ 9 ] ) );
268            dst -> setNoticeMailSince( atoi( row[ 10 ] ) );
269        }else{
270            mysql_free_result( result );
271            delete[] dst;
272            return RES_NO_SUCH_USER;
273        }
274        mysql_free_result( result );
275        
276        *acc = dst;
277        return RES_OK;
278  }  }
279    
280  /**  /**
# Line 838  bool isValidSessionID( sessionid_t sid ) Line 921  bool isValidSessionID( sessionid_t sid )
921      }      }
922  }  }
923    
924  void freeResult( account_t* ptr ){ delete[] ptr; }  void freeResult( const account_t* ptr ){ delete[] ( account_t* )ptr; }
925    void freeResult( const group_t* ptr ){ delete[] ( group_t* )ptr; }
926  void freeResult( group_t* ptr ){ delete[] ptr; }  void freeResult( const session_t* ptr ){ delete[] ( session_t* )ptr; }
927    void freeResult( const int* ptr ){ delete[] ( int* )ptr; }
 void freeResult( const session_t* ptr ){ delete[] ptr; }  
   
 void freeResult( int* ptr ){ delete[] ptr; }  
928    
929  static string errstr;  static string errstr;
930  const char* getLastErrorString()  const char* getLastErrorString()

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.12

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26