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.101 by aga4096, Mon Aug 8 01:57:00 2005 UTC revision 1.102 by tani, Tue Aug 23 02:19:10 2005 UTC
# Line 22  Line 22 
22   *   *
23   * $Revision$   * $Revision$
24   * $Log$   * $Log$
25     * Revision 1.102  2005/08/23 02:19:10  tani
26     * getEventsForRSSの権限チェックを変更.
27     *
28   * Revision 1.101  2005/08/08 01:57:00  aga4096   * Revision 1.101  2005/08/08 01:57:00  aga4096
29   * 。ヲ2イ?ワーハケ゚、ホinitializeDB、?オサ?   * 。ヲ2イ?ワーハケ゚、ホinitializeDB、?オサ?
30   * 。ヲvalgrind、ホキルケ?ミコ?ハ、ノ.   * 。ヲvalgrind、ホキルケ?ミコ?ハ、ノ.
# Line 456  static dbtype_t dbtype; //!< MySQL/SQLit Line 459  static dbtype_t dbtype; //!< MySQL/SQLit
459    
460  static SQLHANDLE henv = NULL;  static SQLHANDLE henv = NULL;
461  static SQLHANDLE hdbc = NULL;  static SQLHANDLE hdbc = NULL;
 static SQLHANDLE hstmt = NULL;  
