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.85 by aga4096, Mon Mar 14 09:30:50 2005 UTC revision 1.86 by tani, Tue Mar 15 04:49:40 2005 UTC
# Line 1  Line 1 
1  /*  /*
2     * --------------------------------------------------------------------------  
3     * XooNiPs Xoops modules for Neuroinformatics Platforms                        
4     * Copyright (C) 2005 RIKEN, Japan. All rights reserved.                      
5     * http://sourceforge.jp/projects/xoonips/                                    
6     * --------------------------------------------------------------------------  
7     * This program is free software; you can redistribute it and/or              
8     * modify it under the terms of the GNU General Public License                
9     * as published by the Free Software Foundation; either version 2              
10     * of the License, or (at your option) any later version.                      
11     *                                                                            
12     * This program is distributed in the hope that it will be useful,            
13     * but WITHOUT ANY WARRANTY; without even the implied warranty of              
14     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              
15     * GNU General Public License for more details.                                
16     *                                                                            
17     * You should have received a copy of the GNU General Public License          
18     * along with this program; if not, write to the Free Software                
19     * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
20     * --------------------------------------------------------------------------  
21     *
22   *   *
23   * $Revision$   * $Revision$
24   * $Log$   * $Log$
25     * Revision 1.86  2005/03/15 04:49:40  tani
26     * ライセンス文を追加.
27     *
28   * Revision 1.85  2005/03/14 09:30:50  aga4096   * Revision 1.85  2005/03/14 09:30:50  aga4096
29   * ・getItemCountByIndexで、作成者・グループ管理者は未承認アイテムをカウントするよう修正.   * ・getItemCountByIndexで、作成者・グループ管理者は未承認アイテムをカウントするよう修正.
30   *   *
# Line 391  static result_t getXoopsModuleConfigValu Line 414  static result_t getXoopsModuleConfigValu
414  static void setLastErrorString( const char* str );  static void setLastErrorString( const char* str );
415  static result_t checkTitleConflict( sessionid_t sid, indexid_t parentIndexID, const char *title, bool *conflict );  static result_t checkTitleConflict( sessionid_t sid, indexid_t parentIndexID, const char *title, bool *conflict );
416    
417  void syslog_printf( char* format, ... )  static void syslog_printf( char* format, ... )
418  {  {
419  #ifdef USE_SYSLOG  #ifdef USE_SYSLOG
420      va_list ap;      va_list ap;
# Line 916  string criteria2str( criteria* cri ) Line 939  string criteria2str( criteria* cri )
939    
940  /**  /**
941   *   *
942   * データベースの初期化   * データベースと接続する
943   *   *
944   * @param dsn DSN   * @param dsn ODBCのDSN
945   * @param user データベースにアクセスするユーザ名   * @param user データベースにアクセスするユーザ名
946   * @param password 上記ユーザのパスワード   * @param password 上記ユーザのパスワード
947   * @param dbname ダミー   * @param reserve 未使用(NULL)
948   * @param prefix XOOPSデータベーステーブルのPREFIX   * @param prefix XOOPSデータベーステーブルのPREFIX
949   * @param dbtype DBTYPE_MYSQL or DBTYPE_SQLITE   * @param type DBTYPE_MYSQL or DBTYPE_SQLITE
950   * @return RES_OK   * @return RES_OK
951   * @return RES_DB_INITIALIZE_ERROR   * @return RES_DB_INITIALIZE_ERROR
952   * @return RES_DB_CONNECT_ERROR   * @return RES_DB_CONNECT_ERROR
953   * @refer result_t   * @see result_t
954   */   */
955  result_t initializeDB( const char* dsn, const char* user, const char* password, const char* dbname, const char* prefix, dbtype_t type )  result_t initializeDB( const char* dsn, const char* user, const char* password, const char* reserve, const char* prefix, dbtype_t type )
956  {  {
957      SQLRETURN sqlcode;      SQLRETURN sqlcode;
958    
# Line 960  result_t initializeDB( const char* dsn, Line 983  result_t initializeDB( const char* dsn,
983          return RES_DB_INITIALIZE_ERROR;          return RES_DB_INITIALIZE_ERROR;
984      }      }
985      //ログインに5秒以上要したらタイムアウトする設定      //ログインに5秒以上要したらタイムアウトする設定
986      SQLSetConnectAttr(hdbc, SQL_LOGIN_TIMEOUT, (SQLPOINTER *)5, 0);      //SQLSetConnectAttr(hdbc, SQL_LOGIN_TIMEOUT, (SQLPOINTER *)5, 0);
987            
988      if ( ( sqlcode = SQLConnect( hdbc, (SQLCHAR*)dsn, strlen( dsn ), (SQLCHAR*)user, strlen( user ), (SQLCHAR*)password, strlen( password ) ) ) != SQL_SUCCESS ){      if ( ( sqlcode = SQLConnect( hdbc, (SQLCHAR*)dsn, strlen( dsn ), (SQLCHAR*)user, strlen( user ), (SQLCHAR*)password, strlen( password ) ) ) != SQL_SUCCESS ){
989          string s( "SQLConnect in initializeDB " );          string s( "SQLConnect in initializeDB " );
# Line 975  result_t initializeDB( const char* dsn, Line 998  result_t initializeDB( const char* dsn,
998    
999  /**  /**
1000   *   *
1001   * DB接続があれば、それを開放する。   * 現在DBと接続中であれば、それを解放する。
1002   *   *
1003   * @param なし   * @param なし
1004   * @return RES_OK   * @return RES_OK
# Line 1047  bool isActivated( sessionid_t sid, useri Line 1070  bool isActivated( sessionid_t sid, useri
1070   * @param uid 変更したいユーザのUID   * @param uid 変更したいユーザのUID
1071   * @param activate 承認(true) / 未承認(false)の指定   * @param activate 承認(true) / 未承認(false)の指定
1072   * @return RES_OK   * @return RES_OK
1073     * @return RES_ERROR
1074   * @return RES_DB_QUERY_ERROR   * @return RES_DB_QUERY_ERROR
1075   * @return RES_NO_SUCH_USER   * @return RES_NO_SUCH_USER
1076     * @return RES_NO_SUCH_SESSION
1077     * @return RES_DB_NOT_INITIALIZED;
1078   */   */
1079  result_t activate( sessionid_t sid, userid_t uid, bool activate )  result_t activate( sessionid_t sid, userid_t uid, bool activate )
1080  {  {
# Line 1097  result_t activate( sessionid_t sid, user Line 1123  result_t activate( sessionid_t sid, user
1123   * アカウント数を取得する.   * アカウント数を取得する.
1124   *   *
1125   * @param sid セッションID   * @param sid セッションID
1126   * @return アカウント数   * @return アカウント数(失敗時は0)
1127   *   *
1128   */   */
1129  int getAccountCount( sessionid_t sid )  int getAccountCount( sessionid_t sid )
# Line 1257  result_t deleteAccount( sessionid_t sid, Line 1283  result_t deleteAccount( sessionid_t sid,
1283   * @return RES_NO_SUCH_USER   * @return RES_NO_SUCH_USER
1284   * @return RES_NO_SUCH_SESSION   * @return RES_NO_SUCH_SESSION
1285   * @return RES_DB_QUERY_ERROR   * @return RES_DB_QUERY_ERROR
1286     * @see freeAccount
1287   *   *
1288   */   */
1289  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 1282  result_t getAccount( sessionid_t sid, us Line 1309  result_t getAccount( sessionid_t sid, us
1309   * @return RES_DB_NOT_INITIALIZED   * @return RES_DB_NOT_INITIALIZED
1310   * @return RES_NO_SUCH_SESSION   * @return RES_NO_SUCH_SESSION
1311   * @return RES_DB_QUERY_ERROR   * @return RES_DB_QUERY_ERROR
1312     * @see freeAccount
1313   *   *
1314   */   */
1315  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 1401  result_t getAccounts( sessionid_t sid, c Line 1429  result_t getAccounts( sessionid_t sid, c
1429    
1430  /**  /**
1431   *   *
1432   * アカウント登録.   * アカウント登録
1433   *   *
1434   * ユーザ情報をデータベースに登録します.   * ユーザ情報をデータベースに登録します.
1435   * 登録したユーザ情報に対応するユーザIDをuidに格納します.   * 登録したユーザ情報に対応するユーザIDをuidに格納します.
# Line 1687  result_t insertAccount( sessionid_t sid, Line 1715  result_t insertAccount( sessionid_t sid,
1715  /**  /**
1716   *   *
1717   * アカウント情報を変更する.   * アカウント情報を変更する.
1718   *   * accountのuidに,変更対象ユーザのIDをセットしてください.
1719   *   *
1720   * @param sid セッションID   * @param sid セッションID
1721   * @param account 変更したいアカウント情報   * @param account 変更したいアカウント情報
# Line 1955  result_t updateAccount( sessionid_t sid, Line 1983  result_t updateAccount( sessionid_t sid,
1983   * @return RES_DB_NOT_INITIALIZED   * @return RES_DB_NOT_INITIALIZED
1984   * @return RES_NO_SUCH_SESSION   * @return RES_NO_SUCH_SESSION
1985   * @return RES_DB_QUERY_ERROR   * @return RES_DB_QUERY_ERROR
1986   *   * @see freeUID
1987   */   */
1988  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 )
1989  {  {
# Line 2073  int getGroupCount( sessionid_t sid ) Line 2101  int getGroupCount( sessionid_t sid )
2101   * @return RES_NO_SUCH_USER   * @return RES_NO_SUCH_USER
2102   * @return RES_DB_QUERY_ERROR   * @return RES_DB_QUERY_ERROR
2103   * @return RES_OK   * @return RES_OK
2104   *   * @see freeGID
2105   */   */
2106  result_t getGroupsByUid( sessionid_t sid, userid_t uid, criteria_t* cri, groupid_t** gids, int* gidsLen )  result_t getGroupsByUid( sessionid_t sid, userid_t uid, criteria_t* cri, groupid_t** gids, int* gidsLen )
2107  {  {
# Line 2159  result_t getGroupsByUid( sessionid_t sid Line 2187  result_t getGroupsByUid( sessionid_t sid
2187   * @param uid ユーザのUID   * @param uid ユーザのUID
2188   * @return true 管理権限あり   * @return true 管理権限あり
2189   * @return false 管理権限なし,または不明   * @return false 管理権限なし,または不明
2190   *   * @see
2191   */   */
2192  bool isGroupAdmin( sessionid_t sid, groupid_t gid, userid_t uid )  bool isGroupAdmin( sessionid_t sid, groupid_t gid, userid_t uid )
2193  {  {
# Line 3006  bool isModerator( sessionid_t sid, useri Line 3034  bool isModerator( sessionid_t sid, useri
3034   * @param uid IDを代入したい変数のポインタ   * @param uid IDを代入したい変数のポインタ
3035   * @return RES_ERROR   * @return RES_ERROR
3036   * @return RES_OK   * @return RES_OK
3037   * @refer result_t   * @see result_t
3038   *   *
3039   */   */
3040  result_t getUid( const char* uname, userid_t* uid )  result_t getUid( const char* uname, userid_t* uid )
# Line 3209  void logoutUser( sessionid_t sid ) Line 3237  void logoutUser( sessionid_t sid )
3237    
3238  /**  /**
3239   *   *
3240   * セッションの作成.<br>   * セッションの作成.
3241   * XOOPSのsessionテーブルに記録されたsess_idと引数sess_idが等しく、   * XOOPSのsessionテーブルに記録されたsess_idと引数sess_idが等しく、
3242   * uidがPlatformユーザとしてactivateされていればsessionid_tを作成する。   * uidがPlatformユーザとしてactivateされていればsessionid_tを作成する。
3243   * データベースにセッションと引数の情報を記録する   * データベースにセッションと引数の情報を記録する
# Line 3266  result_t createSession( const char* sess Line 3294  result_t createSession( const char* sess
3294    
3295  /**  /**
3296   *   *
3297   * セッションの詳細をsession_tで取得する.<br>   * セッションの詳細をsession_tで取得する.
3298   *   *
3299   * @param sid セッションID   * @param sid セッションID
3300   * @param ppsession sessionid_t*を受け取るためのポインタ。   * @param ppsession sessionid_t*を受け取るためのポインタ。
# Line 3491  result_t insertItem( sessionid_t sid, co Line 3519  result_t insertItem( sessionid_t sid, co
3519   * アイテム情報取得.   * アイテム情報取得.
3520   * 取得したアイテムは,使用後freeItemで解放する.   * 取得したアイテムは,使用後freeItemで解放する.
3521   *   *
3522   * @refer freeItem   * @see freeItem
3523   * @param sid セッションID   * @param sid セッションID
3524   * @param iid 取得したいアイテムのID   * @param iid 取得したいアイテムのID
3525   * @param item 結果のアイテム情報を受け取る引数   * @param item 結果のアイテム情報を受け取る引数
# Line 3520  result_t getItem( sessionid_t sid, itemi Line 3548  result_t getItem( sessionid_t sid, itemi
3548   * アイテム情報取得.   * アイテム情報取得.
3549   * 取得したアイテムは,使用後freeItemで解放する.   * 取得したアイテムは,使用後freeItemで解放する.
3550   *   *
3551   * @refer freeItem   * @see freeItem
3552   * @param sid セッションID   * @param sid セッションID
3553   * @param iids 取得したいアイテムのIDの配列   * @param iids 取得したいアイテムのIDの配列
3554   * @param iidsLen iids配列の要素数   * @param iidsLen iids配列の要素数
# Line 3653  result_t getItems( sessionid_t sid, cons Line 3681  result_t getItems( sessionid_t sid, cons
3681    
3682  /**  /**
3683   *   *
3684   * Readアクセス可能なアイテムの数をかえす   * Readアクセス可能なアイテムの数をかえす.
3685   * 失敗したときは0をかえします.   * 失敗したときは0をかえします.
3686   *   *
3687   * @param sid セッションID   * @param sid セッションID
# Line 3710  unsigned int getItemCount( sessionid_t s Line 3738  unsigned int getItemCount( sessionid_t s
3738   * アイテムIDの一覧取得.   * アイテムIDの一覧取得.
3739   * アクセス可能なアイテムのIDを返す.   * アクセス可能なアイテムのIDを返す.
3740   *   *
3741   * @refer freeItemID   * @see freeItemID
3742   * @param sid セッションID   * @param sid セッションID
3743   * @param cri 結果の範囲指定,ソート条件指定   * @param cri 結果の範囲指定,ソート条件指定
3744   * @param iids 取得結果の配列のポインタを書き込む引数   * @param iids 取得結果の配列のポインタを書き込む引数
# Line 4122  result_t deleteItem( sessionid_t sid, it Line 4150  result_t deleteItem( sessionid_t sid, it
4150    
4151  /**  /**
4152   *   *
4153   * 個人の非公開アイテムのIDを取得します.   * 個人の非公開アイテムのIDを取得します.
4154   * 公開インデックスに登録承認されたものは結果に含みません   * 公開インデックスに登録承認されたものは結果に含みません
4155   *   *
4156   * @param sid セッションID   * @param sid セッションID
# Line 4324  result_t getGroupItemID( sessionid_t sid Line 4352  result_t getGroupItemID( sessionid_t sid
4352    
4353  /**  /**
4354   *   *
4355   * インデックスに登録されたアイテムのIDを取得します.   * インデックスに登録されたアイテムのIDを取得します.
4356   * 権限が無くて読めないものは結果に含みません.   * 権限が無くて読めないものは結果に含みません.
4357   * 未承認で読めないものも結果に含みません.   * 未承認で読めないものも結果に含みません.
4358   *   *
# Line 4495  result_t getItemIDByBinderID( sessionid_ Line 4523  result_t getItemIDByBinderID( sessionid_
4523  /**  /**
4524   *   *
4525   * アイテムの承認状態を取得します.   * アイテムの承認状態を取得します.
4526   * @refer certify_t   * @see certify_t
4527   * @param sid セッションID   * @param sid セッションID
4528   * @param xid 対象アイテムが登録されているインデックスのID   * @param xid 対象アイテムが登録されているインデックスのID
4529   * @param iid 対象アイテムのID   * @param iid 対象アイテムのID
# Line 4521  result_t getCertifyState( sessionid_t si Line 4549  result_t getCertifyState( sessionid_t si
4549  /**  /**
4550   *   *
4551   * アイテムの承認状態を変更します.   * アイテムの承認状態を変更します.
4552   * @refer certify_t   * @see certify_t
4553   * @param sid セッションID   * @param sid セッションID
4554   * @param xid 変更対象アイテムが登録されているインデックスのID   * @param xid 変更対象アイテムが登録されているインデックスのID
4555   * @param iid 変更対象アイテムのID   * @param iid 変更対象アイテムのID
# Line 4545  result_t setCertifyState( sessionid_t si Line 4573  result_t setCertifyState( sessionid_t si
4573  /**  /**
4574   *   *
4575   * アイテムの承認状態を変更する権限の有無を調べます.   * アイテムの承認状態を変更する権限の有無を調べます.
4576   * @refer certify_t   * @see certify_t
4577   * @param sid セッションID   * @param sid セッションID
4578   * @param xid 変更対象アイテムが登録されているインデックスのID   * @param xid 変更対象アイテムが登録されているインデックスのID
4579   * @param iid 変更対象アイテムのID   * @param iid 変更対象アイテムのID
# Line 4588  bool getCertifyPermission( sessionid_t s Line 4616  bool getCertifyPermission( sessionid_t s
4616      return count > 0;      return count > 0;
4617  }  }
4618    
 result_t getOverlappedItems( sessionid_t sid, indexid_t xid, item_t* item, itemid_t** iids, int* iidsLen ){ return RES_ERROR; }  
   
4619  /**  /**
4620   *   *
4621   * インデックスにアイテムを追加する.   * インデックスにアイテムを追加する.
# Line 4756  result_t unregisterBinderItem( sessionid Line 4782  result_t unregisterBinderItem( sessionid
4782   *   *
4783   * アイテムへのアクセス権限をチェックする   * アイテムへのアクセス権限をチェックする
4784   *   *
4785   * @refer itemop_t   * @see itemop_t
4786   * @param sid セッションID   * @param sid セッションID
4787   * @param iid チェック対象となるアイテムのID   * @param iid チェック対象となるアイテムのID
4788   * @param op アクセスの種類   * @param op アクセスの種類
# Line 4819  bool getItemPermission( sessionid_t sid, Line 4845  bool getItemPermission( sessionid_t sid,
4845   *   *
4846   * インデックスへのアクセス権限をチェックする   * インデックスへのアクセス権限をチェックする
4847   *   *
4848   * @refer indexop_t   * @see indexop_t
4849   * @param sid セッションID   * @param sid セッションID
4850   * @param xid チェック対象となるインデックスのID   * @param xid チェック対象となるインデックスのID
4851   * @param op アクセスの種類   * @param op アクセスの種類
# Line 5233  bool isIndexWritable( sessionid_t sid, Line 5259  bool isIndexWritable( sessionid_t sid,
5259    
5260    
5261    
5262  /** parentXIDの直下のインデックスのsort_numberの最大値+1 を求める。parentXIDの値が有効かどうかは判断しない。  /** parentXIDの直下のインデックスのsort_numberの最大値+1 を求める. parentXIDの値が有効かどうかは判断しない。
5263    * ROOT直下はsort_numberの埋め方が異なるので、この関数では処理できない。    * ROOT直下はsort_numberの埋め方が異なるので、この関数では処理できない。
5264    * @param parentXID  親index_id    * @param parentXID  親index_id
5265    * @param sortNumber max(sort_number)+1    * @param sortNumber max(sort_number)+1
# Line 5445  result_t insertIndex( sessionid_t sid, i Line 5471  result_t insertIndex( sessionid_t sid, i
5471      return result;      return result;
5472  }  }
5473    
5474  /** 内部で使用。xidの子孫(xidを含む)のインデックスのIDを全て取得する。delete[] *descndexIDが必要。  /** 内部で使用。xidの子孫(xidを含む)のインデックスのIDを全て取得する.
5475    * @param xid 対象   * delete[] *descndexIDが必要。
5476    * @param descXID 子孫を受け取る配列   * @param xid 対象
5477    * @param descXIDLen descXIDの配列長   * @param descXID 子孫を受け取る配列
5478    */   * @param descXIDLen descXIDの配列長
5479     */
5480  result_t getDescendantIndexID( int xid, indexid_t **descXID, int *descXIDLen ){  result_t getDescendantIndexID( int xid, indexid_t **descXID, int *descXIDLen ){
5481      // todo      // todo
5482      if( hdbc == NULL ) return RES_DB_NOT_INITIALIZED;      if( hdbc == NULL ) return RES_DB_NOT_INITIALIZED;
# Line 6172  result_t setConfigValue( const char* key Line 6199  result_t setConfigValue( const char* key
6199    
6200  /**  /**
6201   *   *
6202   * 設定名keyに対応する値をvauleに取得する.   * 設定名keyに対応する値をvauleに取得する.
6203   * valueの使用後はfreeStringで解放する.   * valueの使用後はfreeStringで解放する.
6204   * @param key 設定キー名   * @param key 設定キー名
6205   * @param value 設定値を受け取るポインタ   * @param value 設定値を受け取るポインタ
# Line 6971  result_t getIndexIDByItemID( sessionid_t Line 6998  result_t getIndexIDByItemID( sessionid_t
6998    
6999  /**  /**
7000   *   *
7001   * 指定ユーザの作成アイテムで,一般公開されているアイテムのIDを取得します.   * 指定ユーザの作成アイテムで,一般公開されているアイテムのIDを取得します.
7002   * 一般ユーザは自分以外のアイテムを取得できない.   * 一般ユーザは自分以外のアイテムを取得できない.
7003   *   *
7004   * @param sid セッションID   * @param sid セッションID
# Line 7153  result_t getItemCountGroupByIndex( sessi Line 7180  result_t getItemCountGroupByIndex( sessi
7180  }  }
7181    
7182    
7183    extern "C" {int zip_main(int, char**);}
7184  /**  /**
7185   *   *
7186     * zipファイルを作成します.
7187   *   *
7188     * @param zippath 作成するzipファイルのパス
7189     * @param files zipファイルに入れたいファイル名の配列
7190     * @param filesLen filesに指定したファイルの数
7191     * @return 0 成功
7192     * @return 0以外 失敗
7193   *   *
7194   */   */
 extern "C" {int zip_main(int, char**);}  
7195  result_t zipCreate( char* zippath, char** files, int filesLen )  result_t zipCreate( char* zippath, char** files, int filesLen )
7196  {  {
7197      char** argv = new char*[filesLen+3];      char** argv = new char*[filesLen+3];

Legend:
Removed from v.1.85  
changed lines
  Added in v.1.86

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