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.88 by orrisroot, Thu Mar 17 16:02:40 2005 UTC revision 1.89 by aga4096, Wed May 18 10:00:17 2005 UTC
# Line 22  Line 22 
22   *   *
23   * $Revision$   * $Revision$
24   * $Log$   * $Log$
25     * Revision 1.89  2005/05/18 10:00:17  aga4096
26     * ・モジュール統合に対応.
27     *
28   * Revision 1.88  2005/03/17 16:02:40  orrisroot   * Revision 1.88  2005/03/17 16:02:40  orrisroot
29   * UNIX において SQLLEN 型が宣言されていない場合に対処するため,configure   * UNIX において SQLLEN 型が宣言されていない場合に対処するため,configure
30   * スクリプトで出力された config.h をインクルードするように変更.   * スクリプトで出力された config.h をインクルードするように変更.
# Line 198  Line 201 
201   * getItems: getItemPermissionを使った読み込み権限チェック.   * getItems: getItemPermissionを使った読み込み権限チェック.
202   *   *
203   * Revision 1.43  2005/01/19 01:42:15  aga   * Revision 1.43  2005/01/19 01:42:15  aga
204   * ・x_xnpaccount_indexのgid,uidが0にならないよう修正.   * ・x_xoonips_indexのgid,uidが0にならないよう修正.
205   *   *
206   * Revision 1.42  2005/01/19 00:51:29  aga   * Revision 1.42  2005/01/19 00:51:29  aga
207   * ・insertIndexでx_xnpaccount_index.index_idがおかしいのを修正.   * ・insertIndexでx_xoonips_index.index_idがおかしいのを修正.
208   *   *
209   * Revision 1.41  2005/01/19 00:06:51  aga   * Revision 1.41  2005/01/19 00:06:51  aga
210   * ・updateIndexで、同じ名前の兄弟があるか名前が空であるならエラーにした.   * ・updateIndexで、同じ名前の兄弟があるか名前が空であるならエラーにした.
# Line 218  Line 221 
221   * freeGID, freeUID: 引数の型を修正.   * freeGID, freeUID: 引数の型を修正.
222   *   *
223   * Revision 1.38  2005/01/15 00:39:16  aga   * Revision 1.38  2005/01/15 00:39:16  aga
224   * ・x_xnpaccount_item_basicの構造を変更.   * ・x_xoonips_item_basicの構造を変更.
225   *   *
226   * Revision 1.37  2005/01/14 10:36:59  aga   * Revision 1.37  2005/01/14 10:36:59  aga
227   * ・index関係の処理を追加.   * ・index関係の処理を追加.
# Line 277  Line 280 
280   * ・開放忘れ修正.   * ・開放忘れ修正.
281   *   *
282   * Revision 1.23  2004/12/04 09:21:10  aga   * Revision 1.23  2004/12/04 09:21:10  aga
283   * ・xnp_config → xnpaccount_config.   * ・xnp_config → xoonips_config.
284   *   *
285   * Revision 1.22  2004/12/03 07:17:21  youi   * Revision 1.22  2004/12/03 07:17:21  youi
286   * isModeratorでアクセスするデータベーステーブル名を修正.   * isModeratorでアクセスするデータベーステーブル名を修正.
# Line 825  static result_t sessionID2UID( sessionid Line 828  static result_t sessionID2UID( sessionid
828          return RES_NO_SUCH_SESSION;          return RES_NO_SUCH_SESSION;
829      }      }
830      else {      else {
831          string sql = "SELECT uid FROM " + dbprefix + "_xnpaccount_session WHERE sid=" + unsignedIntToString(sid);          string sql = "SELECT uid FROM " + dbprefix + "_xoonips_session WHERE sid=" + unsignedIntToString(sid);
832          syslog_printf( "sql=%s", sql.c_str() );          syslog_printf( "sql=%s", sql.c_str() );
833          return queryGetUnsignedInt( "sessionID2UID", sql, uid );          return queryGetUnsignedInt( "sessionID2UID", sql, uid );
834      }      }
# Line 856  static bool gidExists( groupid_t gid ) Line 859  static bool gidExists( groupid_t gid )
859          return false;          return false;
860      }      }
861    
862      sql = "SELECT * FROM " + dbprefix + "_xnpaccount_groups ";      sql = "SELECT * FROM " + dbprefix + "_xoonips_groups ";
863      sql += "WHERE gid=" + string( unsignedIntToString( gid ) );      sql += "WHERE gid=" + string( unsignedIntToString( gid ) );
864      if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) != SQL_SUCCESS ){      if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) != SQL_SUCCESS ){
865          setLastErrorString( "SQLExecDirect in gidExists" );          setLastErrorString( "SQLExecDirect in gidExists" );
# Line 891  static bool uidExists( userid_t uid ) Line 894  static bool uidExists( userid_t uid )
894      string sql;      string sql;
895      SQLRETURN sqlcode;      SQLRETURN sqlcode;
896            
897      sql = "SELECT * FROM " + dbprefix + "_xnpaccount_users ";      sql = "SELECT * FROM " + dbprefix + "_xoonips_users ";
898      sql += "WHERE uid=" + string( unsignedIntToString( uid ) );      sql += "WHERE uid=" + string( unsignedIntToString( uid ) );
899      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
900          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){
# Line 1045  bool isActivated( sessionid_t sid, useri Line 1048  bool isActivated( sessionid_t sid, useri
1048      SQLRETURN sqlcode;      SQLRETURN sqlcode;
1049      SQLHANDLE hstmt = NULL;          SQLHANDLE hstmt = NULL;    
1050            
1051      sql = "SELECT * FROM " + dbprefix + "_xnpaccount_users ";      sql = "SELECT * FROM " + dbprefix + "_xoonips_users ";
1052      sql += "WHERE activate=1 and uid=" + string( unsignedIntToString( uid ) );      sql += "WHERE activate=1 and uid=" + string( unsignedIntToString( uid ) );
1053      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
1054          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){
# Line 1098  result_t activate( sessionid_t sid, user Line 1101  result_t activate( sessionid_t sid, user
1101      SQLRETURN sqlcode;      SQLRETURN sqlcode;
1102      result_t ret = RES_ERROR;      result_t ret = RES_ERROR;
1103            
1104      sql = "UPDATE " + dbprefix + "_xnpaccount_users ";      sql = "UPDATE " + dbprefix + "_xoonips_users ";
1105      sql += "SET activate=" + string( activate ? "1" : "0" );      sql += "SET activate=" + string( activate ? "1" : "0" );
1106      sql += " WHERE uid=" + string( unsignedIntToString( uid ) );      sql += " WHERE uid=" + string( unsignedIntToString( uid ) );
1107      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
# Line 1150  int getAccountCount( sessionid_t sid ) Line 1153  int getAccountCount( sessionid_t sid )
1153      SQLHANDLE hstmt = NULL;          SQLHANDLE hstmt = NULL;    
1154            
1155      //アカウント数を求める      //アカウント数を求める
1156      sql = "SELECT COUNT(*) FROM " + dbprefix + "_xnpaccount_users ";      sql = "SELECT COUNT(*) FROM " + dbprefix + "_xoonips_users ";
1157      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
1158          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){
1159              SQLUINTEGER count = 0;              SQLUINTEGER count = 0;
# Line 1207  result_t deleteAccount( sessionid_t sid, Line 1210  result_t deleteAccount( sessionid_t sid,
1210      /*      /*
1211        1. delete user from default platform group        1. delete user from default platform group
1212        2. delete user profile from xoops_users        2. delete user profile from xoops_users
1213        3. delete platform user from xnpaccount_users        3. delete platform user from xoonips_users
1214       */       */
1215            
1216      //1. delete user from platform groups      //1. delete user from platform groups
# Line 1249  result_t deleteAccount( sessionid_t sid, Line 1252  result_t deleteAccount( sessionid_t sid,
1252          ret1 = RES_ERROR;          ret1 = RES_ERROR;
1253      }      }
1254            
1255      //3. delete platform user from xnpaccount_users      //3. delete platform user from xoonips_users
1256      sql = "DELETE FROM " + dbprefix + "_xnpaccount_users ";      sql = "DELETE FROM " + dbprefix + "_xoonips_users ";
1257      sql += "WHERE uid = " + string( unsignedIntToString( uid ) );      sql += "WHERE uid = " + string( unsignedIntToString( uid ) );
1258      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
1259          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){
# Line 1344  result_t getAccounts( sessionid_t sid, c Line 1347  result_t getAccounts( sessionid_t sid, c
1347      account_t* dst = new account_t[ uidsLen ];      account_t* dst = new account_t[ uidsLen ];
1348            
1349      sql += "SELECT u1.uid, u1.name, u1.uname, u1.email, u1.url, u1.user_avatar, u1.user_regdate, u1.user_icq, u1.user_from, u1.user_sig, u1.user_viewemail, u1.actkey, u1.user_aim, u1.user_yim, u1.user_msnm, u1.pass, u1.posts, u1.attachsig, u1.rank, u1.level, u1.theme, u1.timezone_offset, u1.last_login, u1.umode, u1.uorder, u1.notify_method, u1.notify_mode, u1.user_occ, u1.bio, u1.user_intrest, u1.user_mailok, u2.activate, u2.address, u2.division, u2.tel, u2.company_name, u2.country, u2.zipcode, u2.fax, u2.notice_mail, u2.notice_mail_since, u2.private_index_id, u2.private_item_number_limit, u2.private_index_number_limit, u2.private_item_storage_limit ";      sql += "SELECT u1.uid, u1.name, u1.uname, u1.email, u1.url, u1.user_avatar, u1.user_regdate, u1.user_icq, u1.user_from, u1.user_sig, u1.user_viewemail, u1.actkey, u1.user_aim, u1.user_yim, u1.user_msnm, u1.pass, u1.posts, u1.attachsig, u1.rank, u1.level, u1.theme, u1.timezone_offset, u1.last_login, u1.umode, u1.uorder, u1.notify_method, u1.notify_mode, u1.user_occ, u1.bio, u1.user_intrest, u1.user_mailok, u2.activate, u2.address, u2.division, u2.tel, u2.company_name, u2.country, u2.zipcode, u2.fax, u2.notice_mail, u2.notice_mail_since, u2.private_index_id, u2.private_item_number_limit, u2.private_index_number_limit, u2.private_item_storage_limit ";
1350      sql += "FROM " + dbprefix + "_users AS u1, " + dbprefix + "_xnpaccount_users AS u2 ";      sql += "FROM " + dbprefix + "_users AS u1, " + dbprefix + "_xoonips_users AS u2 ";
1351      sql += "WHERE u1.uid = u2.uid ";      sql += "WHERE u1.uid = u2.uid ";
1352      if( uidsLen > 0 ){      if( uidsLen > 0 ){
1353          syslog_printf( "set uid[%d] value=%d to ...", 0, uids[0] );          syslog_printf( "set uid[%d] value=%d to ...", 0, uids[0] );
# Line 1468  result_t insertAccount( sessionid_t sid, Line 1471  result_t insertAccount( sessionid_t sid,
1471            
1472      /*      /*
1473        1. insert user profile into xoops_users        1. insert user profile into xoops_users
1474        2. insert platform user profile into xnpaccount_users        2. insert platform user profile into xoonips_users
1475        3. add user to default platform group        3. add user to default platform group
1476        4. create private index        4. create private index
1477        5. update account set private_index_id=...        5. update account set private_index_id=...
# Line 1586  result_t insertAccount( sessionid_t sid, Line 1589  result_t insertAccount( sessionid_t sid,
1589      }      }
1590            
1591      if( ret == RES_OK ){      if( ret == RES_OK ){
1592          //2.xnpaccountのユーザテーブルに残りの情報を書き込む          //2.xoonipsのユーザテーブルに残りの情報を書き込む
1593          SQLUINTEGER activate;          SQLUINTEGER activate;
1594          SQLCHAR address[XNP_ACCOUNT_ADDRESS_LEN+1];          SQLCHAR address[XNP_ACCOUNT_ADDRESS_LEN+1];
1595          SQLCHAR division[XNP_ACCOUNT_DIVISION_LEN+1];          SQLCHAR division[XNP_ACCOUNT_DIVISION_LEN+1];
# Line 1605  result_t insertAccount( sessionid_t sid, Line 1608  result_t insertAccount( sessionid_t sid,
1608    
1609          if( ret == RES_OK && ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {          if( ret == RES_OK && ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
1610              string sql;              string sql;
1611              sql = "INSERT INTO " + dbprefix + "_xnpaccount_users (uid, activate, address, division, tel, company_name, country, zipcode, fax, notice_mail, notice_mail_since, private_item_number_limit, private_index_number_limit, private_item_storage_limit) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )";              sql = "INSERT INTO " + dbprefix + "_xoonips_users (uid, activate, address, division, tel, company_name, country, zipcode, fax, notice_mail, notice_mail_since, private_item_number_limit, private_index_number_limit, private_item_storage_limit) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )";
1612              sqlcode = SQLPrepare(hstmt, (SQLCHAR*)sql.c_str(), SQL_NTS);              sqlcode = SQLPrepare(hstmt, (SQLCHAR*)sql.c_str(), SQL_NTS);
1613              if( sqlcode == SQL_SUCCESS || sqlcode == SQL_SUCCESS_WITH_INFO ){              if( sqlcode == SQL_SUCCESS || sqlcode == SQL_SUCCESS_WITH_INFO ){
1614                  SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_SSHORT, SQL_INTEGER, 0, 0, uid, 0, &cbUid);                  SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_SSHORT, SQL_INTEGER, 0, 0, uid, 0, &cbUid);
# Line 1696  result_t insertAccount( sessionid_t sid, Line 1699  result_t insertAccount( sessionid_t sid,
1699                    
1700          // private index用のsort_number生成          // private index用のsort_number生成
1701          string sql = "select min(sort_number) from " +          string sql = "select min(sort_number) from " +
1702            dbprefix + "_xnpaccount_index where parent_index_id=" + unsignedIntToString(item::IID_ROOT) +            dbprefix + "_xoonips_index where parent_index_id=" + unsignedIntToString(item::IID_ROOT) +
1703            " and open_level=" + unsignedIntToString(index::OL_PRIVATE);            " and open_level=" + unsignedIntToString(index::OL_PRIVATE);
1704          unsigned int sortNumber;          unsigned int sortNumber;
1705          ret = queryGetUnsignedInt( "insertAccount", sql, &sortNumber );          ret = queryGetUnsignedInt( "insertAccount", sql, &sortNumber );
# Line 1715  result_t insertAccount( sessionid_t sid, Line 1718  result_t insertAccount( sessionid_t sid,
1718              ret = insertIndexInternal( sid, &index, &privateXID );              ret = insertIndexInternal( sid, &index, &privateXID );
1719              if ( ret == RES_OK ){              if ( ret == RES_OK ){
1720                  // xnpaccuont_usersのprivate_index_idの書き換え                  // xnpaccuont_usersのprivate_index_idの書き換え
1721                  sql = "UPDATE " + dbprefix + "_xnpaccount_users SET private_index_id="                  sql = "UPDATE " + dbprefix + "_xoonips_users SET private_index_id="
1722                    + unsignedIntToString(privateXID) + " WHERE uid=" + unsignedIntToString(*uid);                    + unsignedIntToString(privateXID) + " WHERE uid=" + unsignedIntToString(*uid);
1723                  ret = querySimple( "insertAccount", sql );                  ret = querySimple( "insertAccount", sql );
1724              }              }
# Line 1906  result_t updateAccount( sessionid_t sid, Line 1909  result_t updateAccount( sessionid_t sid,
1909          return ret;          return ret;
1910      }      }
1911            
1912      //xnpaccountのユーザテーブルに残りの情報を上書きする      //xoonipsのユーザテーブルに残りの情報を上書きする
1913      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
1914          string sql;          string sql;
1915    
1916          sql = "UPDATE " + dbprefix + "_xnpaccount_users SET ";          sql = "UPDATE " + dbprefix + "_xoonips_users SET ";
1917          sql += "activate=?, ";          sql += "activate=?, ";
1918          sql += "address=?, ";          sql += "address=?, ";
1919          sql += "division=?, ";          sql += "division=?, ";
# Line 2010  result_t dumpUids( sessionid_t sid, crit Line 2013  result_t dumpUids( sessionid_t sid, crit
2013      SQLLEN count = 0;      SQLLEN count = 0;
2014                            
2015    
2016      sql = "SELECT uid FROM " + dbprefix + "_xnpaccount_users ";      sql = "SELECT uid FROM " + dbprefix + "_xoonips_users ";
2017      sql += criteria2str( cri );      sql += criteria2str( cri );
2018      if( countResultRows( sql.c_str(), &count ) == RES_OK ){      if( countResultRows( sql.c_str(), &count ) == RES_OK ){
2019          *uidsLen = count;          *uidsLen = count;
# Line 2071  int getGroupCount( sessionid_t sid ) Line 2074  int getGroupCount( sessionid_t sid )
2074      int ret = 0;      int ret = 0;
2075            
2076      //グループ数を求める      //グループ数を求める
2077      sql = "SELECT COUNT(*) FROM " + dbprefix + "_xnpaccount_groups";      sql = "SELECT COUNT(*) FROM " + dbprefix + "_xoonips_groups";
2078      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
2079          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){
2080              SQLUINTEGER count = 0;              SQLUINTEGER count = 0;
# Line 2129  result_t getGroupsByUid( sessionid_t sid Line 2132  result_t getGroupsByUid( sessionid_t sid
2132      SQLLEN count = 0;      SQLLEN count = 0;
2133      groupid_t* dst = 0;      groupid_t* dst = 0;
2134            
2135      sql = "SELECT gid FROM " + dbprefix + "_xnpaccount_groups_users_link";      sql = "SELECT gid FROM " + dbprefix + "_xoonips_groups_users_link";
2136      sql += " WHERE uid=" + string( unsignedIntToString( uid ) );      sql += " WHERE uid=" + string( unsignedIntToString( uid ) );
2137      sql += criteria2str( cri );      sql += criteria2str( cri );
2138      if( countResultRows( sql.c_str(), &count ) == RES_OK ){      if( countResultRows( sql.c_str(), &count ) == RES_OK ){
# Line 2146  result_t getGroupsByUid( sessionid_t sid Line 2149  result_t getGroupsByUid( sessionid_t sid
2149              if( count > 0 ){              if( count > 0 ){
2150                  SQLHANDLE hstmt2 = NULL;                      SQLHANDLE hstmt2 = NULL;    
2151                  if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt2 ) ) == SQL_SUCCESS ) {                  if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt2 ) ) == SQL_SUCCESS ) {
2152                      sql = "SELECT gid, uid, is_admin FROM " + dbprefix + "_xnpaccount_groups_users_link";                      sql = "SELECT gid, uid, is_admin FROM " + dbprefix + "_xoonips_groups_users_link";
2153                      sql += " WHERE uid=" + string( unsignedIntToString( uid ) );                      sql += " WHERE uid=" + string( unsignedIntToString( uid ) );
2154                      sql += criteria2str( cri );                      sql += criteria2str( cri );
2155                      if( ( sqlcode = SQLExecDirect( hstmt2, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){                      if( ( sqlcode = SQLExecDirect( hstmt2, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){
# Line 2213  bool isGroupAdmin( sessionid_t sid, grou Line 2216  bool isGroupAdmin( sessionid_t sid, grou
2216      string sql;      string sql;
2217      SQLLEN count = 0;      SQLLEN count = 0;
2218            
2219      sql = "SELECT * FROM " + dbprefix + "_xnpaccount_groups_users_link ";      sql = "SELECT * FROM " + dbprefix + "_xoonips_groups_users_link ";
2220      sql += "WHERE gid=" + string( unsignedIntToString( gid ) );      sql += "WHERE gid=" + string( unsignedIntToString( gid ) );
2221      sql += " AND uid=" + string( unsignedIntToString( uid ) );      sql += " AND uid=" + string( unsignedIntToString( uid ) );
2222      sql += " AND is_admin=1";      sql += " AND is_admin=1";
# Line 2255  result_t dumpGids( sessionid_t sid, crit Line 2258  result_t dumpGids( sessionid_t sid, crit
2258      SQLRETURN sqlcode;      SQLRETURN sqlcode;
2259      SQLLEN count = 0;      SQLLEN count = 0;
2260                            
2261      sql = "SELECT gid FROM " + dbprefix + "_xnpaccount_groups ";      sql = "SELECT gid FROM " + dbprefix + "_xoonips_groups ";
2262      sql += criteria2str( cri );      sql += criteria2str( cri );
2263      if( countResultRows( sql.c_str(), &count ) == RES_OK ){      if( countResultRows( sql.c_str(), &count ) == RES_OK ){
2264          *gidsLen = count;          *gidsLen = count;
# Line 2315  result_t dumpGroupAdmins( sessionid_t si Line 2318  result_t dumpGroupAdmins( sessionid_t si
2318      SQLRETURN sqlcode;      SQLRETURN sqlcode;
2319      SQLLEN count = 0;      SQLLEN count = 0;
2320                            
2321      sql = "SELECT uid FROM " + dbprefix + "_xnpaccount_groups_users_link ";      sql = "SELECT uid FROM " + dbprefix + "_xoonips_groups_users_link ";
2322      sql += " WHERE is_admin=1 and gid=" + unsignedIntToString( gid );      sql += " WHERE is_admin=1 and gid=" + unsignedIntToString( gid );
2323      if( countResultRows( sql.c_str(), &count ) == RES_OK ){      if( countResultRows( sql.c_str(), &count ) == RES_OK ){
2324          *uidsLen = count;          *uidsLen = count;
# Line 2399  static result_t deleteMemberNoLimit( ses Line 2402  static result_t deleteMemberNoLimit( ses
2402      SQLRETURN sqlcode;      SQLRETURN sqlcode;
2403      SQLHANDLE hstmt = NULL;      SQLHANDLE hstmt = NULL;
2404            
2405      sql = "DELETE FROM " + dbprefix + "_xnpaccount_groups_users_link ";      sql = "DELETE FROM " + dbprefix + "_xoonips_groups_users_link ";
2406      sql += "WHERE gid=" + string( unsignedIntToString( gid ) );      sql += "WHERE gid=" + string( unsignedIntToString( gid ) );
2407      sql += " AND uid=" + string( unsignedIntToString( uid ) );      sql += " AND uid=" + string( unsignedIntToString( uid ) );
2408      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
# Line 2462  result_t insertMember( sessionid_t sid, Line 2465  result_t insertMember( sessionid_t sid,
2465            
2466      //メンバーを追加      //メンバーを追加
2467      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
2468          sql = "INSERT INTO " + dbprefix + "_xnpaccount_groups_users_link ( gid, uid, is_admin ) VALUES (";          sql = "INSERT INTO " + dbprefix + "_xoonips_groups_users_link ( gid, uid, is_admin ) VALUES (";
2469          sql += string( unsignedIntToString( gid ) ) + ", ";          sql += string( unsignedIntToString( gid ) ) + ", ";
2470          sql += string( unsignedIntToString( uid ) ) + ", ";          sql += string( unsignedIntToString( uid ) ) + ", ";
2471          sql += string( admin ? "1" : "0" ) + ") ";          sql += string( admin ? "1" : "0" ) + ") ";
# Line 2525  result_t getMembers( sessionid_t sid, gr Line 2528  result_t getMembers( sessionid_t sid, gr
2528      userid_t* dst = 0;      userid_t* dst = 0;
2529            
2530      //how many members ?      //how many members ?
2531      sql = "SELECT COUNT(*) FROM " + dbprefix + "_xnpaccount_groups_users_link ";      sql = "SELECT COUNT(*) FROM " + dbprefix + "_xoonips_groups_users_link ";
2532      sql += " WHERE gid=" + string( unsignedIntToString( gid ) );      sql += " WHERE gid=" + string( unsignedIntToString( gid ) );
2533      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
2534          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){
# Line 2540  result_t getMembers( sessionid_t sid, gr Line 2543  result_t getMembers( sessionid_t sid, gr
2543                      //retrieve member's IDs                      //retrieve member's IDs
2544                      SQLHANDLE hstmt2 = NULL;                          SQLHANDLE hstmt2 = NULL;    
2545                     if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt2 ) ) == SQL_SUCCESS ) {                     if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt2 ) ) == SQL_SUCCESS ) {
2546                          sql = "SELECT uid, gid, is_admin FROM " + dbprefix + "_xnpaccount_groups_users_link ";                          sql = "SELECT uid, gid, is_admin FROM " + dbprefix + "_xoonips_groups_users_link ";
2547                          sql += " WHERE gid=" + string( unsignedIntToString( gid ) );                          sql += " WHERE gid=" + string( unsignedIntToString( gid ) );
2548                          sql += " " + string( criteria2str( cri ) );                          sql += " " + string( criteria2str( cri ) );
2549                          if( ( sqlcode = SQLExecDirect( hstmt2, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){                          if( ( sqlcode = SQLExecDirect( hstmt2, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){
# Line 2608  result_t deleteGroup( sessionid_t sid, g Line 2611  result_t deleteGroup( sessionid_t sid, g
2611      SQLRETURN sqlcode;      SQLRETURN sqlcode;
2612      SQLHANDLE hstmt = NULL;      SQLHANDLE hstmt = NULL;
2613            
2614      sql = "DELETE FROM " + dbprefix + "_xnpaccount_groups ";      sql = "DELETE FROM " + dbprefix + "_xoonips_groups ";
2615      sql += "WHERE gid = " + string( unsignedIntToString( gid ) );      sql += "WHERE gid = " + string( unsignedIntToString( gid ) );
2616      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
2617          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){
# Line 2670  result_t insertGroup( sessionid_t sid, c Line 2673  result_t insertGroup( sessionid_t sid, c
2673      SQLRETURN sqlcode;      SQLRETURN sqlcode;
2674            
2675      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
2676          sql = "INSERT INTO " + dbprefix + "_xnpaccount_groups ( gname, gdesc, group_item_number_limit, group_index_number_limit, group_item_storage_limit ) VALUES ( ?, ?, ?, ?, ? )";          sql = "INSERT INTO " + dbprefix + "_xoonips_groups ( gname, gdesc, group_item_number_limit, group_index_number_limit, group_item_storage_limit ) VALUES ( ?, ?, ?, ?, ? )";
2677          sqlcode = SQLPrepare(hstmt, (SQLCHAR*)sql.c_str(), SQL_NTS);          sqlcode = SQLPrepare(hstmt, (SQLCHAR*)sql.c_str(), SQL_NTS);
2678          if( sqlcode == SQL_SUCCESS || sqlcode == SQL_SUCCESS_WITH_INFO ){          if( sqlcode == SQL_SUCCESS || sqlcode == SQL_SUCCESS_WITH_INFO ){
2679              SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_LONGVARCHAR, XNP_GROUP_GNAME_LEN, 0, gname, 0, &cbGname );              SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_LONGVARCHAR, XNP_GROUP_GNAME_LEN, 0, gname, 0, &cbGname );
# Line 2725  result_t insertGroup( sessionid_t sid, c Line 2728  result_t insertGroup( sessionid_t sid, c
2728                    
2729          //group index用のsort_num生成          //group index用のsort_num生成
2730          string sql = "SELECT MAX(sort_number) FROM " +          string sql = "SELECT MAX(sort_number) FROM " +
2731            dbprefix + "_xnpaccount_index WHERE parent_index_id=" + unsignedIntToString(item::IID_ROOT) +            dbprefix + "_xoonips_index WHERE parent_index_id=" + unsignedIntToString(item::IID_ROOT) +
2732            " AND (open_level=" + unsignedIntToString(index::OL_GROUP_ONLY) +            " AND (open_level=" + unsignedIntToString(index::OL_GROUP_ONLY) +
2733              " OR open_level=" + unsignedIntToString(index::OL_PUBLIC) + ")";              " OR open_level=" + unsignedIntToString(index::OL_PUBLIC) + ")";
2734          unsigned int sortNumber;          unsigned int sortNumber;
# Line 2748  result_t insertGroup( sessionid_t sid, c Line 2751  result_t insertGroup( sessionid_t sid, c
2751                  ret = insertIndexInternal( sid, &index, &groupXID );                  ret = insertIndexInternal( sid, &index, &groupXID );
2752                  if ( ret == RES_OK ){                  if ( ret == RES_OK ){
2753                      // xnpaccuont_groupsのgroup_index_idの書き換え                      // xnpaccuont_groupsのgroup_index_idの書き換え
2754                      sql = "UPDATE " + dbprefix + "_xnpaccount_groups SET group_index_id="                      sql = "UPDATE " + dbprefix + "_xoonips_groups SET group_index_id="
2755                        + unsignedIntToString(groupXID) + " WHERE gid=" + unsignedIntToString(*gid);                        + unsignedIntToString(groupXID) + " WHERE gid=" + unsignedIntToString(*gid);
2756                      ret = querySimple( "insertGroup", sql );                      ret = querySimple( "insertGroup", sql );
2757                  }                  }
# Line 2787  result_t updateGroup( sessionid_t sid, c Line 2790  result_t updateGroup( sessionid_t sid, c
2790      SQLRETURN sqlcode;      SQLRETURN sqlcode;
2791            
2792      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
2793          sql = "UPDATE " + dbprefix + "_xnpaccount_groups SET gname=?, gdesc=?, ";          sql = "UPDATE " + dbprefix + "_xoonips_groups SET gname=?, gdesc=?, ";
2794          sql += "group_item_number_limit=" + unsignedIntToString( group -> getItemNumberLimit( ) ) + " ,";          sql += "group_item_number_limit=" + unsignedIntToString( group -> getItemNumberLimit( ) ) + " ,";
2795          sql += "group_index_number_limit=" + unsignedIntToString( group -> getIndexNumberLimit( ) ) + " ,";          sql += "group_index_number_limit=" + unsignedIntToString( group -> getIndexNumberLimit( ) ) + " ,";
2796          sql += "group_item_storage_limit=" + doubleToString( group -> getItemStorageLimit( ) ) + " ";          sql += "group_item_storage_limit=" + doubleToString( group -> getItemStorageLimit( ) ) + " ";
# Line 2828  result_t updateGroup( sessionid_t sid, c Line 2831  result_t updateGroup( sessionid_t sid, c
2831            
2832      if( ret == RES_OK ){      if( ret == RES_OK ){
2833          // updateすべきindex_idを得る          // updateすべきindex_idを得る
2834          sql = "SELECT group_index_id from " + dbprefix + "_xnpaccount_groups as tg "          sql = "SELECT group_index_id from " + dbprefix + "_xoonips_groups as tg "
2835            " left join " + dbprefix + "_xnpaccount_item_basic as ti on tg.group_index_id = ti.item_id "            " left join " + dbprefix + "_xoonips_item_basic as ti on tg.group_index_id = ti.item_id "
2836            " left join " + dbprefix + "_xnpaccount_index as tx on ti.item_id = tx.index_id "            " left join " + dbprefix + "_xoonips_index as tx on ti.item_id = tx.index_id "
2837            " where tg.gid=" +  unsignedIntToString(group->getGID()) +            " where tg.gid=" +  unsignedIntToString(group->getGID()) +
2838            "  and ti.item_type_id=" + unsignedIntToString(item::ITID_INDEX) +            "  and ti.item_type_id=" + unsignedIntToString(item::ITID_INDEX) +
2839            "  and tx.parent_index_id=" + unsignedIntToString(item::IID_ROOT);            "  and tx.parent_index_id=" + unsignedIntToString(item::IID_ROOT);
# Line 2839  result_t updateGroup( sessionid_t sid, c Line 2842  result_t updateGroup( sessionid_t sid, c
2842                    
2843          if ( ret == RES_OK ){          if ( ret == RES_OK ){
2844              if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {              if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
2845                  sql = "UPDATE " + dbprefix + "_xnpaccount_item_basic set title=? "                  sql = "UPDATE " + dbprefix + "_xoonips_item_basic set title=? "
2846                      "WHERE item_id=" + unsignedIntToString(xid);                      "WHERE item_id=" + unsignedIntToString(xid);
2847                  sqlcode = SQLPrepare(hstmt, (SQLCHAR*)sql.c_str(), SQL_NTS);                  sqlcode = SQLPrepare(hstmt, (SQLCHAR*)sql.c_str(), SQL_NTS);
2848                  if( sqlcode == SQL_SUCCESS || sqlcode == SQL_SUCCESS_WITH_INFO ){                  if( sqlcode == SQL_SUCCESS || sqlcode == SQL_SUCCESS_WITH_INFO ){
# Line 2929  result_t getGroups( sessionid_t sid, gro Line 2932  result_t getGroups( sessionid_t sid, gro
2932      group_t* dst = new group_t[ gidsLen ];      group_t* dst = new group_t[ gidsLen ];
2933            
2934      sql += "SELECT gid, gname, gdesc, group_index_id, group_item_number_limit, group_index_number_limit, group_item_storage_limit ";      sql += "SELECT gid, gname, gdesc, group_index_id, group_item_number_limit, group_index_number_limit, group_item_storage_limit ";
2935      sql += "FROM " + dbprefix + "_xnpaccount_groups ";      sql += "FROM " + dbprefix + "_xoonips_groups ";
2936      if( gidsLen > 0 ){      if( gidsLen > 0 ){
2937          sql += "WHERE gid=" + string( unsignedIntToString( gids[ 0 ] ) );          sql += "WHERE gid=" + string( unsignedIntToString( gids[ 0 ] ) );
2938          for( int i = 1; i < gidsLen; i++ ){          for( int i = 1; i < gidsLen; i++ ){
# Line 3000  bool isModerator( sessionid_t sid, useri Line 3003  bool isModerator( sessionid_t sid, useri
3003      groupid_t moderator_gid;      groupid_t moderator_gid;
3004            
3005      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
3006          sql = "SELECT value FROM " + dbprefix + "_xnpaccount_config";          sql = "SELECT value FROM " + dbprefix + "_xoonips_config";
3007          sql += " WHERE name='moderator_gid'";          sql += " WHERE name='moderator_gid'";
3008          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){
3009              SQLLEN len = 0;              SQLLEN len = 0;
# Line 3094  result_t getUid( const char* uname, user Line 3097  result_t getUid( const char* uname, user
3097    
3098  /**  /**
3099   *   *
3100   * セッションを作成しxoops_xnpaccount_sessionに書き込む。 sessionid_tをsessionに返す。   * セッションを作成しxoops_xoonips_sessionに書き込む。 sessionid_tをsessionに返す。
3101   *   *
3102   * @param uid xoops_usersのuid   * @param uid xoops_usersのuid
3103   * @param session sessionid_tを受け取るためのポインタ。   * @param session sessionid_tを受け取るためのポインタ。
# Line 3106  static result_t addSession( userid_t uid Line 3109  static result_t addSession( userid_t uid
3109      char *functionName = "addSession";      char *functionName = "addSession";
3110      string sql;      string sql;
3111      if( dbtype == DBTYPE_MYSQL ){      if( dbtype == DBTYPE_MYSQL ){
3112          sql = "INSERT INTO " + dbprefix + "_xnpaccount_session (uid) values (" +          sql = "INSERT INTO " + dbprefix + "_xoonips_session (uid) values (" +
3113              unsignedIntToString(uid) + ")";              unsignedIntToString(uid) + ")";
3114      }else if( dbtype == DBTYPE_SQLITE ){      }else if( dbtype == DBTYPE_SQLITE ){
3115          sql = "INSERT INTO " + dbprefix + "_xnpaccount_session (uid, timestamp) values (" +          sql = "INSERT INTO " + dbprefix + "_xoonips_session (uid, timestamp) values (" +
3116              unsignedIntToString(uid) + "," + unsignedIntToString( time( NULL ) ) + ")";              unsignedIntToString(uid) + "," + unsignedIntToString( time( NULL ) ) + ")";
3117      }      }
3118      result_t ret = querySimple( functionName, sql );      result_t ret = querySimple( functionName, sql );
# Line 3130  static void deleteTimeoutSession(){ Line 3133  static void deleteTimeoutSession(){
3133      time_t now = time(NULL);      time_t now = time(NULL);
3134      string sql;      string sql;
3135      if( dbtype == DBTYPE_MYSQL ){      if( dbtype == DBTYPE_MYSQL ){
3136          sql = "DELETE FROM " + dbprefix + "_xnpaccount_session WHERE unix_timestamp(timestamp) < " + unsignedIntToString(now-SESSION_TIMEOUT_SEC);          sql = "DELETE FROM " + dbprefix + "_xoonips_session WHERE unix_timestamp(timestamp) < " + unsignedIntToString(now-SESSION_TIMEOUT_SEC);
3137      }else if( dbtype == DBTYPE_SQLITE ){      }else if( dbtype == DBTYPE_SQLITE ){
3138          sql = "DELETE FROM " + dbprefix + "_xnpaccount_session WHERE timestamp < " + unsignedIntToString(now-SESSION_TIMEOUT_SEC);          sql = "DELETE FROM " + dbprefix + "_xoonips_session WHERE timestamp < " + unsignedIntToString(now-SESSION_TIMEOUT_SEC);
3139      }      }
3140      querySimple( "deleteTimeoutSession", sql );      querySimple( "deleteTimeoutSession", sql );
3141  }  }
# Line 3170  result_t loginUser(const char* uname, co Line 3173  result_t loginUser(const char* uname, co
3173              SQLBindCol( hstmt, 1, SQL_C_ULONG, &sUID, 0, &len );              SQLBindCol( hstmt, 1, SQL_C_ULONG, &sUID, 0, &len );
3174              if ( ( sqlcode = SQLFetch( hstmt ) ) == SQL_SUCCESS ){              if ( ( sqlcode = SQLFetch( hstmt ) ) == SQL_SUCCESS ){
3175                  // activateを調べる                  // activateを調べる
3176                  sql = "SELECT activate FROM " + dbprefix + "_xnpaccount_users WHERE uid=" + unsignedIntToString(sUID);                  sql = "SELECT activate FROM " + dbprefix + "_xoonips_users WHERE uid=" + unsignedIntToString(sUID);
3177                  unsigned int activate = 0;                  unsigned int activate = 0;
3178                  ret = queryGetUnsignedInt( "loginUser", sql, &activate );                  ret = queryGetUnsignedInt( "loginUser", sql, &activate );
3179                  if ( ret == RES_OK ){                  if ( ret == RES_OK ){
# Line 3232  void logoutUser( sessionid_t sid ) Line 3235  void logoutUser( sessionid_t sid )
3235      SQLRETURN sqlcode;      SQLRETURN sqlcode;
3236      SQLHANDLE hstmt = NULL;          SQLHANDLE hstmt = NULL;    
3237            
3238      sql = "DELETE FROM " + dbprefix + "_xnpaccount_session WHERE sid=" + intToString((int)sid);      sql = "DELETE FROM " + dbprefix + "_xoonips_session WHERE sid=" + intToString((int)sid);
3239      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
3240          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){
3241              ;              ;
# Line 3273  result_t createSession( const char* sess Line 3276  result_t createSession( const char* sess
3276      SQLHANDLE hstmt = NULL;      SQLHANDLE hstmt = NULL;
3277      SQLRETURN sqlcode;      SQLRETURN sqlcode;
3278            
3279      sql = "SELECT count(*) from " + dbprefix + "_xnpaccount_users where uid=" + unsignedIntToString( uid ) + " and activate=1";      sql = "SELECT count(*) from " + dbprefix + "_xoonips_users where uid=" + unsignedIntToString( uid ) + " and activate=1";
3280      unsigned int count;      unsigned int count;
3281      ret = queryGetUnsignedInt( "createSession", sql, &count );      ret = queryGetUnsignedInt( "createSession", sql, &count );
3282      if ( ret != RES_OK )      if ( ret != RES_OK )
# Line 3329  result_t getSession( sessionid_t sid, co Line 3332  result_t getSession( sessionid_t sid, co
3332            
3333      if( dbtype == DBTYPE_MYSQL ){      if( dbtype == DBTYPE_MYSQL ){
3334          sql = "SELECT sid, uid, unix_timestamp(timestamp) from " + dbprefix +          sql = "SELECT sid, uid, unix_timestamp(timestamp) from " + dbprefix +
3335              "_xnpaccount_session where sid=" + unsignedIntToString((unsigned int)sid);              "_xoonips_session where sid=" + unsignedIntToString((unsigned int)sid);
3336      }else if( dbtype == DBTYPE_SQLITE ){      }else if( dbtype == DBTYPE_SQLITE ){
3337          sql = "SELECT sid, uid, timestamp from " + dbprefix +          sql = "SELECT sid, uid, timestamp from " + dbprefix +
3338              "_xnpaccount_session where sid=" + unsignedIntToString((unsigned int)sid);              "_xoonips_session where sid=" + unsignedIntToString((unsigned int)sid);
3339      }      }
3340      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
3341          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){
# Line 3373  result_t getSession( sessionid_t sid, co Line 3376  result_t getSession( sessionid_t sid, co
3376            
3377  /*  /*
3378      sql = "SELECT sid, uid, unix_timestamp(timestamp) from " + dbprefix +      sql = "SELECT sid, uid, unix_timestamp(timestamp) from " + dbprefix +
3379        "_xnpaccount_session where sid=" + unsignedIntToString((unsigned int)sid);        "_xoonips_session where sid=" + unsignedIntToString((unsigned int)sid);
3380      if( 0 == SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ){      if( 0 == SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ){
3381          MYSQL_RES* result = fp_mysql_store_result( mysql );          MYSQL_RES* result = fp_mysql_store_result( mysql );
3382          if( result ){          if( result ){
# Line 3442  result_t insertItem( sessionid_t sid, co Line 3445  result_t insertItem( sessionid_t sid, co
3445            
3446      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
3447          string sql;          string sql;
3448          sql = "INSERT INTO " + dbprefix + "_xnpaccount_item_basic (item_type_id, title, keywords, description, doi, uid, creation_date, last_update_date, publication_year, publication_month, publication_mday) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )";          sql = "INSERT INTO " + dbprefix + "_xoonips_item_basic (item_type_id, title, keywords, description, doi, uid, creation_date, last_update_date, publication_year, publication_month, publication_mday) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )";
3449          syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );          syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );
3450          sqlcode = SQLPrepare(hstmt, (SQLCHAR*)sql.c_str(), SQL_NTS);          sqlcode = SQLPrepare(hstmt, (SQLCHAR*)sql.c_str(), SQL_NTS);
3451          if( sqlcode == SQL_SUCCESS || sqlcode == SQL_SUCCESS_WITH_INFO ){          if( sqlcode == SQL_SUCCESS || sqlcode == SQL_SUCCESS_WITH_INFO ){
# Line 3489  result_t insertItem( sessionid_t sid, co Line 3492  result_t insertItem( sessionid_t sid, co
3492                              ;// 何もしない                              ;// 何もしない
3493                          }else{                          }else{
3494                              //insert into private index                              //insert into private index
3495                              sql = "SELECT private_index_id FROM " + dbprefix + "_xnpaccount_users ";                              sql = "SELECT private_index_id FROM " + dbprefix + "_xoonips_users ";
3496                              sql += " WHERE uid=" + unsignedIntToString( uid );                              sql += " WHERE uid=" + unsignedIntToString( uid );
3497                              syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );                              syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );
3498                              if( ( ret = queryGetUnsignedInt( "insertItem", sql, (unsigned int*)&private_xid ) ) == RES_OK ){                              if( ( ret = queryGetUnsignedInt( "insertItem", sql, (unsigned int*)&private_xid ) ) == RES_OK ){
# Line 3603  result_t getItems( sessionid_t sid, cons Line 3606  result_t getItems( sessionid_t sid, cons
3606    
3607      if( dbtype == DBTYPE_MYSQL ){      if( dbtype == DBTYPE_MYSQL ){
3608          sql = "SELECT DISTINCT ti.item_id as item_id, item_type_id, title, keywords, description, doi, ti.uid as uid, creation_date, last_update_date, publication_year, publication_month, publication_mday ";          sql = "SELECT DISTINCT ti.item_id as item_id, item_type_id, title, keywords, description, doi, ti.uid as uid, creation_date, last_update_date, publication_year, publication_month, publication_mday ";
3609          sql+= " FROM " + dbprefix + "_xnpaccount_index_item_link AS tlink";          sql+= " FROM " + dbprefix + "_xoonips_index_item_link AS tlink";
3610          sql+= " LEFT JOIN " + dbprefix + "_xnpaccount_index AS tx ON tlink.index_id = tx.index_id";          sql+= " LEFT JOIN " + dbprefix + "_xoonips_index AS tx ON tlink.index_id = tx.index_id";
3611          sql+= " LEFT JOIN " + dbprefix + "_xnpaccount_item_basic AS ti ON tlink.item_id = ti.item_id";          sql+= " LEFT JOIN " + dbprefix + "_xoonips_item_basic AS ti ON tlink.item_id = ti.item_id";
3612      }else if( dbtype == DBTYPE_SQLITE ){      }else if( dbtype == DBTYPE_SQLITE ){
3613          sql = "SELECT DISTINCT xtest_xnpaccount_item_basic.item_id as item_id, item_type_id, title, keywords, description, doi, xtest_xnpaccount_item_basic.uid as uid, creation_date, last_update_date, publication_year, publication_month, publication_mday ";          sql = "SELECT DISTINCT xtest_xoonips_item_basic.item_id as item_id, item_type_id, title, keywords, description, doi, xtest_xoonips_item_basic.uid as uid, creation_date, last_update_date, publication_year, publication_month, publication_mday ";
3614          sql+= " FROM " + dbprefix + "_xnpaccount_index_item_link AS tlink";          sql+= " FROM " + dbprefix + "_xoonips_index_item_link AS tlink";
3615          sql+= " LEFT JOIN " + dbprefix + "_xnpaccount_index AS tx ON tlink.index_id = tx.index_id";          sql+= " LEFT JOIN " + dbprefix + "_xoonips_index AS tx ON tlink.index_id = tx.index_id";
3616          sql+= " LEFT JOIN " + dbprefix + "_xnpaccount_item_basic ON tlink.item_id = xtest_xnpaccount_item_basic.item_id";          sql+= " LEFT JOIN " + dbprefix + "_xoonips_item_basic ON tlink.item_id = xtest_xoonips_item_basic.item_id";
3617      }      }
3618      sql+= " LEFT JOIN " + dbprefix + "_xnpaccount_groups_users_link as tgulink ON tx.gid=tgulink.gid";      sql+= " LEFT JOIN " + dbprefix + "_xoonips_groups_users_link as tgulink ON tx.gid=tgulink.gid";
3619      sql+= " LEFT JOIN " + dbprefix + "_xnpaccount_session AS tsess ON tsess.uid=" + unsignedIntToString( uid );      sql+= " LEFT JOIN " + dbprefix + "_xoonips_session AS tsess ON tsess.uid=" + unsignedIntToString( uid );
3620      sql+= " AND tsess.sid=" + unsignedIntToString( sid );      sql+= " AND tsess.sid=" + unsignedIntToString( sid );
3621      sql+= " WHERE ( " + string( public_item_target_user_all( ) ? "1" : "0" );      sql+= " WHERE ( " + string( public_item_target_user_all( ) ? "1" : "0" );
3622      sql+=       " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC ) + " AND tsess.uid IS NULL";      sql+=       " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC ) + " AND tsess.uid IS NULL";
# Line 3717  unsigned int getItemCount( sessionid_t s Line 3720  unsigned int getItemCount( sessionid_t s
3720      if( ret != RES_OK ) return 0;      if( ret != RES_OK ) return 0;
3721            
3722      sql = "SELECT count(DISTINCT ti.item_id)";      sql = "SELECT count(DISTINCT ti.item_id)";
3723      sql+= " FROM " + dbprefix + "_xnpaccount_index_item_link AS tlink";      sql+= " FROM " + dbprefix + "_xoonips_index_item_link AS tlink";
3724      sql+= " LEFT JOIN " + dbprefix + "_xnpaccount_index AS tx ON tlink.index_id = tx.index_id";      sql+= " LEFT JOIN " + dbprefix + "_xoonips_index AS tx ON tlink.index_id = tx.index_id";
3725      sql+= " LEFT JOIN " + dbprefix + "_xnpaccount_item_basic AS ti ON tlink.item_id = ti.item_id";      sql+= " LEFT JOIN " + dbprefix + "_xoonips_item_basic AS ti ON tlink.item_id = ti.item_id";
3726      sql+= " LEFT JOIN " + dbprefix + "_xnpaccount_groups_users_link as tgulink ON tx.gid=tgulink.gid";      sql+= " LEFT JOIN " + dbprefix + "_xoonips_groups_users_link as tgulink ON tx.gid=tgulink.gid";
3727      sql+= " LEFT JOIN " + dbprefix + "_xnpaccount_session AS tsess ON tsess.uid=" + unsignedIntToString( uid );      sql+= " LEFT JOIN " + dbprefix + "_xoonips_session AS tsess ON tsess.uid=" + unsignedIntToString( uid );
3728      sql+= " AND tsess.sid=" + unsignedIntToString( sid );      sql+= " AND tsess.sid=" + unsignedIntToString( sid );
3729      sql+= " WHERE ( " + string( public_item_target_user_all( ) ? "1" : "0" );      sql+= " WHERE ( " + string( public_item_target_user_all( ) ? "1" : "0" );
3730      sql+=       " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC ) + " AND tsess.uid IS NULL";      sql+=       " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC ) + " AND tsess.uid IS NULL";
# Line 3781  result_t dumpItemID(sessionid_t sid, cri Line 3784  result_t dumpItemID(sessionid_t sid, cri
3784      if( ret != RES_OK ) return ret;      if( ret != RES_OK ) return ret;
3785    
3786      sql = "SELECT DISTINCT ti.item_id as item_id";      sql = "SELECT DISTINCT ti.item_id as item_id";
3787      sql+= " FROM " + dbprefix + "_xnpaccount_index_item_link AS tlink";      sql+= " FROM " + dbprefix + "_xoonips_index_item_link AS tlink";
3788      sql+= " LEFT JOIN " + dbprefix + "_xnpaccount_index AS tx ON tlink.index_id = tx.index_id";      sql+= " LEFT JOIN " + dbprefix + "_xoonips_index AS tx ON tlink.index_id = tx.index_id";
3789      sql+= " LEFT JOIN " + dbprefix + "_xnpaccount_item_basic AS ti ON tlink.item_id = ti.item_id";      sql+= " LEFT JOIN " + dbprefix + "_xoonips_item_basic AS ti ON tlink.item_id = ti.item_id";
3790      sql+= " LEFT JOIN " + dbprefix + "_xnpaccount_groups_users_link as tgulink ON tx.gid=tgulink.gid";      sql+= " LEFT JOIN " + dbprefix + "_xoonips_groups_users_link as tgulink ON tx.gid=tgulink.gid";
3791      sql+= " LEFT JOIN " + dbprefix + "_xnpaccount_session AS tsess ON tsess.uid=" + unsignedIntToString( uid );      sql+= " LEFT JOIN " + dbprefix + "_xoonips_session AS tsess ON tsess.uid=" + unsignedIntToString( uid );
3792      sql+= " AND tsess.sid=" + unsignedIntToString( sid );      sql+= " AND tsess.sid=" + unsignedIntToString( sid );
3793      sql+= " WHERE ( " + string( public_item_target_user_all( ) ? "1" : "0" );      sql+= " WHERE ( " + string( public_item_target_user_all( ) ? "1" : "0" );
3794      sql+=       " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC ) + " AND tsess.uid IS NULL";      sql+=       " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC ) + " AND tsess.uid IS NULL";
# Line 3901  result_t updateItem( sessionid_t sid, co Line 3904  result_t updateItem( sessionid_t sid, co
3904            
3905      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
3906          string sql;          string sql;
3907          sql = "UPDATE " + dbprefix + "_xnpaccount_item_basic SET ";          sql = "UPDATE " + dbprefix + "_xoonips_item_basic SET ";
3908          sql += "item_type_id=?";          sql += "item_type_id=?";
3909          sql += ", title=?";          sql += ", title=?";
3910          sql += ", keywords=?";          sql += ", keywords=?";
# Line 3955  result_t updateItem( sessionid_t sid, co Line 3958  result_t updateItem( sessionid_t sid, co
3958                          if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt2 ) ) == SQL_SUCCESS ) {                          if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt2 ) ) == SQL_SUCCESS ) {
3959                              string sql;                              string sql;
3960                              sql = "SELECT index_item_link_id ";                              sql = "SELECT index_item_link_id ";
3961                              sql += " FROM " + dbprefix + "_xnpaccount_index_item_link as tlink ";                              sql += " FROM " + dbprefix + "_xoonips_index_item_link as tlink ";
3962                              sql += " LEFT JOIN " + dbprefix + "_xnpaccount_index as tx ON tlink.index_id=tx.index_id ";                              sql += " LEFT JOIN " + dbprefix + "_xoonips_index as tx ON tlink.index_id=tx.index_id ";
3963                              sql += " LEFT JOIN " + dbprefix + "_xnpaccount_item_basic as ti ON tlink.item_id=ti.item_id ";                              sql += " LEFT JOIN " + dbprefix + "_xoonips_item_basic as ti ON tlink.item_id=ti.item_id ";
3964                              sql += " WHERE (tx.open_level=" + unsignedIntToString( index::OL_PUBLIC );                              sql += " WHERE (tx.open_level=" + unsignedIntToString( index::OL_PUBLIC );
3965                              sql += " OR tx.open_level=" + unsignedIntToString( index::OL_GROUP_ONLY );                              sql += " OR tx.open_level=" + unsignedIntToString( index::OL_GROUP_ONLY );
3966                              sql += ") AND ti.item_type_id!=" + unsignedIntToString( item::ITID_BINDER );                              sql += ") AND ti.item_type_id!=" + unsignedIntToString( item::ITID_BINDER );
# Line 3969  result_t updateItem( sessionid_t sid, co Line 3972  result_t updateItem( sessionid_t sid, co
3972                                  SQLBindCol( hstmt2,1, SQL_C_ULONG, &registered_index_id, 0, &len );                                  SQLBindCol( hstmt2,1, SQL_C_ULONG, &registered_index_id, 0, &len );
3973                                  certify_t certify_state = getInitialCertifyStateFromConfig( );                                  certify_t certify_state = getInitialCertifyStateFromConfig( );
3974                                  while ( ( sqlcode = SQLFetch( hstmt2 ) ) == SQL_SUCCESS ){                                  while ( ( sqlcode = SQLFetch( hstmt2 ) ) == SQL_SUCCESS ){
3975                                      string sql = "UPDATE " + dbprefix + "_xnpaccount_index_item_link";                                      string sql = "UPDATE " + dbprefix + "_xoonips_index_item_link";
3976                                      sql += " SET certify_state=" + unsignedIntToString( certify_state );                                      sql += " SET certify_state=" + unsignedIntToString( certify_state );
3977                                      sql += " WHERE index_item_link_id=" + unsignedIntToString( registered_index_id );                                      sql += " WHERE index_item_link_id=" + unsignedIntToString( registered_index_id );
3978                                      syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );                                      syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );
# Line 4076  result_t deleteItem( sessionid_t sid, it Line 4079  result_t deleteItem( sessionid_t sid, it
4079      */      */
4080            
4081      //1. delete item from index keywords      //1. delete item from index keywords
4082      sql = "DELETE FROM " + dbprefix + "_xnpaccount_index_item_link ";      sql = "DELETE FROM " + dbprefix + "_xoonips_index_item_link ";
4083      sql += "WHERE item_id = " + string( unsignedIntToString( itemid ) );      sql += "WHERE item_id = " + string( unsignedIntToString( itemid ) );
4084      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
4085          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){
# Line 4107  result_t deleteItem( sessionid_t sid, it Line 4110  result_t deleteItem( sessionid_t sid, it
4110      }      }
4111            
4112      //2. delete item from binders      //2. delete item from binders
4113      sql = "DELETE FROM " + dbprefix + "_xnpbinder_binder_item_link ";      sql = "DELETE FROM " + dbprefix + "_xoonips_binder_item_link ";
4114      sql += "WHERE item_id = " + string( unsignedIntToString( itemid ) );      sql += "WHERE item_id = " + string( unsignedIntToString( itemid ) );
4115      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
4116          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){
# Line 4139  result_t deleteItem( sessionid_t sid, it Line 4142  result_t deleteItem( sessionid_t sid, it
4142            
4143            
4144      // 3. delete item      // 3. delete item
4145      sql = "DELETE FROM " + dbprefix + "_xnpaccount_item_basic ";      sql = "DELETE FROM " + dbprefix + "_xoonips_item_basic ";
4146      sql += "WHERE item_id = " + string( unsignedIntToString( itemid ) );      sql += "WHERE item_id = " + string( unsignedIntToString( itemid ) );
4147      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
4148          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){
# Line 4206  result_t getPrivateItemID( sessionid_t s Line 4209  result_t getPrivateItemID( sessionid_t s
4209            
4210      //SELECT 自アイテム NOT IN ( 公開承認されたアイテム )      //SELECT 自アイテム NOT IN ( 公開承認されたアイテム )
4211      sql = "SELECT DISTINCT tlink.item_id";      sql = "SELECT DISTINCT tlink.item_id";
4212      sql += " FROM " + dbprefix + "_xnpaccount_index_item_link AS tlink";      sql += " FROM " + dbprefix + "_xoonips_index_item_link AS tlink";
4213      sql += " LEFT JOIN " + dbprefix + "_xnpaccount_index AS tx ON tlink.index_id=tx.index_id";      sql += " LEFT JOIN " + dbprefix + "_xoonips_index AS tx ON tlink.index_id=tx.index_id";
4214      sql += " LEFT JOIN " + dbprefix + "_xnpaccount_item_basic AS ti ON tlink.item_id=ti.item_id";      sql += " LEFT JOIN " + dbprefix + "_xoonips_item_basic AS ti ON tlink.item_id=ti.item_id";
4215          sql += " LEFT JOIN " + dbprefix + "_xnpaccount_groups_users_link AS tgulink ON tgulink.gid = tx.gid";          sql += " LEFT JOIN " + dbprefix + "_xoonips_groups_users_link AS tgulink ON tgulink.gid = tx.gid";
4216    
4217      sql += " WHERE open_level<=" + unsignedIntToString( index::OL_GROUP_ONLY );      sql += " WHERE open_level<=" + unsignedIntToString( index::OL_GROUP_ONLY );
4218      sql += " AND certify_state=" + unsignedIntToString( index::CERTIFIED );      sql += " AND certify_state=" + unsignedIntToString( index::CERTIFIED );
# Line 4227  result_t getPrivateItemID( sessionid_t s Line 4230  result_t getPrivateItemID( sessionid_t s
4230              SQLBindCol( hstmt, 1, SQL_C_ULONG, &iid, 0, &cbIid );              SQLBindCol( hstmt, 1, SQL_C_ULONG, &iid, 0, &cbIid );
4231                            
4232              string notin;              string notin;
4233              sql = "SELECT item_id FROM " + dbprefix + "_xnpaccount_item_basic";              sql = "SELECT item_id FROM " + dbprefix + "_xoonips_item_basic";
4234              sql += " WHERE item_type_id !=" + unsignedIntToString( item::ITID_INDEX );              sql += " WHERE item_type_id !=" + unsignedIntToString( item::ITID_INDEX );
4235              sql += " AND item_type_id !=" + unsignedIntToString( item::ITID_BINDER );              sql += " AND item_type_id !=" + unsignedIntToString( item::ITID_BINDER );
4236              sql += " AND uid=" + unsignedIntToString( sess_uid );              sql += " AND uid=" + unsignedIntToString( sess_uid );
# Line 4320  result_t getGroupItemID( sessionid_t sid Line 4323  result_t getGroupItemID( sessionid_t sid
4323      if( ( ret = sessionID2UID( sid, &sess_uid ) ) != RES_OK ) return ret;      if( ( ret = sessionID2UID( sid, &sess_uid ) ) != RES_OK ) return ret;
4324            
4325      sql = "SELECT DISTINCT tlink.item_id";      sql = "SELECT DISTINCT tlink.item_id";
4326      sql += " FROM " + dbprefix + "_xnpaccount_index_item_link AS tlink";      sql += " FROM " + dbprefix + "_xoonips_index_item_link AS tlink";
4327      sql += " LEFT JOIN " + dbprefix + "_xnpaccount_index AS tx ON tlink.index_id=tx.index_id";      sql += " LEFT JOIN " + dbprefix + "_xoonips_index AS tx ON tlink.index_id=tx.index_id";
4328      sql += " LEFT JOIN " + dbprefix + "_xnpaccount_item_basic AS ti ON tlink.item_id=ti.item_id";      sql += " LEFT JOIN " + dbprefix + "_xoonips_item_basic AS ti ON tlink.item_id=ti.item_id";
4329          sql += " LEFT JOIN " + dbprefix + "_xnpaccount_groups_users_link AS tgulink ON tgulink.gid = tx.gid";          sql += " LEFT JOIN " + dbprefix + "_xoonips_groups_users_link AS tgulink ON tgulink.gid = tx.gid";
4330    
4331      sql += " WHERE open_level=" + unsignedIntToString( index::OL_GROUP_ONLY );      sql += " WHERE open_level=" + unsignedIntToString( index::OL_GROUP_ONLY );
4332      sql += " AND certify_state=" + unsignedIntToString( index::CERTIFIED );      sql += " AND certify_state=" + unsignedIntToString( index::CERTIFIED );
# Line 4405  result_t getItemIDByIndexID( sessionid_t Line 4408  result_t getItemIDByIndexID( sessionid_t
4408      userid_t uid;      userid_t uid;
4409            
4410      if( ( ret = sessionID2UID( sid, &uid ) ) != RES_OK ) return ret;      if( ( ret = sessionID2UID( sid, &uid ) ) != RES_OK ) return ret;
4411      sql = "SELECT DISTINCT tlink.item_id AS item_id FROM " + dbprefix + "_xnpaccount_index_item_link AS tlink";      sql = "SELECT DISTINCT tlink.item_id AS item_id FROM " + dbprefix + "_xoonips_index_item_link AS tlink";
4412      sql+= " LEFT JOIN " + dbprefix + "_xnpaccount_index AS tx ON tlink.index_id = tx.index_id";      sql+= " LEFT JOIN " + dbprefix + "_xoonips_index AS tx ON tlink.index_id = tx.index_id";
4413      sql+= " LEFT JOIN " + dbprefix + "_xnpaccount_item_basic AS ti ON tlink.item_id = ti.item_id";      sql+= " LEFT JOIN " + dbprefix + "_xoonips_item_basic AS ti ON tlink.item_id = ti.item_id";
4414      sql+= " LEFT JOIN " + dbprefix + "_xnpaccount_groups_users_link as tgulink ON tx.gid=tgulink.gid";      sql+= " LEFT JOIN " + dbprefix + "_xoonips_groups_users_link as tgulink ON tx.gid=tgulink.gid";
4415      sql+= " LEFT JOIN " + dbprefix + "_xnpaccount_session AS tsess ON tsess.uid=" + unsignedIntToString( uid );      sql+= " LEFT JOIN " + dbprefix + "_xoonips_session AS tsess ON tsess.uid=" + unsignedIntToString( uid );
4416      sql+= " AND tsess.sid=" + unsignedIntToString( sid );      sql+= " AND tsess.sid=" + unsignedIntToString( sid );
4417      sql+= " WHERE ( " + string( public_item_target_user_all( ) ? "1" : "0" );      sql+= " WHERE ( " + string( public_item_target_user_all( ) ? "1" : "0" );
4418      sql+=       " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC ) + " AND tsess.uid IS NULL";      sql+=       " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC ) + " AND tsess.uid IS NULL";
# Line 4500  result_t getItemIDByBinderID( sessionid_ Line 4503  result_t getItemIDByBinderID( sessionid_
4503      SQLLEN count = 0;      SQLLEN count = 0;
4504            
4505      if( dbtype == DBTYPE_MYSQL ){      if( dbtype == DBTYPE_MYSQL ){
4506          sql = "SELECT t1.item_id FROM " + dbprefix + "_xnpaccount_item_basic as t1, "          sql = "SELECT t1.item_id FROM " + dbprefix + "_xoonips_item_basic as t1, "
4507              + dbprefix + "_xnpbinder_binder_item_link as t2 ";              + dbprefix + "_xoonips_binder_item_link as t2 ";
4508          sql += " WHERE t1.item_id = t2.item_id";          sql += " WHERE t1.item_id = t2.item_id";
4509      }else if( dbtype == DBTYPE_SQLITE ){      }else if( dbtype == DBTYPE_SQLITE ){
4510          sql = "SELECT " + dbprefix + "_xnpaccount_item_basic.item_id FROM " + dbprefix + "_xnpaccount_item_basic, "          sql = "SELECT " + dbprefix + "_xoonips_item_basic.item_id FROM " + dbprefix + "_xoonips_item_basic, "
4511              + dbprefix + "_xnpbinder_binder_item_link as t2 ";              + dbprefix + "_xoonips_binder_item_link as t2 ";
4512          sql += " WHERE " + dbprefix + "_xnpaccount_item_basic.item_id = t2.item_id";          sql += " WHERE " + dbprefix + "_xoonips_item_basic.item_id = t2.item_id";
4513      }      }
4514      sql += " AND t2.binder_id=" + unsignedIntToString( binderid );      sql += " AND t2.binder_id=" + unsignedIntToString( binderid );
4515      sql += criteria2str( cri );      sql += criteria2str( cri );
# Line 4566  result_t getCertifyState( sessionid_t si Line 4569  result_t getCertifyState( sessionid_t si
4569      string sql;      string sql;
4570            
4571      sql = "SELECT certify_state";      sql = "SELECT certify_state";
4572      sql += " FROM " + dbprefix + "_xnpaccount_index_item_link";      sql += " FROM " + dbprefix + "_xoonips_index_item_link";
4573      sql += " WHERE item_id = " + unsignedIntToString( iid );      sql += " WHERE item_id = " + unsignedIntToString( iid );
4574      sql += " AND index_id = " + unsignedIntToString( xid );      sql += " AND index_id = " + unsignedIntToString( xid );
4575      syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );      syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );
# Line 4589  result_t setCertifyState( sessionid_t si Line 4592  result_t setCertifyState( sessionid_t si
4592  {  {
4593      if( !getCertifyPermission( sid, xid, iid, state ) ) return RES_NO_WRITE_ACCESS_RIGHT;      if( !getCertifyPermission( sid, xid, iid, state ) ) return RES_NO_WRITE_ACCESS_RIGHT;
4594            
4595      string sql = "UPDATE " + dbprefix + "_xnpaccount_index_item_link SET certify_state="      string sql = "UPDATE " + dbprefix + "_xoonips_index_item_link SET certify_state="
4596          + unsignedIntToString( state )          + unsignedIntToString( state )
4597          + " WHERE index_id=" + unsignedIntToString( xid )          + " WHERE index_id=" + unsignedIntToString( xid )
4598          + " AND item_id=" + unsignedIntToString( iid );          + " AND item_id=" + unsignedIntToString( iid );
# Line 4622  bool getCertifyPermission( sessionid_t s Line 4625  bool getCertifyPermission( sessionid_t s
4625      if( ( ret = sessionID2UID( sid, &sess_uid ) ) != RES_OK ) return ret;      if( ( ret = sessionID2UID( sid, &sess_uid ) ) != RES_OK ) return ret;
4626            
4627          sql = "SELECT DISTINCT tlink.index_id, tlink.item_id";          sql = "SELECT DISTINCT tlink.index_id, tlink.item_id";
4628          sql += " FROM " + dbprefix + "_xnpaccount_index_item_link AS tlink";          sql += " FROM " + dbprefix + "_xoonips_index_item_link AS tlink";
4629          sql += " LEFT JOIN " + dbprefix + "_xnpaccount_index AS tx ON tlink.index_id = tx.index_id";          sql += " LEFT JOIN " + dbprefix + "_xoonips_index AS tx ON tlink.index_id = tx.index_id";
4630          sql += " LEFT JOIN " + dbprefix + "_xnpaccount_item_basic AS ti ON tlink.item_id = ti.item_id";          sql += " LEFT JOIN " + dbprefix + "_xoonips_item_basic AS ti ON tlink.item_id = ti.item_id";
4631          sql += " LEFT JOIN " + dbprefix + "_xnpaccount_groups_users_link AS tgulink ON tgulink.gid = tx.gid";          sql += " LEFT JOIN " + dbprefix + "_xoonips_groups_users_link AS tgulink ON tgulink.gid = tx.gid";
4632          sql += " WHERE open_level<=" + unsignedIntToString( index::OL_GROUP_ONLY );          sql += " WHERE open_level<=" + unsignedIntToString( index::OL_GROUP_ONLY );
4633      sql += " AND item_type_id !=" + unsignedIntToString( item::ITID_INDEX );      sql += " AND item_type_id !=" + unsignedIntToString( item::ITID_INDEX );
4634          sql += " AND ti.item_id=" + unsignedIntToString( iid );          sql += " AND ti.item_id=" + unsignedIntToString( iid );
# Line 4668  result_t registerItem( sessionid_t sid, Line 4671  result_t registerItem( sessionid_t sid,
4671      if( !getIndexPermission( sid, xid, index::OP_REGISTER ) ) return RES_NO_WRITE_ACCESS_RIGHT;      if( !getIndexPermission( sid, xid, index::OP_REGISTER ) ) return RES_NO_WRITE_ACCESS_RIGHT;
4672            
4673      // register the item.      // register the item.
4674      sql = "INSERT INTO " + dbprefix + "_xnpaccount_index_item_link (index_id, item_id, certify_state) values ("      sql = "INSERT INTO " + dbprefix + "_xoonips_index_item_link (index_id, item_id, certify_state) values ("
4675          + unsignedIntToString(xid) + ","          + unsignedIntToString(xid) + ","
4676          + unsignedIntToString(iid) + ","          + unsignedIntToString(iid) + ","
4677          + unsignedIntToString( getInitialCertifyStateFromConfig( ) ) + ")";          + unsignedIntToString( getInitialCertifyStateFromConfig( ) ) + ")";
# Line 4676  result_t registerItem( sessionid_t sid, Line 4679  result_t registerItem( sessionid_t sid,
4679      ret = querySimple( "registerItem", sql );      ret = querySimple( "registerItem", sql );
4680      if( ret == RES_OK ){      if( ret == RES_OK ){
4681          // update last update date          // update last update date
4682          sql = "UPDATE " + dbprefix + "_xnpaccount_item_basic SET last_update_date="          sql = "UPDATE " + dbprefix + "_xoonips_item_basic SET last_update_date="
4683              + unsignedIntToString( time( NULL ) ) + " WHERE item_id="              + unsignedIntToString( time( NULL ) ) + " WHERE item_id="
4684              + unsignedIntToString( xid );              + unsignedIntToString( xid );
4685          syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );          syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );
# Line 4709  result_t unregisterItem( sessionid_t sid Line 4712  result_t unregisterItem( sessionid_t sid
4712      if( !getIndexPermission( sid, xid, index::OP_UNREGISTER ) ) return RES_NO_WRITE_ACCESS_RIGHT;      if( !getIndexPermission( sid, xid, index::OP_UNREGISTER ) ) return RES_NO_WRITE_ACCESS_RIGHT;
4713            
4714      // unregister the item.      // unregister the item.
4715      sql = "DELETE FROM " + dbprefix + "_xnpaccount_index_item_link";      sql = "DELETE FROM " + dbprefix + "_xoonips_index_item_link";
4716      sql += " WHERE index_id=" + unsignedIntToString(xid);      sql += " WHERE index_id=" + unsignedIntToString(xid);
4717      sql += " AND item_id=" + unsignedIntToString(iid);      sql += " AND item_id=" + unsignedIntToString(iid);
4718      syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );      syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );
4719      ret = querySimple( "unregisterItem", sql );      ret = querySimple( "unregisterItem", sql );
4720      if( ret == RES_OK ){      if( ret == RES_OK ){
4721          // update last update date          // update last update date
4722          sql = "UPDATE " + dbprefix + "_xnpaccount_item_basic SET last_update_date="          sql = "UPDATE " + dbprefix + "_xoonips_item_basic SET last_update_date="
4723              + unsignedIntToString( time( NULL ) ) + " WHERE item_id="              + unsignedIntToString( time( NULL ) ) + " WHERE item_id="
4724              + unsignedIntToString( xid );              + unsignedIntToString( xid );
4725          syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );          syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );
# Line 4749  result_t registerBinderItem( sessionid_t Line 4752  result_t registerBinderItem( sessionid_t
4752      if( !getItemPermission( sid, binderid, item::OP_MODIFY ) ) return RES_NO_WRITE_ACCESS_RIGHT;      if( !getItemPermission( sid, binderid, item::OP_MODIFY ) ) return RES_NO_WRITE_ACCESS_RIGHT;
4753            
4754      // register the item.      // register the item.
4755      sql = "INSERT INTO " + dbprefix + "_xnpbinder_binder_item_link (binder_id, item_id) values ("      sql = "INSERT INTO " + dbprefix + "_xoonips_binder_item_link (binder_id, item_id) values ("
4756          + unsignedIntToString(binderid) + ","          + unsignedIntToString(binderid) + ","
4757          + unsignedIntToString(iid) + ")";          + unsignedIntToString(iid) + ")";
4758      syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );      syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );
4759      ret = querySimple( "registerBinderItem", sql );      ret = querySimple( "registerBinderItem", sql );
4760      if( ret == RES_OK ){      if( ret == RES_OK ){
4761          // update binder's last update date          // update binder's last update date
4762          sql = "UPDATE " + dbprefix + "_xnpaccount_item_basic SET last_update_date="          sql = "UPDATE " + dbprefix + "_xoonips_item_basic SET last_update_date="
4763              + unsignedIntToString( time( NULL ) ) + " WHERE item_id="              + unsignedIntToString( time( NULL ) ) + " WHERE item_id="
4764              + unsignedIntToString( binderid );              + unsignedIntToString( binderid );
4765          syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );          syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );
# Line 4789  result_t unregisterBinderItem( sessionid Line 4792  result_t unregisterBinderItem( sessionid
4792      if( !getItemPermission( sid, binderid, item::OP_MODIFY ) ) return RES_NO_WRITE_ACCESS_RIGHT;      if( !getItemPermission( sid, binderid, item::OP_MODIFY ) ) return RES_NO_WRITE_ACCESS_RIGHT;
4793            
4794      // unregister the item.      // unregister the item.
4795      sql = "DELETE FROM " + dbprefix + "_xnpbinder_binder_item_link";      sql = "DELETE FROM " + dbprefix + "_xoonips_binder_item_link";
4796      sql += " WHERE binder_id=" + unsignedIntToString(binderid);      sql += " WHERE binder_id=" + unsignedIntToString(binderid);
4797      sql += " AND item_id=" + unsignedIntToString(iid);      sql += " AND item_id=" + unsignedIntToString(iid);
4798      syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );      syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );
4799      ret = querySimple( "unregisterBinderItem", sql );      ret = querySimple( "unregisterBinderItem", sql );
4800      if( ret == RES_OK ){      if( ret == RES_OK ){
4801          // update binder's last update date          // update binder's last update date
4802          sql = "UPDATE " + dbprefix + "_xnpaccount_item_basic SET last_update_date="          sql = "UPDATE " + dbprefix + "_xoonips_item_basic SET last_update_date="
4803              + unsignedIntToString( time( NULL ) ) + " WHERE item_id="              + unsignedIntToString( time( NULL ) ) + " WHERE item_id="
4804              + unsignedIntToString( binderid );              + unsignedIntToString( binderid );
4805          syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );          syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );
# Line 4825  bool getItemPermission( sessionid_t sid, Line 4828  bool getItemPermission( sessionid_t sid,
4828            
4829      if( sessionID2UID( sid, &uid ) != RES_OK ) return false;      if( sessionID2UID( sid, &uid ) != RES_OK ) return false;
4830      if( op == item::OP_READ ){      if( op == item::OP_READ ){
4831          sql = "SELECT DISTINCT tlink.item_id FROM " + dbprefix + "_xnpaccount_index_item_link AS tlink";          sql = "SELECT DISTINCT tlink.item_id FROM " + dbprefix + "_xoonips_index_item_link AS tlink";
4832          sql+= " LEFT JOIN " + dbprefix + "_xnpaccount_index AS tx ON tlink.index_id = tx.index_id";          sql+= " LEFT JOIN " + dbprefix + "_xoonips_index AS tx ON tlink.index_id = tx.index_id";
4833          sql+= " LEFT JOIN " + dbprefix + "_xnpaccount_item_basic AS ti ON tlink.item_id = ti.item_id";          sql+= " LEFT JOIN " + dbprefix + "_xoonips_item_basic AS ti ON tlink.item_id = ti.item_id";
4834          sql+= " LEFT JOIN " + dbprefix + "_xnpaccount_groups_users_link as tgulink ON tx.gid=tgulink.gid";          sql+= " LEFT JOIN " + dbprefix + "_xoonips_groups_users_link as tgulink ON tx.gid=tgulink.gid";
4835          sql+= " LEFT JOIN " + dbprefix + "_xnpaccount_session AS tsess ON tsess.uid=" + unsignedIntToString( uid );          sql+= " LEFT JOIN " + dbprefix + "_xoonips_session AS tsess ON tsess.uid=" + unsignedIntToString( uid );
4836          sql+= " AND tsess.sid=" + unsignedIntToString( sid );          sql+= " AND tsess.sid=" + unsignedIntToString( sid );
4837          sql+= " WHERE ( " + string( public_item_target_user_all( ) ? "1" : "0" );          sql+= " WHERE ( " + string( public_item_target_user_all( ) ? "1" : "0" );
4838          sql+=       " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC ) + " AND tsess.uid IS NULL";          sql+=       " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC ) + " AND tsess.uid IS NULL";
# Line 4858  bool getItemPermission( sessionid_t sid, Line 4861  bool getItemPermission( sessionid_t sid,
4861          }          }
4862      }else if( op == item::OP_MODIFY || op == item::OP_DELETE ){      }else if( op == item::OP_MODIFY || op == item::OP_DELETE ){
4863          //TODO 条件追加:todo自分のアイテムでも承認待ち状態なら編集・削除できない          //TODO 条件追加:todo自分のアイテムでも承認待ち状態なら編集・削除できない
4864          sql = "SELECT item_id FROM " + dbprefix + "_xnpaccount_item_basic";          sql = "SELECT item_id FROM " + dbprefix + "_xoonips_item_basic";
4865          sql += " WHERE uid=" + unsignedIntToString( uid );          sql += " WHERE uid=" + unsignedIntToString( uid );
4866          sql += " AND item_id=" + unsignedIntToString( iid );          sql += " AND item_id=" + unsignedIntToString( iid );
4867          syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );          syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );
# Line 4891  bool getIndexPermission( sessionid_t sid Line 4894  bool getIndexPermission( sessionid_t sid
4894      if( isModeratorBySession( sid ) );      if( isModeratorBySession( sid ) );
4895      else if( xid == item::IID_BINDERS );      else if( xid == item::IID_BINDERS );
4896      else if( sessionID2UID( sid, &uid ) == RES_OK ){      else if( sessionID2UID( sid, &uid ) == RES_OK ){
4897          sql = "SELECT index_id FROM " + dbprefix + "_xnpaccount_index as tx";          sql = "SELECT index_id FROM " + dbprefix + "_xoonips_index as tx";
4898          sql += " LEFT JOIN " + dbprefix + "_xnpaccount_users AS tuser ON tx.uid=tuser.uid";          sql += " LEFT JOIN " + dbprefix + "_xoonips_users AS tuser ON tx.uid=tuser.uid";
4899          sql += " LEFT JOIN " + dbprefix + "_xnpaccount_groups AS tgroup ON tx.gid=tgroup.gid";          sql += " LEFT JOIN " + dbprefix + "_xoonips_groups AS tgroup ON tx.gid=tgroup.gid";
4900          sql += " LEFT JOIN " + dbprefix + "_xnpaccount_groups_users_link AS tlink ON tx.gid=tlink.gid";          sql += " LEFT JOIN " + dbprefix + "_xoonips_groups_users_link AS tlink ON tx.gid=tlink.gid";
4901          sql += " WHERE ( tx.open_level=1";          sql += " WHERE ( tx.open_level=1";
4902          sql += " OR tx.open_level=2 AND tlink.uid=" + unsignedIntToString( uid );          sql += " OR tx.open_level=2 AND tlink.uid=" + unsignedIntToString( uid );
4903          sql += " OR tx.open_level=3 AND tx.uid=" + unsignedIntToString( uid ) + " )";          sql += " OR tx.open_level=3 AND tx.uid=" + unsignedIntToString( uid ) + " )";
# Line 4938  bool isValidSessionID( sessionid_t sid ) Line 4941  bool isValidSessionID( sessionid_t sid )
4941            
4942      time_t now = time(NULL);      time_t now = time(NULL);
4943      if( dbtype == DBTYPE_MYSQL ){      if( dbtype == DBTYPE_MYSQL ){
4944          sql = "SELECT * FROM " + dbprefix + "_xnpaccount_session WHERE sid=" + unsignedIntToString( sid )          sql = "SELECT * FROM " + dbprefix + "_xoonips_session WHERE sid=" + unsignedIntToString( sid )
4945              + " AND unix_timestamp(timestamp) > " + unsignedIntToString(now-SESSION_TIMEOUT_SEC);              + " AND unix_timestamp(timestamp) > " + unsignedIntToString(now-SESSION_TIMEOUT_SEC);
4946      }else if( dbtype == DBTYPE_SQLITE ){      }else if( dbtype == DBTYPE_SQLITE ){
4947          sql = "SELECT * FROM " + dbprefix + "_xnpaccount_session WHERE sid=" + unsignedIntToString( sid )          sql = "SELECT * FROM " + dbprefix + "_xoonips_session WHERE sid=" + unsignedIntToString( sid )
4948              + " AND timestamp > " + unsignedIntToString(now-SESSION_TIMEOUT_SEC);              + " AND timestamp > " + unsignedIntToString(now-SESSION_TIMEOUT_SEC);
4949      }      }
4950            
# Line 4977  bool isValidSessionID( sessionid_t sid ) Line 4980  bool isValidSessionID( sessionid_t sid )
4980      if ( ret == true ){      if ( ret == true ){
4981          // timestampを更新する          // timestampを更新する
4982          if( dbtype == DBTYPE_MYSQL ){          if( dbtype == DBTYPE_MYSQL ){
4983              sql = "UPDATE " + dbprefix + "_xnpaccount_session set timestamp=from_unixtime(" + unsignedIntToString(now)              sql = "UPDATE " + dbprefix + "_xoonips_session set timestamp=from_unixtime(" + unsignedIntToString(now)
4984                + ") WHERE sid=" + unsignedIntToString( sid );                + ") WHERE sid=" + unsignedIntToString( sid );
4985          }else if( dbtype == DBTYPE_SQLITE ){          }else if( dbtype == DBTYPE_SQLITE ){
4986              sql = "UPDATE " + dbprefix + "_xnpaccount_session set timestamp=" + unsignedIntToString(now)              sql = "UPDATE " + dbprefix + "_xoonips_session set timestamp=" + unsignedIntToString(now)
4987                + " WHERE sid=" + unsignedIntToString( sid );                + " WHERE sid=" + unsignedIntToString( sid );
4988          }          }
4989          querySimple("isValidSession", sql);          querySimple("isValidSession", sql);
# Line 5005  static result_t getIndexesInternal( sess Line 5008  static result_t getIndexesInternal( sess
5008      SQLRETURN sqlcode;      SQLRETURN sqlcode;
5009      SQLHANDLE hstmt = NULL;          SQLHANDLE hstmt = NULL;    
5010            
5011      string groupUserLinkTable = dbprefix + "_xnpaccount_groups_users_link";      string groupUserLinkTable = dbprefix + "_xoonips_groups_users_link";
5012      string indexTable = dbprefix + "_xnpaccount_index";      string indexTable = dbprefix + "_xoonips_index";
5013      string itemTable = dbprefix + "_xnpaccount_item_basic";      string itemTable = dbprefix + "_xoonips_item_basic";
5014      string uidString = unsignedIntToString( uid );      string uidString = unsignedIntToString( uid );
5015      if ( cond == 0 )      if ( cond == 0 )
5016          cond = " 1 ";          cond = " 1 ";
# Line 5165  bool isGroupMemberInternal( sessionid_t Line 5168  bool isGroupMemberInternal( sessionid_t
5168      string sql;      string sql;
5169      SQLLEN count = 0;      SQLLEN count = 0;
5170            
5171      sql = "SELECT * FROM " + dbprefix + "_xnpaccount_groups_users_link ";      sql = "SELECT * FROM " + dbprefix + "_xoonips_groups_users_link ";
5172      sql += "WHERE gid=" + string( unsignedIntToString( gid ) );      sql += "WHERE gid=" + string( unsignedIntToString( gid ) );
5173      sql += " AND uid=" + string( unsignedIntToString( uid ) );      sql += " AND uid=" + string( unsignedIntToString( uid ) );
5174      if( countResultRows( sql.c_str(), &count ) == RES_OK ){      if( countResultRows( sql.c_str(), &count ) == RES_OK ){
# Line 5296  bool isIndexWritable( sessionid_t sid, Line 5299  bool isIndexWritable( sessionid_t sid,
5299  result_t getNewSortNumber( indexid_t parentXID, unsigned int *sortNumber ){  result_t getNewSortNumber( indexid_t parentXID, unsigned int *sortNumber ){
5300      if( hdbc == NULL ) return RES_DB_NOT_INITIALIZED;      if( hdbc == NULL ) return RES_DB_NOT_INITIALIZED;
5301            
5302      string sql = "SELECT max(sort_number) FROM " + dbprefix + "_xnpaccount_index WHERE parent_index_id=" + unsignedIntToString(parentXID);      string sql = "SELECT max(sort_number) FROM " + dbprefix + "_xoonips_index WHERE parent_index_id=" + unsignedIntToString(parentXID);
5303      unsigned int u;      unsigned int u;
5304      result_t result = queryGetUnsignedInt( "getNewSortNumber", sql, &u );      result_t result = queryGetUnsignedInt( "getNewSortNumber", sql, &u );
5305      if ( result == RES_OK ){      if ( result == RES_OK ){
# Line 5401  static result_t insertIndexInternal( ses Line 5404  static result_t insertIndexInternal( ses
5404      result_t result = insertItem( sid, index, &iid );      result_t result = insertItem( sid, index, &iid );
5405      if ( result == RES_OK ){      if ( result == RES_OK ){
5406          string nullString("NULL");          string nullString("NULL");
5407          string sql = "INSERT INTO " + dbprefix + "_xnpaccount_index ( index_id, parent_index_id, uid, gid, open_level, sort_number ) values ( "          string sql = "INSERT INTO " + dbprefix + "_xoonips_index ( index_id, parent_index_id, uid, gid, open_level, sort_number ) values ( "
5408           + unsignedIntToString(iid) + ","           + unsignedIntToString(iid) + ","
5409           + unsignedIntToString(index->getParentIndexID()) + ","           + unsignedIntToString(index->getParentIndexID()) + ","
5410           + ( index->getOpenLevel() == index::OL_PRIVATE    ? unsignedIntToString(index->getOwnerUID()) : nullString ) + ","           + ( index->getOpenLevel() == index::OL_PRIVATE    ? unsignedIntToString(index->getOwnerUID()) : nullString ) + ","
# Line 5413  static result_t insertIndexInternal( ses Line 5416  static result_t insertIndexInternal( ses
5416              *xid = iid;              *xid = iid;
5417          }          }
5418          else {          else {
5419              string sql2 = "DELETE FROM " + dbprefix + "_xnpaccount_item_basic where item_id=" + unsignedIntToString( iid  );              string sql2 = "DELETE FROM " + dbprefix + "_xoonips_item_basic where item_id=" + unsignedIntToString( iid  );
5420              querySimple( "insertIndexInternal", sql2 );              querySimple( "insertIndexInternal", sql2 );
5421              string message( "in insertIndexInternal: bad uid/gid/openlevel. sql=" );              string message( "in insertIndexInternal: bad uid/gid/openlevel. sql=" );
5422              message = message + sql;              message = message + sql;
# Line 5462  result_t insertIndex( sessionid_t sid, i Line 5465  result_t insertIndex( sessionid_t sid, i
5465          else {          else {
5466              // 同名の子インデックスがあれば、蹴る              // 同名の子インデックスがあれば、蹴る
5467              bool conflict = false;              bool conflict = false;
5468                /* titleの衝突を許可するよう修正。20050516メールより。警告はPHP側で出す。
5469              result = checkTitleConflict( sid, index->getParentIndexID(), index->getTitle(), &conflict );              result = checkTitleConflict( sid, index->getParentIndexID(), index->getTitle(), &conflict );
5470              if ( result != RES_OK ){              if ( result != RES_OK ){
5471                  ;                  ;
# Line 5470  result_t insertIndex( sessionid_t sid, i Line 5474  result_t insertIndex( sessionid_t sid, i
5474                  setLastErrorString( "in insertIndex: title conflict" );                  setLastErrorString( "in insertIndex: title conflict" );
5475                  result = RES_ERROR;  // エラー: 同名の子indexが既に存在する。                  result = RES_ERROR;  // エラー: 同名の子indexが既に存在する。
5476              }              }
5477              else if ( index->getTitle()[0] == '\0' ){              else */
5478                if ( index->getTitle()[0] == '\0' ){
5479                  // titleを空文字列にできない                  // titleを空文字列にできない
5480                  setLastErrorString( "in insertIndex: empty title" );                  setLastErrorString( "in insertIndex: empty title" );
5481                  result = RES_ERROR;                  result = RES_ERROR;
# Line 5509  result_t getDescendantIndexID( int xid, Line 5514  result_t getDescendantIndexID( int xid,
5514      // todo      // todo
5515      if( hdbc == NULL ) return RES_DB_NOT_INITIALIZED;      if( hdbc == NULL ) return RES_DB_NOT_INITIALIZED;
5516            
5517      string cond = "select count(*) from " + dbprefix + "_xnpaccount_index";      string cond = "select count(*) from " + dbprefix + "_xoonips_index";
5518      unsigned int allIndexCount;      unsigned int allIndexCount;
5519      result_t result = queryGetUnsignedInt( "getDescendantIndexID", cond, &allIndexCount );      result_t result = queryGetUnsignedInt( "getDescendantIndexID", cond, &allIndexCount );
5520      if ( result != RES_OK )      if ( result != RES_OK )
# Line 5543  result_t getDescendantIndexID( int xid, Line 5548  result_t getDescendantIndexID( int xid,
5548          SQLRETURN sqlcode;          SQLRETURN sqlcode;
5549          SQLHANDLE hstmt = NULL;              SQLHANDLE hstmt = NULL;    
5550          if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {          if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
5551              string sql = "SELECT index_id FROM " + dbprefix + "_xnpaccount_index WHERE parent_index_id=" + unsignedIntToString(xid);              string sql = "SELECT index_id FROM " + dbprefix + "_xoonips_index WHERE parent_index_id=" + unsignedIntToString(xid);
5552              if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){              if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){
5553                  SQLUINTEGER sXID = 0;                  SQLUINTEGER sXID = 0;
5554                  SQLLEN len = 0;                  SQLLEN len = 0;
# Line 5594  typedef struct { Line 5599  typedef struct {
5599   */   */
5600  static result_t getAllIndexLink( indexLink_t **links, int *linksLen ){  static result_t getAllIndexLink( indexLink_t **links, int *linksLen ){
5601      result_t result = RES_OK;      result_t result = RES_OK;
5602      string sql("SELECT COUNT(*) from " + dbprefix + "_xnpaccount_index");      string sql("SELECT COUNT(*) from " + dbprefix + "_xoonips_index");
5603      int totalIndexCount;      int totalIndexCount;
5604      result = getCountInternal( "getAllIndexLink", sql, &totalIndexCount );      result = getCountInternal( "getAllIndexLink", sql, &totalIndexCount );
5605            
# Line 5605  static result_t getAllIndexLink( indexLi Line 5610  static result_t getAllIndexLink( indexLi
5610      SQLRETURN sqlcode;      SQLRETURN sqlcode;
5611      SQLHANDLE hstmt = NULL;          SQLHANDLE hstmt = NULL;    
5612      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
5613          string sql("SELECT index_id, parent_index_id FROM " + dbprefix + "_xnpaccount_index ORDER BY index_id");          string sql("SELECT index_id, parent_index_id FROM " + dbprefix + "_xoonips_index ORDER BY index_id");
5614          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){
5615              SQLUINTEGER xid = 0, parentXID = 0;              SQLUINTEGER xid = 0, parentXID = 0;
5616              SQLLEN len1 = 0, len2 = 0;              SQLLEN len1 = 0, len2 = 0;
# Line 5652  static result_t checkTitleConflict( sess Line 5657  static result_t checkTitleConflict( sess
5657      SQLHANDLE hstmt = NULL;          SQLHANDLE hstmt = NULL;    
5658      result_t result = RES_ERROR;      result_t result = RES_ERROR;
5659            
5660      string sql( "SELECT count(*) from " + dbprefix + "_xnpaccount_index as tx "      string sql( "SELECT count(*) from " + dbprefix + "_xoonips_index as tx "
5661        " left join " + dbprefix + "_xnpaccount_item_basic as ti on ti.item_id=tx.index_id "        " left join " + dbprefix + "_xoonips_item_basic as ti on ti.item_id=tx.index_id "
5662        " where parent_index_id = " + unsignedIntToString( parentIndexID ) +        " where parent_index_id = " + unsignedIntToString( parentIndexID ) +
5663        "   and ti.title = ? " );        "   and ti.title = ? " );
5664      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
# Line 5760  result_t updateIndexInternal( sessionid_ Line 5765  result_t updateIndexInternal( sessionid_
5765      }      }
5766            
5767      // リネーム・移動でtitleが衝突するなら、エラー。      // リネーム・移動でtitleが衝突するなら、エラー。
5768        /* titleの衝突を許可するよう修正。20050516メールより。警告はPHP側で出す。
5769      bool conflict = false;      bool conflict = false;
5770      result = checkTitleConflict( sid, newIndex->getParentIndexID(), newIndex->getTitle(), &conflict );      result = checkTitleConflict( sid, newIndex->getParentIndexID(), newIndex->getTitle(), &conflict );
5771      if ( result != RES_OK )      if ( result != RES_OK )
# Line 5768  result_t updateIndexInternal( sessionid_ Line 5774  result_t updateIndexInternal( sessionid_
5774          setLastErrorString( "in updateIndexInternal: title conflict" );          setLastErrorString( "in updateIndexInternal: title conflict" );
5775          return RES_ERROR;          return RES_ERROR;
5776      }      }
5777            */
5778      if ( move ){      if ( move ){
5779          indexid_t *descXID = 0;          indexid_t *descXID = 0;
5780          int descXIDLen;          int descXIDLen;
# Line 5810  result_t updateIndexInternal( sessionid_ Line 5816  result_t updateIndexInternal( sessionid_
5816      SQLRETURN sqlcode;      SQLRETURN sqlcode;
5817      SQLHANDLE hstmt = NULL;      SQLHANDLE hstmt = NULL;
5818      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
5819          string sql("UPDATE " +  dbprefix + "_xnpaccount_index set"          string sql("UPDATE " +  dbprefix + "_xoonips_index set"
5820              " parent_index_id = " + unsignedIntToString(newIndex->getParentIndexID()) +              " parent_index_id = " + unsignedIntToString(newIndex->getParentIndexID()) +
5821              ", uid = " + ownerUIDString +              ", uid = " + ownerUIDString +
5822              ", gid = " + ownerGIDString +              ", gid = " + ownerGIDString +
# Line 5819  result_t updateIndexInternal( sessionid_ Line 5825  result_t updateIndexInternal( sessionid_
5825              " where index_id = " + unsignedIntToString(newIndex->getIndexID()) );              " where index_id = " + unsignedIntToString(newIndex->getIndexID()) );
5826                    
5827          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){          if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){
5828              string sql("UPDATE " +  dbprefix + "_xnpaccount_item_basic set"              string sql("UPDATE " +  dbprefix + "_xoonips_item_basic set"
5829                  " item_type_id = " + unsignedIntToString(newIndex->getItemTypeID()) +                  " item_type_id = " + unsignedIntToString(newIndex->getItemTypeID()) +
5830                  ", uid = " + unsignedIntToString(newIndex->getContributorUID()) +                  ", uid = " + unsignedIntToString(newIndex->getContributorUID()) +
5831                  ", last_update_date = " + unsignedIntToString(newIndex->getLastUpdateDate()) +                  ", last_update_date = " + unsignedIntToString(newIndex->getLastUpdateDate()) +
# Line 5879  result_t updateIndexInternal( sessionid_ Line 5885  result_t updateIndexInternal( sessionid_
5885              }              }
5886              int i;              int i;
5887              for ( i = 0; i < descXIDLen; i++ ){              for ( i = 0; i < descXIDLen; i++ ){
5888                  string sql = "UPDATE " + dbprefix + "_xnpaccount_index set "                  string sql = "UPDATE " + dbprefix + "_xoonips_index set "
5889                    " uid=" + ownerUIDString +                    " uid=" + ownerUIDString +
5890                    ", gid=" + ownerGIDString +                    ", gid=" + ownerGIDString +
5891                    ", open_level=" + ownerOpenLevelString +                    ", open_level=" + ownerOpenLevelString +
# Line 6009  result_t deleteIndex( sessionid_t sid, Line 6015  result_t deleteIndex( sessionid_t sid,
6015                  string strParentXID = unsignedIntToString( index->getParentIndexID() );                  string strParentXID = unsignedIntToString( index->getParentIndexID() );
6016                  for ( int i = descXIDLen-1; i >= 0; i-- ){ // 逆方向にして、途中で失敗した場合の惨事を防ぐ。descXIDは幅優先探索順に並んでいるので。                  for ( int i = descXIDLen-1; i >= 0; i-- ){ // 逆方向にして、途中で失敗した場合の惨事を防ぐ。descXIDは幅優先探索順に並んでいるので。
6017                      string strXID = unsignedIntToString(descXID[i]);                      string strXID = unsignedIntToString(descXID[i]);
6018                      string linkTable = dbprefix + "_xnpaccount_index_item_link";                      string linkTable = dbprefix + "_xoonips_index_item_link";
6019                                            
6020                      // descXID[i] のアイテムの中で、被参照数が1のものを列挙 → 迷子にならないように移動                      // descXID[i] のアイテムの中で、被参照数が1のものを列挙 → 迷子にならないように移動
6021                      // HAVINGを使うべき? "select item_id, count(*) as v1, sum(index_id=$index_id) as v2 from $link_table having v1=1 and v2=1"                      // HAVINGを使うべき? "select item_id, count(*) as v1, sum(index_id=$index_id) as v2 from $link_table having v1=1 and v2=1"
# Line 6046  result_t deleteIndex( sessionid_t sid, Line 6052  result_t deleteIndex( sessionid_t sid,
6052                      result = querySimple( functionName, sql );                      result = querySimple( functionName, sql );
6053                      if ( result == RES_OK ){                      if ( result == RES_OK ){
6054                          // descXID[i] を削除                          // descXID[i] を削除
6055                          sql = "DELETE from " + dbprefix + "_xnpaccount_item_basic where item_id =" + strXID;                          sql = "DELETE from " + dbprefix + "_xoonips_item_basic where item_id =" + strXID;
6056                          result = querySimple( functionName, sql );                          result = querySimple( functionName, sql );
6057                          if ( result == RES_OK ){                          if ( result == RES_OK ){
6058                              sql = "DELETE from " + dbprefix + "_xnpaccount_index      where index_id=" + strXID;                              sql = "DELETE from " + dbprefix + "_xoonips_index      where index_id=" + strXID;
6059                              result = querySimple( functionName, sql );                              result = querySimple( functionName, sql );
6060                          }                          }
6061                      }                      }
# Line 6109  result_t swapIndexSortNumber( sessionid_ Line 6115  result_t swapIndexSortNumber( sessionid_
6115                      if ( isWritableInternal( sid, uid, index1 ) && isWritableInternal( sid, uid, index2 ) ){                      if ( isWritableInternal( sid, uid, index1 ) && isWritableInternal( sid, uid, index2 ) ){
6116                          string xid1String = unsignedIntToString(xid1);                          string xid1String = unsignedIntToString(xid1);
6117                          string xid2String = unsignedIntToString(xid2);                          string xid2String = unsignedIntToString(xid2);
6118                          string indexTable = dbprefix + "_xnpaccount_index";                          string indexTable = dbprefix + "_xoonips_index";
6119                          string sql1 = "UPDATE " + indexTable + " set sort_number=0 WHERE index_id=" + xid1String;                          string sql1 = "UPDATE " + indexTable + " set sort_number=0 WHERE index_id=" + xid1String;
6120                          string sql2 = "UPDATE " + indexTable + " set sort_number=" + unsignedIntToString(index1->getSortNumber()) + " WHERE index_id=" + xid2String;                          string sql2 = "UPDATE " + indexTable + " set sort_number=" + unsignedIntToString(index1->getSortNumber()) + " WHERE index_id=" + xid2String;
6121                          string sql3 = "UPDATE " + indexTable + " set sort_number=" + unsignedIntToString(index2->getSortNumber()) + " WHERE index_id=" + xid1String;                          string sql3 = "UPDATE " + indexTable + " set sort_number=" + unsignedIntToString(index2->getSortNumber()) + " WHERE index_id=" + xid1String;
# Line 6163  result_t setConfigValue( const char* key Line 6169  result_t setConfigValue( const char* key
6169      result_t ret = RES_ERROR;      result_t ret = RES_ERROR;
6170            
6171      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
6172          string sql( "UPDATE " + dbprefix + "_xnpaccount_config SET value=? WHERE name=?");          string sql( "UPDATE " + dbprefix + "_xoonips_config SET value=? WHERE name=?");
6173          syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );          syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );
6174          sqlcode = SQLPrepare(hstmt, (SQLCHAR*)sql.c_str(), SQL_NTS);          sqlcode = SQLPrepare(hstmt, (SQLCHAR*)sql.c_str(), SQL_NTS);
6175          if( sqlcode == SQL_SUCCESS || sqlcode == SQL_SUCCESS_WITH_INFO ){          if( sqlcode == SQL_SUCCESS || sqlcode == SQL_SUCCESS_WITH_INFO ){
# Line 6174  result_t setConfigValue( const char* key Line 6180  result_t setConfigValue( const char* key
6180                  if( ( sqlcode = SQLRowCount( hstmt, &count ) ) == SQL_SUCCESS && count > 0 ){                  if( ( sqlcode = SQLRowCount( hstmt, &count ) ) == SQL_SUCCESS && count > 0 ){
6181                      ret = RES_OK;                      ret = RES_OK;
6182                  }else if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt2 ) ) == SQL_SUCCESS ) {                  }else if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt2 ) ) == SQL_SUCCESS ) {
6183                      string sql( "INSERT INTO " + dbprefix + "_xnpaccount_config (name,value) VALUES (?,?)");                      string sql( "INSERT INTO " + dbprefix + "_xoonips_config (name,value) VALUES (?,?)");
6184                      syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );                      syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );
6185                      sqlcode = SQLPrepare(hstmt2, (SQLCHAR*)sql.c_str(), SQL_NTS);                      sqlcode = SQLPrepare(hstmt2, (SQLCHAR*)sql.c_str(), SQL_NTS);
6186                      if( sqlcode == SQL_SUCCESS || sqlcode == SQL_SUCCESS_WITH_INFO ){                      if( sqlcode == SQL_SUCCESS || sqlcode == SQL_SUCCESS_WITH_INFO ){
# Line 6244  result_t getConfigValue( const char* key Line 6250  result_t getConfigValue( const char* key
6250      result_t ret = RES_ERROR;      result_t ret = RES_ERROR;
6251            
6252      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
6253          string sql("SELECT value FROM " + dbprefix + "_xnpaccount_config WHERE name=?");          string sql("SELECT value FROM " + dbprefix + "_xoonips_config WHERE name=?");
6254          sqlcode = SQLPrepare(hstmt, (SQLCHAR*)sql.c_str(), SQL_NTS);          sqlcode = SQLPrepare(hstmt, (SQLCHAR*)sql.c_str(), SQL_NTS);
6255          if( sqlcode == SQL_SUCCESS || sqlcode == SQL_SUCCESS_WITH_INFO ){          if( sqlcode == SQL_SUCCESS || sqlcode == SQL_SUCCESS_WITH_INFO ){
6256              SQLBindParameter(hstmt,  1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_LONGVARCHAR, XNP_CONFIG_NAME_LEN, 0, (SQLCHAR*)key, strlen(key), &cbKey );              SQLBindParameter(hstmt,  1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_LONGVARCHAR, XNP_CONFIG_NAME_LEN, 0, (SQLCHAR*)key, strlen(key), &cbKey );
# Line 6346  result_t getChangeLogs( sessionid_t sid, Line 6352  result_t getChangeLogs( sessionid_t sid,
6352      SQLLEN len = 0;      SQLLEN len = 0;
6353      time_t log_date = 0;      time_t log_date = 0;
6354            
6355      sql = "SELECT log_date, log FROM " +  dbprefix + "_xnpaccount_changelog"      sql = "SELECT log_date, log FROM " +  dbprefix + "_xoonips_changelog"
6356          + " WHERE item_id=" + unsignedIntToString( itemid )          + " WHERE item_id=" + unsignedIntToString( itemid )
6357          + " ORDER BY log_date DESC, log_id DESC";          + " ORDER BY log_date DESC, log_id DESC";
6358      if( countResultRows( sql.c_str(), &count ) == RES_OK ){      if( countResultRows( sql.c_str(), &count ) == RES_OK ){
# Line 6410  result_t insertChangeLog( sessionid_t si Line 6416  result_t insertChangeLog( sessionid_t si
6416      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {      if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
6417          SQLLEN cbLog = SQL_NTS;          SQLLEN cbLog = SQL_NTS;
6418          string sql;          string sql;
6419          sql = "INSERT INTO " + dbprefix + "_xnpaccount_changelog (item_id, log_date, log) VALUES (";          sql = "INSERT INTO " + dbprefix + "_xoonips_changelog (item_id, log_date, log) VALUES (";
6420          sql += unsignedIntToString( itemid ) + ", ";          sql += unsignedIntToString( itemid ) + ", ";
6421          sql += unsignedIntToString( now ) + ", ?)";          sql += unsignedIntToString( now ) + ", ?)";
6422          syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );          syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );
# Line 6420  result_t insertChangeLog( sessionid_t si Line 6426  result_t insertChangeLog( sessionid_t si
6426                               (SQLCHAR*)( log ), strlen( log ), &cbLog );                               (SQLCHAR*)( log ), strlen( log ), &cbLog );
6427              if( ( sqlcode = SQLExecute( hstmt ) ) == SQL_SUCCESS ){              if( ( sqlcode = SQLExecute( hstmt ) ) == SQL_SUCCESS ){
6428                  // update last update date                  // update last update date
6429                  sql = "UPDATE " + dbprefix + "_xnpaccount_item_basic SET last_update_date="                  sql = "UPDATE " + dbprefix + "_xoonips_item_basic SET last_update_date="
6430                      + unsignedIntToString( now ) + " WHERE item_id="                      + unsignedIntToString( now ) + " WHERE item_id="
6431                      + unsignedIntToString( itemid );                      + unsignedIntToString( itemid );
6432                  syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );                  syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );
# Line 6866  result_t getUncertifiedLink( sessionid_t Line 6872  result_t getUncertifiedLink( sessionid_t
6872      if( ( ret = sessionID2UID( sid, &sess_uid ) ) != RES_OK ) return ret;      if( ( ret = sessionID2UID( sid, &sess_uid ) ) != RES_OK ) return ret;
6873            
6874          sql = "SELECT DISTINCT tlink.index_id, tlink.item_id";          sql = "SELECT DISTINCT tlink.index_id, tlink.item_id";
6875          sql += " FROM " + dbprefix + "_xnpaccount_index_item_link AS tlink";          sql += " FROM " + dbprefix + "_xoonips_index_item_link AS tlink";
6876          sql += " LEFT JOIN " + dbprefix + "_xnpaccount_index AS tx ON tlink.index_id = tx.index_id";          sql += " LEFT JOIN " + dbprefix + "_xoonips_index AS tx ON tlink.index_id = tx.index_id";
6877          sql += " LEFT JOIN " + dbprefix + "_xnpaccount_item_basic AS ti ON tlink.item_id = ti.item_id";          sql += " LEFT JOIN " + dbprefix + "_xoonips_item_basic AS ti ON tlink.item_id = ti.item_id";
6878          sql += " LEFT JOIN " + dbprefix + "_xnpaccount_groups_users_link AS tgulink ON tgulink.gid = tx.gid";          sql += " LEFT JOIN " + dbprefix + "_xoonips_groups_users_link AS tgulink ON tgulink.gid = tx.gid";
6879          sql += " WHERE open_level<=" + unsignedIntToString( index::OL_GROUP_ONLY );          sql += " WHERE open_level<=" + unsignedIntToString( index::OL_GROUP_ONLY );
6880      sql += " AND certify_state=" + unsignedIntToString( index::CERTIFY_REQUIRED );      sql += " AND certify_state=" + unsignedIntToString( index::CERTIFY_REQUIRED );
6881      sql += " AND item_type_id !=" + unsignedIntToString( item::ITID_INDEX );      sql += " AND item_type_id !=" + unsignedIntToString( item::ITID_INDEX );
# Line 6932  result_t getItemTypes( const itemtype_t* Line 6938  result_t getItemTypes( const itemtype_t*
6938      SQLRETURN sqlcode;      SQLRETURN sqlcode;
6939      SQLLEN count = 0;      SQLLEN count = 0;
6940            
6941          sql = "SELECT item_type_id, name, mid, display_name ";          sql = "SELECT item_type_id, name, mid, display_name, viewphp ";
6942          sql += " FROM " + dbprefix + "_xnpaccount_item_type order by item_type_id";          sql += " FROM " + dbprefix + "_xoonips_item_type order by item_type_id";
6943      syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );      syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );
6944      if( countResultRows( sql.c_str(), &count ) == RES_OK ){      if( countResultRows( sql.c_str(), &count ) == RES_OK ){
6945          dst = new itemtype_t[ count ];          dst = new itemtype_t[ count ];
# Line 6949  result_t getItemTypes( const itemtype_t* Line 6955  result_t getItemTypes( const itemtype_t*
6955              SQLINTEGER mid = 0;              SQLINTEGER mid = 0;
6956              SQLCHAR name[XNP_ITEMTYPE_NAME_LEN+1];              SQLCHAR name[XNP_ITEMTYPE_NAME_LEN+1];
6957              SQLCHAR display_name[XNP_ITEMTYPE_DISPLAY_NAME_LEN+1];              SQLCHAR display_name[XNP_ITEMTYPE_DISPLAY_NAME_LEN+1];
6958              SQLLEN cbItid = 0, cbMid = 0, cbName=SQL_NTS, cbDisplayName=SQL_NTS;              SQLCHAR viewphp[XNP_ITEMTYPE_VIEWPHP_LEN+1];
6959                SQLLEN cbItid = 0, cbMid = 0, cbName=SQL_NTS, cbDisplayName=SQL_NTS, cbViewphp=SQL_NTS;
6960              SQLBindCol( hstmt, 1, SQL_C_ULONG, &itid, 0, &cbItid );              SQLBindCol( hstmt, 1, SQL_C_ULONG, &itid, 0, &cbItid );
6961              SQLBindCol( hstmt, 2, SQL_C_CHAR , &name, XNP_ITEMTYPE_NAME_LEN+1, &cbName );              SQLBindCol( hstmt, 2, SQL_C_CHAR , &name, XNP_ITEMTYPE_NAME_LEN+1, &cbName );
6962              SQLBindCol( hstmt, 3, SQL_C_ULONG, &mid, 0, &cbMid );              SQLBindCol( hstmt, 3, SQL_C_ULONG, &mid, 0, &cbMid );
6963              SQLBindCol( hstmt, 4, SQL_C_CHAR , &display_name, XNP_ITEMTYPE_DISPLAY_NAME_LEN+1, &cbDisplayName );              SQLBindCol( hstmt, 4, SQL_C_CHAR , &display_name, XNP_ITEMTYPE_DISPLAY_NAME_LEN+1, &cbDisplayName );
6964                SQLBindCol( hstmt, 5, SQL_C_CHAR , &viewphp, XNP_ITEMTYPE_VIEWPHP_LEN+1, &cbViewphp );
6965              for( i = 0 ; ( sqlcode = SQLFetch( hstmt ) ) == SQL_SUCCESS ; i++ ){              for( i = 0 ; ( sqlcode = SQLFetch( hstmt ) ) == SQL_SUCCESS ; i++ ){
6966                  syslog_printf( "\nitid=%d, mid=%d, name='%s', display_name='%s'", itid, mid, name, display_name );                  syslog_printf( "\nitid=%d, mid=%d, name='%s', display_name='%s'", itid, mid, name, display_name );
6967                  dst[ i ].setItemTypeID( itid );                  dst[ i ].setItemTypeID( itid );
6968                  dst[ i ].setModuleID( itid );                  dst[ i ].setModuleID( itid );
6969                  dst[ i ].setName( ( char* )name );                  dst[ i ].setName( ( char* )name );
6970                  dst[ i ].setDisplayName( ( char* )display_name );                  dst[ i ].setDisplayName( ( char* )display_name );
6971                    dst[ i ].setViewphp( ( char* )viewphp );
6972                  ( *len )++;                  ( *len )++;
6973              }              }
6974              ret = RES_OK;              ret = RES_OK;
# Line 6995  result_t getIndexIDByItemID( sessionid_t Line 7004  result_t getIndexIDByItemID( sessionid_t
7004      indexid_t xid = 0;      indexid_t xid = 0;
7005      SQLLEN len = 0;      SQLLEN len = 0;
7006            
7007      sql = "SELECT index_id FROM " +  dbprefix + "_xnpaccount_index_item_link"      sql = "SELECT index_id FROM " +  dbprefix + "_xoonips_index_item_link"
7008          + " WHERE item_id=" + unsignedIntToString( itemid );          + " WHERE item_id=" + unsignedIntToString( itemid );
7009      if( countResultRows( sql.c_str(), &count ) == RES_OK ){      if( countResultRows( sql.c_str(), &count ) == RES_OK ){
7010          indexid_t* xids_ = new indexid_t[ count ];          indexid_t* xids_ = new indexid_t[ count ];
# Line 7058  result_t getOwnPublicItemID( sessionid_t Line 7067  result_t getOwnPublicItemID( sessionid_t
7067          return RES_NO_READ_ACCESS_RIGHT;//no permissions to access these items          return RES_NO_READ_ACCESS_RIGHT;//no permissions to access these items
7068            
7069      sql = "SELECT DISTINCT tlink.item_id";      sql = "SELECT DISTINCT tlink.item_id";
7070      sql += " FROM " + dbprefix + "_xnpaccount_index_item_link AS tlink";      sql += " FROM " + dbprefix + "_xoonips_index_item_link AS tlink";
7071      sql += " LEFT JOIN " + dbprefix + "_xnpaccount_index AS tx ON tlink.index_id=tx.index_id";      sql += " LEFT JOIN " + dbprefix + "_xoonips_index AS tx ON tlink.index_id=tx.index_id";
7072      sql += " LEFT JOIN " + dbprefix + "_xnpaccount_item_basic AS ti ON tlink.item_id=ti.item_id";      sql += " LEFT JOIN " + dbprefix + "_xoonips_item_basic AS ti ON tlink.item_id=ti.item_id";
7073          sql += " LEFT JOIN " + dbprefix + "_xnpaccount_groups_users_link AS tgulink ON ( tgulink.gid = tx.gid AND tx.open_level =" + unsignedIntToString( index::OL_GROUP_ONLY );          sql += " LEFT JOIN " + dbprefix + "_xoonips_groups_users_link AS tgulink ON ( tgulink.gid = tx.gid AND tx.open_level =" + unsignedIntToString( index::OL_GROUP_ONLY );
7074      sql += ") OR tx.open_level=" + unsignedIntToString( index::OL_PUBLIC );      sql += ") OR tx.open_level=" + unsignedIntToString( index::OL_PUBLIC );
7075      sql += " WHERE open_level=" + unsignedIntToString( index::OL_PUBLIC );      sql += " WHERE open_level=" + unsignedIntToString( index::OL_PUBLIC );
7076      sql += " AND certify_state=" + unsignedIntToString( index::CERTIFIED );      sql += " AND certify_state=" + unsignedIntToString( index::CERTIFIED );
# Line 7131  result_t getItemCountGroupByIndex( sessi Line 7140  result_t getItemCountGroupByIndex( sessi
7140      ret = sessionID2UID( sid, &uid );      ret = sessionID2UID( sid, &uid );
7141      if( ret != RES_OK ) return ret;      if( ret != RES_OK ) return ret;
7142            
7143      string indexItemLinkTable = dbprefix + "_xnpaccount_index_item_link";      string indexItemLinkTable = dbprefix + "_xoonips_index_item_link";
7144      string indexTable = dbprefix + "_xnpaccount_index";      string indexTable = dbprefix + "_xoonips_index";
7145      string itemTable = dbprefix + "_xnpaccount_item_basic";      string itemTable = dbprefix + "_xoonips_item_basic";
7146      string groupsUsersLinkTable = dbprefix + "_xnpaccount_groups_users_link";      string groupsUsersLinkTable = dbprefix + "_xoonips_groups_users_link";
7147      string sql = "SELECT COUNT(*) FROM " + indexTable;      string sql = "SELECT COUNT(*) FROM " + indexTable;
7148      unsigned int maxXIDsLen;      unsigned int maxXIDsLen;
7149      ret = queryGetUnsignedInt( "getItemCountGroupByIndex", sql, &maxXIDsLen );      ret = queryGetUnsignedInt( "getItemCountGroupByIndex", sql, &maxXIDsLen );

Legend:
Removed from v.1.88  
changed lines
  Added in v.1.89

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