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.19 by youi, Tue Nov 30 06:40:11 2004 UTC revision 1.20 by youi, Wed Dec 1 04:37:04 2004 UTC
# Line 2  Line 2 
2   *   *
3   * $Revision$   * $Revision$
4   * $Log$   * $Log$
5     * Revision 1.20  2004/12/01 04:37:04  youi
6     * freeResult: unsigned int* を int* へ修正.
7     * コメント部に関数の説明を追記.
8     *
9   * Revision 1.19  2004/11/30 06:40:11  youi   * Revision 1.19  2004/11/30 06:40:11  youi
10   * 関数を追加(gidExists, uidExists)   * 関数を追加(gidExists, uidExists)
11   * getGroupCountを定義.   * getGroupCountを定義.
# Line 155  static bool gidExists( groupid_t gid ) Line 159  static bool gidExists( groupid_t gid )
159            
160  /**  /**
161   *   *
162   * uidの存在をチェック.   * Platformユーザ情報にuidが存在するかをチェック.
163   * DBのアクセス失敗などもfalseとなる.   * DBのアクセス失敗などもfalseとなる.
164   *   *
165   * @param uid チェックしたいUID   * @param uid チェックしたいUID
# Line 350  int getAccountCount( sessionid_t sid ) Line 354  int getAccountCount( sessionid_t sid )
354   * アカウント削除   * アカウント削除
355   *   *
356   * @param   * @param
357   * @return RES_OK | RES_NO_SUCH_SESSION | RES_DB_QUERY_ERROR   * @return RES_OK
358     * @return RES_NO_SUCH_SESSION
359     * @return RES_DB_QUERY_ERROR
360   *   *
361   */   */
362  result_t deleteAccount( sessionid_t sid, userid_t uid )  result_t deleteAccount( sessionid_t sid, userid_t uid )
# Line 383  result_t deleteAccount( sessionid_t sid, Line 389  result_t deleteAccount( sessionid_t sid,
389   * @param sid セッションID   * @param sid セッションID
390   * @param uid 取得したいユーザのUID   * @param uid 取得したいユーザのUID
391   * @param acc 取得したアカウント情報(account_t)のポインタを書き込む引数   * @param acc 取得したアカウント情報(account_t)のポインタを書き込む引数
392   * @return RES_OK | RES_NO_SUCH_USER | RES_NO_SUCH_SESSION | RES_DB_QUERY_ERROR | RES_ERROR   * @return RES_OK
393     * @return RES_NO_SUCH_USER
394     * @return RES_NO_SUCH_SESSION
395     * @return RES_DB_QUERY_ERROR
396     * @return RES_ERROR
397   *   *
398   */   */
399  result_t getAccount( sessionid_t sid, userid_t uid, const account_t** acc )  result_t getAccount( sessionid_t sid, userid_t uid, const account_t** acc )
# Line 405  result_t getAccount( sessionid_t sid, us Line 415  result_t getAccount( sessionid_t sid, us
415   * @param cri 結果の範囲指定,ソート条件指定   * @param cri 結果の範囲指定,ソート条件指定
416   * @param accounts 検索結果の配列のポインタを書き込む引数   * @param accounts 検索結果の配列のポインタを書き込む引数
417   * @param accountsLen 検索結果の数(配列*accountsの要素数)   * @param accountsLen 検索結果の数(配列*accountsの要素数)
418   * @return RES_OK| RES_DB_NOT_INITIALIZED| RES_NO_SUCH_SESSION | RES_DB_QUERY_ERROR   * @return RES_OK| RES_DB_NOT_INITIALIZED| RES_NO_SUCH_SESSION
419     * @return RES_DB_QUERY_ERROR
420   *   *
421   */   */
422  result_t getAccounts( sessionid_t sid, const userid_t* uids, int uidsLen, criteria_t* cri, const account_t** accounts, int* accountsLen )  result_t getAccounts( sessionid_t sid, const userid_t* uids, int uidsLen, criteria_t* cri, const account_t** accounts, int* accountsLen )
# Line 489  result_t getAccounts( sessionid_t sid, c Line 500  result_t getAccounts( sessionid_t sid, c
500   *   *
501   * @param sid セッション   * @param sid セッション
502   * @param account 登録するアカウント情報   * @param account 登録するアカウント情報
503   * @return RES_OK | RES_NO_SUCH_SESSION | RES_DB_QUERY_ERROR | RES_ERROR   * @return RES_OK
504     * @return RES_NO_SUCH_SESSION
505     * @return RES_DB_QUERY_ERROR
506     * @return RES_ERROR
507   *   *
508   */   */
509  result_t insertAccount( sessionid_t sid, const account_t* account )  result_t insertAccount( sessionid_t sid, const account_t* account )
# Line 593  result_t insertAccount( sessionid_t sid, Line 607  result_t insertAccount( sessionid_t sid,
607    
608  /**  /**
609   *   *
610   * アカウント変更   * アカウント情報を変更する.
611   *   *
612   * @param   *
613   * @return RES_OK | RES_NO_SUCH_SESSION | RES_DB_QUERY_ERROR   * @param sid セッションID
614     * @param account 変更したいアカウント情報
615     * @return RES_OK
616     * @return RES_NO_SUCH_SESSION
617     * @return RES_DB_QUERY_ERROR
618     * @return RES_NO_SUCH_USER
619   *   *
620   */   */
621  result_t updateAccount( sessionid_t sid, const account_t* account )  result_t updateAccount( sessionid_t sid, const account_t* account )
622  {  {
623      if( mysql == NULL ) return RES_DB_NOT_INITIALIZED;      if( mysql == NULL ) return RES_DB_NOT_INITIALIZED;
624        if( account == NULL ) return RES_ERROR;
625      if( !isValidSessionID( sid ) ) return RES_NO_SUCH_SESSION;      if( !isValidSessionID( sid ) ) return RES_NO_SUCH_SESSION;
626        if( !uidExists( account -> getUID( ) ) ) return RES_NO_SUCH_USER;
627            
628      string sql;      string sql;
629      string tmp;      string tmp;
# Line 688  result_t updateAccount( sessionid_t sid, Line 709  result_t updateAccount( sessionid_t sid,
709   * @param cri 結果の範囲指定,ソート条件指定   * @param cri 結果の範囲指定,ソート条件指定
710   * @param uids ユーザのUIDの配列   * @param uids ユーザのUIDの配列
711   * @param uidsLen uids配列の要素数   * @param uidsLen uids配列の要素数
712   * @return RES_OK| RES_DB_NOT_INITIALIZED| RES_NO_SUCH_SESSION | RES_DB_QUERY_ERROR| RES_ERROR   * @return RES_OK| RES_DB_NOT_INITIALIZED| RES_NO_SUCH_SESSION
713     * @return RES_DB_QUERY_ERROR| RES_ERROR
714   *   *
715   */   */
716  result_t dumpUids( sessionid_t sid, criteria_t* cri, userid_t** uids, int* uidsLen )  result_t dumpUids( sessionid_t sid, criteria_t* cri, userid_t** uids, int* uidsLen )
# Line 942  result_t dumpGids( sessionid_t sid, crit Line 964  result_t dumpGids( sessionid_t sid, crit
964   * @param cri 結果の範囲指定,ソート条件指定   * @param cri 結果の範囲指定,ソート条件指定
965   * @param uids 管理者のUIDの配列を受け取るポインタ   * @param uids 管理者のUIDの配列を受け取るポインタ
966   * @param uidsLen uids配列の要素数   * @param uidsLen uids配列の要素数
967   * @return RES_OK | RES_DB_NOT_INITIALIZED | RES_NO_SUCH_SESSION | RES_DB_QUERY_ERROR | RES_ERROR   * @return RES_OK
968     * @return RES_DB_NOT_INITIALIZED
969     * @return RES_NO_SUCH_SESSION
970     * @return RES_DB_QUERY_ERROR
971     * @return RES_ERROR
972   *   *
973   */   */
974  result_t dumpGroupAdmins( sessionid_t sid, groupid_t gid, criteria_t* cri, userid_t** uids, int* uidsLen )  result_t dumpGroupAdmins( sessionid_t sid, groupid_t gid, criteria_t* cri, userid_t** uids, int* uidsLen )
# Line 1014  result_t deleteMember( sessionid_t sid, Line 1040  result_t deleteMember( sessionid_t sid,
1040   * @param gid 所属先グループのID   * @param gid 所属先グループのID
1041   * @param uid 所属させるユーザのID   * @param uid 所属させるユーザのID
1042   * @param admin 管理者権限を与えるならtrue   * @param admin 管理者権限を与えるならtrue
1043   * @return RES_OK | RES_DB_NOT_INITIALIZED | RES_NO_SUCH_SESSION | RES_DB_QUERY_ERROR | RES_ERROR   * @return RES_OK
1044     * @return RES_DB_NOT_INITIALIZED
1045     * @return RES_NO_SUCH_SESSION
1046     * @return RES_DB_QUERY_ERROR
1047     * @return RES_ERROR
1048   *   *
1049   */   */
1050  result_t insertMember( sessionid_t sid, groupid_t gid, userid_t uid, bool admin )  result_t insertMember( sessionid_t sid, groupid_t gid, userid_t uid, bool admin )
# Line 1105  result_t getMembers( sessionid_t sid, gr Line 1135  result_t getMembers( sessionid_t sid, gr
1135   * グループの削除   * グループの削除
1136   *   *
1137   * @param   * @param
1138   * @return   * @return RES_OK
1139     * @return RES_DB_QUERY_ERROR
1140     * @return RES_NO_SUCH_SESSION
1141     * @return RES_DB_NOT_INITIALIZED
1142   *   *
1143   */   */
1144  result_t deleteGroup( sessionid_t sid, groupid_t gid )  result_t deleteGroup( sessionid_t sid, groupid_t gid )
# Line 1128  result_t deleteGroup( sessionid_t sid, g Line 1161  result_t deleteGroup( sessionid_t sid, g
1161   *   *
1162   * グループの登録   * グループの登録
1163   *   *
1164   * @param   * @param sid セッションID
1165   * @return   * @param group 登録したいグループの情報
1166     * @return RES_OK
1167     * @return RES_DB_NOT_INITIALIZED
1168     * @return RES_NO_SUCH_SESSION
1169     * @return RES_DB_QUERY_ERROR
1170   *   *
1171   */   */
1172  result_t insertGroup( sessionid_t sid, const group_t* group )  result_t insertGroup( sessionid_t sid, const group_t* group )
# Line 1151  result_t insertGroup( sessionid_t sid, c Line 1188  result_t insertGroup( sessionid_t sid, c
1188    
1189  /**  /**
1190   *   *
1191   * グループの変更   * グループ情報を変更する
1192   *   *
1193   * @param   * @param sid セッションID
1194   * @return   * @param group 新しいグループ情報
1195     * @return RES_OK
1196     * @return RES_ERROR
1197     * @return RES_DB_NOT_INITIALIZED
1198     * @return RES_NO_SUCH_SESSION
1199     * @return RES_NO_SUCH_GROUP
1200     * @return RES_DB_QUERY_ERROR
1201   *   *
1202   */   */
1203  result_t updateGroup( sessionid_t sid, const group_t* group )  result_t updateGroup( sessionid_t sid, const group_t* group )
1204  {  {
1205      if( mysql == NULL ) return RES_DB_NOT_INITIALIZED;      if( mysql == NULL ) return RES_DB_NOT_INITIALIZED;
1206        if( group == NULL ) return RES_ERROR;
1207      if( !isValidSessionID( sid ) ) return RES_NO_SUCH_SESSION;      if( !isValidSessionID( sid ) ) return RES_NO_SUCH_SESSION;
1208        if( !gidExists( group -> getGID( ) ) ) return RES_NO_SUCH_GROUP;
1209            
1210      string sql;      string sql;
1211      sql = "UPDATE " + dbprefix + "_vpaccount_groups SET ";      sql = "UPDATE " + dbprefix + "_vpaccount_groups SET ";
# Line 1179  result_t updateGroup( sessionid_t sid, c Line 1224  result_t updateGroup( sessionid_t sid, c
1224   *   *
1225   * グループ情報取得   * グループ情報取得
1226   *   *
1227   * @param   * @param sid セッションID
1228   * @return   * @param gid 取得したいグループのGID
1229     * @param group 取得したグループ情報のアドレスを書き込むポインタ
1230     * @return RES_OK
1231     * @return RES_DB_NOT_INITIALIZED
1232     * @return RES_NO_SUCH_SESSION
1233     * @return RES_NO_SUCH_GROUP
1234     * @return RES_DB_QUERY_ERROR
1235   *   *
1236   */   */
1237  result_t getGroup( sessionid_t sid, groupid_t gid, const group_t** group )  result_t getGroup( sessionid_t sid, groupid_t gid, const group_t** group )
# Line 1194  result_t getGroup( sessionid_t sid, grou Line 1245  result_t getGroup( sessionid_t sid, grou
1245    
1246  /**  /**
1247   *   *
1248   * グループ情報取得   * 複数のグループ情報を一度に取得する.
1249   *   *
1250   * @param   * @param sid セッションID
1251   * @return   * @param gids 取得したいグループのGIDの配列
1252     * @param gidsLen gids配列の要素数
1253     * @param cri 結果の取得範囲,ソート条件を指定
1254     * @param groups 取得結果のグループ情報の配列のアドレスを書き込むポインタ
1255     * @param groupsLen 取得結果の配列の要素数
1256     * @return RES_OK
1257     * @return RES_DB_NOT_INITIALIZED
1258     * @return RES_NO_SUCH_SESSION
1259     * @return RES_DB_QUERY_ERROR
1260   *   *
1261   */   */
1262  result_t getGroups( sessionid_t sid, groupid_t* gids, int gidsLen, criteria_t* cri, const group_t** groups, int* groupsLen )  result_t getGroups( sessionid_t sid, groupid_t* gids, int gidsLen, criteria_t* cri, const group_t** groups, int* groupsLen )
# Line 1302  bool isModerator( sessionid_t sid, useri Line 1361  bool isModerator( sessionid_t sid, useri
1361   *   *
1362   * @param uname IDを取得したいユーザー名   * @param uname IDを取得したいユーザー名
1363   * @param uid IDを代入したい変数のポインタ   * @param uid IDを代入したい変数のポインタ
1364   * @return RES_ERROR | RES_OK   * @return RES_ERROR
1365     * @return RES_OK
1366   * @refer result_t   * @refer result_t
1367   *   *
1368   */   */
# Line 1548  bool isValidSessionID( sessionid_t sid ) Line 1608  bool isValidSessionID( sessionid_t sid )
1608  void freeResult( const account_t* ptr ){ delete[] ( account_t* )ptr; }  void freeResult( const account_t* ptr ){ delete[] ( account_t* )ptr; }
1609  void freeResult( const group_t* ptr ){ delete[] ( group_t* )ptr; }  void freeResult( const group_t* ptr ){ delete[] ( group_t* )ptr; }
1610  void freeResult( const session_t* ptr ){ delete[] ( session_t* )ptr; }  void freeResult( const session_t* ptr ){ delete[] ( session_t* )ptr; }
1611  void freeResult( const unsigned int* ptr ){ delete[] ( unsigned int* )ptr; }  void freeResult( const int* ptr ){ delete[] ( int* )ptr; }
1612    
1613  static string errstr;  static string errstr;
1614  const char* getLastErrorString()  const char* getLastErrorString()

Legend:
Removed from v.1.19  
changed lines
  Added in v.1.20

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