462    
463  static bool processEsummary(xmlTextReaderPtr reader, pubmed_t* p);  static bool processEsummary(xmlTextReaderPtr reader, pubmed_t* p);
464  static bool processEsearch(xmlTextReaderPtr reader, pubmed_t* p, int* DocID );  static bool processEsearch(xmlTextReaderPtr reader, pubmed_t* p, int* DocID );
# Line 934  static bool uidExists( userid_t uid ) Line 936  static bool uidExists( userid_t uid )
936  {  {
937      bool ret = false;      bool ret = false;
938      string sql;      string sql;
939        SQLHANDLE hstmt = NULL;
940      SQLRETURN sqlcode;      SQLRETURN sqlcode;
941            
942      sql = "SELECT * FROM " + dbprefix + "_xoonips_users ";      sql = "SELECT * FROM " + dbprefix + "_xoonips_users ";
# Line 1014  result_t initializeDB( const char* dsn, Line 1017  result_t initializeDB( const char* dsn,
1017  {  {
1018      SQLRETURN sqlcode;      SQLRETURN sqlcode;
1019    
1020  /*    // エ?ヒタワツウテ讀ハ、鬘「ー?カタレテヌ      // エ?ヒタワツウテ讀ハ、鬘「ー?カタレテヌ
1021      if ( hdbc != NULL )      if ( hdbc != NULL ){
1022          SQLDisconnect( hdbc );          SQLDisconnect( hdbc );
1023  */          hdbc = NULL;
1024      if ( hdbc != NULL )      }
         return RES_OK; // エ?ヒタワツウテ讀ハ、鬘、2イ?ワーハケ゚、ホクニ、モスミ、キ、?オサ?ケ、?/td>  
1025            
1026      dbprefix = prefix;      dbprefix = prefix;
1027      dbtype = type;      dbtype = type;
# Line 1143  result_t activate( sessionid_t sid, user Line 1145  result_t activate( sessionid_t sid, user
1145      if( !isValidSessionID( sid ) ) return RES_NO_SUCH_SESSION;      if( !isValidSessionID( sid ) ) return RES_NO_SUCH_SESSION;
1146            
1147      string sql;      string sql;
1148        SQLHANDLE hstmt = NULL;
1149      SQLRETURN sqlcode;      SQLRETURN sqlcode;
1150      result_t ret = RES_ERROR;      result_t ret = RES_ERROR;
1151            
# Line 1352  result_t getAccount( sessionid_t sid, us Line 1355  result_t getAccount( sessionid_t sid, us
1355      int len = 0;      int len = 0;
1356      static criteria c;      static criteria c;
1357      result_t res = getAccounts( sid, &uid, 1, &c, acc, &len );      result_t res = getAccounts( sid, &uid, 1, &c, acc, &len );
1358      if( len == 0 ) return RES_NO_SUCH_USER;      if( res == RES_OK && len == 0 ) return RES_NO_SUCH_USER;
1359      return res;      return res;
1360  }  }
1361    
# Line 1511  result_t insertAccount( sessionid_t sid, Line 1514  result_t insertAccount( sessionid_t sid,
1514            
1515      string sql;      string sql;
1516      string tmp;      string tmp;
1517        SQLHANDLE hstmt = NULL;
1518      SQLRETURN sqlcode;      SQLRETURN sqlcode;
1519      result_t ret = RES_ERROR;      result_t ret = RES_ERROR;
1520            
# Line 2054  result_t dumpUids( sessionid_t sid, crit Line 2058  result_t dumpUids( sessionid_t sid, crit
2058      result_t ret = RES_ERROR;      result_t ret = RES_ERROR;
2059      userid_t* dst = 0;      userid_t* dst = 0;
2060      string sql;      string sql;
2061        SQLHANDLE hstmt = NULL;
2062      SQLRETURN sqlcode;      SQLRETURN sqlcode;
2063      SQLLEN count = 0;      SQLLEN count = 0;
2064                            
# Line 2303  result_t dumpGids( sessionid_t sid, crit Line 2308  result_t dumpGids( sessionid_t sid, crit
2308      result_t ret = RES_ERROR;      result_t ret = RES_ERROR;
2309      groupid_t* dst = 0;      groupid_t* dst = 0;
2310      string sql;      string sql;
2311        SQLHANDLE hstmt = NULL;
2312      SQLRETURN sqlcode;      SQLRETURN sqlcode;
2313      SQLLEN count = 0;      SQLLEN count = 0;
2314                            
# Line 2364  result_t dumpGroupAdmins( sessionid_t si Line 2370  result_t dumpGroupAdmins( sessionid_t si
2370            
2371      result_t ret = RES_ERROR;      result_t ret = RES_ERROR;
2372      string sql;      string sql;
2373        SQLHANDLE hstmt = NULL;
2374      SQLRETURN sqlcode;      SQLRETURN sqlcode;
2375      SQLLEN count = 0;      SQLLEN count = 0;
2376                            
# Line 2510  result_t insertMember( sessionid_t sid, Line 2517  result_t insertMember( sessionid_t sid,
2517            
2518      result_t ret = RES_ERROR;      result_t ret = RES_ERROR;
2519      string sql;      string sql;
2520        SQLHANDLE hstmt = NULL;
2521      SQLRETURN sqlcode;      SQLRETURN sqlcode;
2522            
2523      //・皈?ミ。シ、?ノイテ      //・皈?ミ。シ、?ノイテ
# Line 2720  result_t insertGroup( sessionid_t sid, c Line 2728  result_t insertGroup( sessionid_t sid, c
2728      SQLINTEGER index_number_limit;      SQLINTEGER index_number_limit;
2729      SQLDOUBLE item_storage_limit;      SQLDOUBLE item_storage_limit;
2730      SQLLEN cbGname = SQL_NTS, cbGdesc = SQL_NTS, cbItem_number_limit = 0, cbIndex_number_limit = 0, cbItem_storage_limit = 0;      SQLLEN cbGname = SQL_NTS, cbGdesc = SQL_NTS, cbItem_number_limit = 0, cbIndex_number_limit = 0, cbItem_storage_limit = 0;
2731        SQLHANDLE hstmt = NULL;
2732      SQLRETURN sqlcode;      SQLRETURN sqlcode;
2733            
2734      // examine whether there is already a group name      // examine whether there is already a group name
# Line 2875  result_t updateGroup( sessionid_t sid, c Line 2884  result_t updateGroup( sessionid_t sid, c
2884      string sql;      string sql;
2885      SQLCHAR gname[XNP_GROUP_GNAME_LEN+1], gdesc[XNP_GROUP_GDESC_LEN+1];      SQLCHAR gname[XNP_GROUP_GNAME_LEN+1], gdesc[XNP_GROUP_GDESC_LEN+1];
2886      SQLLEN cbGname = SQL_NTS, cbGdesc = SQL_NTS;      SQLLEN cbGname = SQL_NTS, cbGdesc = SQL_NTS;
2887        SQLHANDLE hstmt = NULL;
2888      SQLRETURN sqlcode;      SQLRETURN sqlcode;
2889            
2890      // examine whether there is already a group name      // examine whether there is already a group name
# Line 3026  result_t getGroup( sessionid_t sid, grou Line 3036  result_t getGroup( sessionid_t sid, grou
3036      int len = 0;      int len = 0;
3037      static criteria c;      static criteria c;
3038      result_t res = getGroups( sid, &gid, 1, &c, group, &len );      result_t res = getGroups( sid, &gid, 1, &c, group, &len );
3039      if( len == 0 ) return RES_NO_SUCH_GROUP;      if( res == RES_OK && len == 0 ) return RES_NO_SUCH_GROUP;
3040      return res;      return res;
3041  }  }
3042    
# Line 3292  result_t loginUser(const char* uname, co Line 3302  result_t loginUser(const char* uname, co
3302            
3303      result_t ret;      result_t ret;
3304      string sql;      string sql;
3305        SQLHANDLE hstmt = NULL;
3306      SQLRETURN sqlcode;      SQLRETURN sqlcode;
3307            
3308      // uname, passwd -> uid      // uname, passwd -> uid
# Line 4038  result_t updateItem( sessionid_t sid, co Line 4049  result_t updateItem( sessionid_t sid, co
4049      if( !isActivatedBySession( sid ) ) return RES_NO_WRITE_ACCESS_RIGHT;      if( !isActivatedBySession( sid ) ) return RES_NO_WRITE_ACCESS_RIGHT;
4050            
4051      string sql;      string sql;
4052        SQLHANDLE hstmt = NULL;
4053      SQLRETURN sqlcode;      SQLRETURN sqlcode;
4054      result_t ret = RES_ERROR;      result_t ret = RES_ERROR;
4055            
# Line 4561  result_t getItemIDByIndexID( sessionid_t Line 4573  result_t getItemIDByIndexID( sessionid_t
4573      result_t ret = RES_ERROR;      result_t ret = RES_ERROR;
4574      itemid_t* dst = 0;      itemid_t* dst = 0;
4575      string sql;      string sql;
4576        SQLHANDLE hstmt = NULL;
4577      SQLRETURN sqlcode;      SQLRETURN sqlcode;
4578      SQLLEN count = 0;      SQLLEN count = 0;
4579      userid_t uid;      userid_t uid;
# Line 4657  result_t getItemIDByBinderID( sessionid_ Line 4670  result_t getItemIDByBinderID( sessionid_
4670      result_t ret = RES_ERROR;      result_t ret = RES_ERROR;
4671      itemid_t* dst = 0;      itemid_t* dst = 0;
4672      string sql;      string sql;
4673        SQLHANDLE hstmt = NULL;
4674      SQLRETURN sqlcode;      SQLRETURN sqlcode;
4675      SQLLEN count = 0;      SQLLEN count = 0;
4676            
# Line 7719  result_t getEvents(sessionid_t sid, even Line 7733  result_t getEvents(sessionid_t sid, even
7733      return getEvents(sid, events, eventsLen, condition );      return getEvents(sid, events, eventsLen, condition );
7734  }  }
7735    
7736    bool isAdmin( userid_t uid )
7737    {
7738        SQLRETURN sqlcode;
7739        SQLHANDLE hstmt = NULL;
7740        
7741        if( ( sqlcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ) ) == SQL_SUCCESS ) {
7742            string sql = "SELECT count(*)>0 FROM x_groups, x_groups_users_link WHERE x_groups.groupid = x_groups_users_link.groupid and group_type='Admin' and x_groups_users_link.uid=" + unsignedIntToString(uid);
7743            if( ( sqlcode = SQLExecDirect( hstmt, (SQLCHAR*)sql.c_str(), sql.length() ) ) == SQL_SUCCESS ){
7744                SQLUINTEGER isadmin = 0;
7745                SQLLEN isadminSQLLen = 0;
7746                SQLBindCol( hstmt, 1, SQL_C_ULONG, &isadmin, 0, &isadminSQLLen );
7747                if( ( sqlcode = SQLFetch( hstmt ) ) == SQL_SUCCESS ){
7748                    SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
7749                    if( isadmin == 1 ) return true;
7750                }
7751                SQLFreeHandle( SQL_HANDLE_STMT, hstmt );
7752                return false;
7753            }
7754            return false;
7755        }
7756        return false;
7757    }
7758    
7759  /**  /**
7760   *   *
7761   * コヌソキ。罐?皀?莵?ホ・、・ル・?ネ(・「・、・ニ・狎オヌァ。、・ー・?シ・ラコ?ョ、ホ、゚。ヒ、?霹タ、ケ、?/td>   * コヌソキ。罐?皀?莵?ホ・、・ル・?ネ(・「・、・ニ・狎オヌァ。、・ー・?シ・ラコ?ョ、ホ、゚。ヒ、?霹タ、ケ、?/td>
# Line 7736  result_t getEvents(sessionid_t sid, even Line 7773  result_t getEvents(sessionid_t sid, even
7773   */   */
7774  result_t getEventsForRSS(sessionid_t sid, event_t** events, int* eventsLen, int max )  result_t getEventsForRSS(sessionid_t sid, event_t** events, int* eventsLen, int max )
7775  {  {
7776        const session_t* session;
7777        userid_t sess_uid;
7778        
7779      if( hdbc == NULL ) return RES_DB_NOT_INITIALIZED;      if( hdbc == NULL ) return RES_DB_NOT_INITIALIZED;
7780      if( !isValidSessionID( sid ) ) return RES_NO_SUCH_SESSION;      if( !isValidSessionID( sid ) ) return RES_NO_SUCH_SESSION;
7781      if( isModeratorBySession( sid ) );      if( getSession( sid, &session ) == RES_OK ){
7782            sess_uid = session ->  getUID( );
7783            freeSession( session );
7784        }
7785        if( isAdmin( sess_uid ) );
7786        else if( isModeratorBySession( sid ) );
7787      else{      else{
7788          result_t ret = RES_ERROR;          result_t ret = RES_ERROR;
7789          criteria_t c;          criteria_t c;
# Line 7767  result_t getEventsForRSS(sessionid_t sid Line 7812  result_t getEventsForRSS(sessionid_t sid
7812          if( i >= gidsLen )          if( i >= gidsLen )
7813              return RES_NO_READ_ACCESS_RIGHT;// uid is not a group admin              return RES_NO_READ_ACCESS_RIGHT;// uid is not a group admin
7814      }      }
7815        
7816      //retrieve events      //retrieve events
7817      string condition = " where event_type_id in ( " ;      string condition = " where event_type_id in ( " ;
7818      condition += unsignedIntToString(event_t::ETID_CERTIFY_ITEM);      condition += unsignedIntToString(event_t::ETID_CERTIFY_ITEM);

Legend:
Removed from v.1.101  
changed lines
  Added in v.1.102

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