| 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、ホキルケ?ミコ?ハ、ノ. |
| 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 ); |
| 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 "; |
| 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; |
| 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 |
|
|
| 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 |
|
|
| 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 |
|
|
| 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 |
|
|
| 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 |
|
|
| 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 |
|
|
| 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 |
//・皈?ミ。シ、?ノイテ |
//・皈?ミ。シ、?ノイテ |
| 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 |
| 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 |
| 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 |
|
|
| 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 |
| 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 |
|
|
| 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; |
| 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 |
|
|
| 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>
|
| 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; |
| 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); |