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.80 by aga4096, Wed Mar 9 07:27:37 2005 UTC revision 1.81 by tani, Fri Mar 11 00:34:57 2005 UTC
# Line 2  Line 2 
2   *   *
3   * $Revision$   * $Revision$
4   * $Log$   * $Log$
5     * Revision 1.81  2005/03/11 00:34:57  tani
6     * アイテムのアクセス権チェックにcertify_state追加.
7     *
8   * Revision 1.80  2005/03/09 07:27:37  aga4096   * Revision 1.80  2005/03/09 07:27:37  aga4096
9   * ・activate=0ならloginUserに失敗するよう修正.   * ・activate=0ならloginUserに失敗するよう修正.
10   *   *
# Line 1573  result_t insertAccount( sessionid_t sid, Line 1576  result_t insertAccount( sessionid_t sid,
1576                  strncpy2( (char*)zipcode, account -> getZipcode(), XNP_ACCOUNT_ZIPCODE_LEN );                  strncpy2( (char*)zipcode, account -> getZipcode(), XNP_ACCOUNT_ZIPCODE_LEN );
1577                  strncpy2( (char*)fax, account -> getFax(), XNP_ACCOUNT_FAX_LEN );                  strncpy2( (char*)fax, account -> getFax(), XNP_ACCOUNT_FAX_LEN );
1578                  notice_mail = account -> getNoticeMail( );                  notice_mail = account -> getNoticeMail( );
1579                  notice_mail_since = account -> getNoticeMailSince( );                  notice_mail_since = time( NULL );
1580                  item_number_limit = account -> getItemNumberLimit( );                  item_number_limit = account -> getItemNumberLimit( );
1581                  index_number_limit = account -> getIndexNumberLimit( );                  index_number_limit = account -> getIndexNumberLimit( );
1582                  item_storage_limit = account -> getItemStorageLimit( );                  item_storage_limit = account -> getItemStorageLimit( );
# Line 3558  result_t getItems( sessionid_t sid, cons Line 3561  result_t getItems( sessionid_t sid, cons
3561      sql+= " AND tsess.sid=" + unsignedIntToString( sid );      sql+= " AND tsess.sid=" + unsignedIntToString( sid );
3562      sql+= " WHERE ( " + string( public_item_target_user_all( ) ? "1" : "0" );      sql+= " WHERE ( " + string( public_item_target_user_all( ) ? "1" : "0" );
3563      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";
3564        sql+=       " AND certify_state=" + unsignedIntToString( index::CERTIFIED );
3565      sql+=    " OR " + string( !public_item_target_user_all( ) ? "1" : "0" );      sql+=    " OR " + string( !public_item_target_user_all( ) ? "1" : "0" );
3566      sql+=       " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC ) + " AND tsess.uid IS NOT NULL";      sql+=       " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC ) + " AND tsess.uid IS NOT NULL";
3567      sql+=    " OR tgulink.uid=" + unsignedIntToString( uid );      sql+=       " AND certify_state=" + unsignedIntToString( index::CERTIFIED );
3568        sql+=    " OR tx.open_level=" + unsignedIntToString( index::OL_GROUP_ONLY );
3569        sql+=      " AND tgulink.uid=" + unsignedIntToString( uid );
3570        sql+=      " AND ( certify_state=" + unsignedIntToString( index::CERTIFIED );
3571        sql+=            string( isModerator( sid, uid ) ? " OR 1" : " OR 0" ); //モデレータならOR 1,それ以外は OR 0
3572        sql+=            " OR tgulink.is_admin=1 )"; //グループ管理者か?
3573      sql+=    " OR tx.open_level=" + unsignedIntToString( index::OL_PRIVATE );      sql+=    " OR tx.open_level=" + unsignedIntToString( index::OL_PRIVATE );
3574      sql+=       " AND tx.uid=" + unsignedIntToString( uid );      sql+=      " AND tx.uid=" + unsignedIntToString( uid );
3575      sql+=    " OR tx.uid IS NULL ";      sql+=    " OR tx.uid IS NULL ";
3576      sql+=    " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC );      sql+=      " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC );
3577        sql+=      " AND ( certify_state=" + unsignedIntToString( index::CERTIFIED );
3578        sql+=            string( isModerator( sid, uid ) ? " OR 1 )" : " OR 0 )" ); //モデレータならOR 1,それ以外は OR 0
3579      sql+= string( isModerator( sid, uid ) ? " OR 1" : " OR 0" ); //モデレータならOR 1,それ以外は OR 0      sql+= string( isModerator( sid, uid ) ? " OR 1" : " OR 0" ); //モデレータならOR 1,それ以外は OR 0
3580      sql+=    ") AND tlink.item_id IN (" + where + ")";      sql+=    ") AND tlink.item_id IN (" + where + ")";
3581      sql += criteria2str( cri );      sql += criteria2str( cri );
# Line 3657  unsigned int getItemCount( sessionid_t s Line 3668  unsigned int getItemCount( sessionid_t s
3668      sql+= " AND tsess.sid=" + unsignedIntToString( sid );      sql+= " AND tsess.sid=" + unsignedIntToString( sid );
3669      sql+= " WHERE ( " + string( public_item_target_user_all( ) ? "1" : "0" );      sql+= " WHERE ( " + string( public_item_target_user_all( ) ? "1" : "0" );
3670      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";
3671        sql+=       " AND certify_state=" + unsignedIntToString( index::CERTIFIED );
3672      sql+=    " OR " + string( !public_item_target_user_all( ) ? "1" : "0" );      sql+=    " OR " + string( !public_item_target_user_all( ) ? "1" : "0" );
3673      sql+=       " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC ) + " AND tsess.uid IS NOT NULL";      sql+=       " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC ) + " AND tsess.uid IS NOT NULL";
3674        sql+=       " AND certify_state=" + unsignedIntToString( index::CERTIFIED );
3675      sql+=    " OR tgulink.uid=" + unsignedIntToString( uid );      sql+=    " OR tgulink.uid=" + unsignedIntToString( uid );
3676        sql+=      " AND ( certify_state=" + unsignedIntToString( index::CERTIFIED );
3677        sql+=            string( isModerator( sid, uid ) ? " OR 1" : " OR 0" ); //モデレータならOR 1,それ以外は OR 0
3678        sql+=            " OR tgulink.is_admin=1 )"; //グループ管理者か?
3679      sql+=    " OR tx.open_level=" + unsignedIntToString( index::OL_PRIVATE );      sql+=    " OR tx.open_level=" + unsignedIntToString( index::OL_PRIVATE );
3680      sql+=       " AND tx.uid=" + unsignedIntToString( uid );      sql+=       " AND tx.uid=" + unsignedIntToString( uid );
3681      sql+=    " OR tx.uid IS NULL ";      sql+=    " OR tx.uid IS NULL ";
3682      sql+=    " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC );      sql+=      " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC );
3683        sql+=      " AND ( certify_state=" + unsignedIntToString( index::CERTIFIED );
3684        sql+=            string( isModerator( sid, uid ) ? " OR 1 )" : " OR 0 )" ); //モデレータならOR 1,それ以外は OR 0
3685      sql+= string( isModerator( sid, uid ) ? " OR 1" : " OR 0" ); //モデレータならOR 1,それ以外は OR 0      sql+= string( isModerator( sid, uid ) ? " OR 1" : " OR 0" ); //モデレータならOR 1,それ以外は OR 0
3686      sql+=    ") ";      sql+=    ") ";
3687      ret = queryGetUnsignedInt( "getItemCount", sql, (unsigned int*)&count );      ret = queryGetUnsignedInt( "getItemCount", sql, (unsigned int*)&count );
# Line 3713  result_t dumpItemID(sessionid_t sid, cri Line 3731  result_t dumpItemID(sessionid_t sid, cri
3731      sql+= " AND tsess.sid=" + unsignedIntToString( sid );      sql+= " AND tsess.sid=" + unsignedIntToString( sid );
3732      sql+= " WHERE ( " + string( public_item_target_user_all( ) ? "1" : "0" );      sql+= " WHERE ( " + string( public_item_target_user_all( ) ? "1" : "0" );
3733      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";
3734        sql+=       " AND certify_state=" + unsignedIntToString( index::CERTIFIED );
3735      sql+=    " OR " + string( !public_item_target_user_all( ) ? "1" : "0" );      sql+=    " OR " + string( !public_item_target_user_all( ) ? "1" : "0" );
3736      sql+=       " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC ) + " AND tsess.uid IS NOT NULL";      sql+=       " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC ) + " AND tsess.uid IS NOT NULL";
3737      sql+=    " OR tgulink.uid=" + unsignedIntToString( uid );      sql+=       " AND certify_state=" + unsignedIntToString( index::CERTIFIED );
3738        sql+=    " OR tx.open_level=" + unsignedIntToString( index::OL_GROUP_ONLY );
3739        sql+=      " AND tgulink.uid=" + unsignedIntToString( uid );
3740        sql+=      " AND ( certify_state=" + unsignedIntToString( index::CERTIFIED );
3741        sql+=            string( isModerator( sid, uid ) ? " OR 1" : " OR 0" ); //モデレータならOR 1,それ以外は OR 0
3742        sql+=            " OR tgulink.is_admin=1 )"; //グループ管理者か?
3743      sql+=    " OR tx.open_level=" + unsignedIntToString( index::OL_PRIVATE );      sql+=    " OR tx.open_level=" + unsignedIntToString( index::OL_PRIVATE );
3744      sql+=       " AND tx.uid=" + unsignedIntToString( uid );      sql+=       " AND tx.uid=" + unsignedIntToString( uid );
3745      sql+=    " OR tx.uid IS NULL ";      sql+=    " OR tx.uid IS NULL ";
3746      sql+=    " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC );      sql+=      " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC );
3747        sql+=      " AND ( certify_state=" + unsignedIntToString( index::CERTIFIED );
3748        sql+=            string( isModerator( sid, uid ) ? " OR 1 )" : " OR 0 )" ); //モデレータならOR 1,それ以外は OR 0
3749      sql+= string( isModerator( sid, uid ) ? " OR 1" : " OR 0" ); //モデレータならOR 1,それ以外は OR 0      sql+= string( isModerator( sid, uid ) ? " OR 1" : " OR 0" ); //モデレータならOR 1,それ以外は OR 0
3750      sql+=    ") ";      sql+=    ") ";
3751      sql+= " AND ti.item_type_id != " + unsignedIntToString( item::ITID_INDEX ); //      sql+= " AND ti.item_type_id != " + unsignedIntToString( item::ITID_INDEX ); //
# Line 4318  result_t getItemIDByIndexID( sessionid_t Line 4344  result_t getItemIDByIndexID( sessionid_t
4344      sql+= " AND tsess.sid=" + unsignedIntToString( sid );      sql+= " AND tsess.sid=" + unsignedIntToString( sid );
4345      sql+= " WHERE ( " + string( public_item_target_user_all( ) ? "1" : "0" );      sql+= " WHERE ( " + string( public_item_target_user_all( ) ? "1" : "0" );
4346      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";
4347        sql+=       " AND certify_state=" + unsignedIntToString( index::CERTIFIED );
4348      sql+=    " OR " + string( !public_item_target_user_all( ) ? "1" : "0" );      sql+=    " OR " + string( !public_item_target_user_all( ) ? "1" : "0" );
4349      sql+=       " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC ) + " AND tsess.uid IS NOT NULL";      sql+=       " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC ) + " AND tsess.uid IS NOT NULL";
4350        sql+=       " AND certify_state=" + unsignedIntToString( index::CERTIFIED );
4351      sql+=    " OR tx.open_level=" + unsignedIntToString( index::OL_PRIVATE );      sql+=    " OR tx.open_level=" + unsignedIntToString( index::OL_PRIVATE );
4352      sql+=       " AND tx.uid=" + unsignedIntToString( uid );      sql+=       " AND tx.uid=" + unsignedIntToString( uid );
4353      sql+=    " OR " + string( isModerator( sid, uid ) ? "1" : "0" );      sql+=    " OR " + string( isModerator( sid, uid ) ? "1" : "0" );
4354      sql+=    " OR tx.open_level=" + unsignedIntToString( index::OL_GROUP_ONLY ); //<<      sql+=    " OR tx.open_level=" + unsignedIntToString( index::OL_GROUP_ONLY ); //<<
4355      sql+=    " AND certify_state=" + unsignedIntToString( index::CERTIFIED ); //<<      sql+=    " AND ( certify_state=" + unsignedIntToString( index::CERTIFIED ); //<<
4356        sql+=          string( isModerator( sid, uid ) ? " OR 1" : " OR 0" ); //モデレータならOR 1,それ以外は OR 0
4357        sql+=          " OR tgulink.is_admin=1 )"; //グループ管理者か?
4358      sql+=    " OR tx.uid IS NULL ";      sql+=    " OR tx.uid IS NULL ";
4359      sql+=    " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC );      sql+=    " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC );
4360      sql+=    " AND certify_state=" + unsignedIntToString( index::CERTIFIED ); //<<      sql+=    " AND ( certify_state=" + unsignedIntToString( index::CERTIFIED ); //<<
4361        sql+=          string( isModerator( sid, uid ) ? " OR 1 )" : " OR 0 )" ); //モデレータならOR 1,それ以外は OR 0
4362      sql+=    ") AND ti.item_type_id!=" + unsignedIntToString( item::ITID_INDEX );      sql+=    ") AND ti.item_type_id!=" + unsignedIntToString( item::ITID_INDEX );
4363      sql += " AND tx.index_id=" + unsignedIntToString( xid );      sql += " AND tx.index_id=" + unsignedIntToString( xid );
4364      sql += criteria2str( cri );      sql += criteria2str( cri );
# Line 4813  bool getItemPermission( sessionid_t sid, Line 4844  bool getItemPermission( sessionid_t sid,
4844          sql+= " AND tsess.sid=" + unsignedIntToString( sid );          sql+= " AND tsess.sid=" + unsignedIntToString( sid );
4845          sql+= " WHERE ( " + string( public_item_target_user_all( ) ? "1" : "0" );          sql+= " WHERE ( " + string( public_item_target_user_all( ) ? "1" : "0" );
4846          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";
4847            sql+=       " AND certify_state=" + unsignedIntToString( index::CERTIFIED );
4848          sql+=    " OR " + string( !public_item_target_user_all( ) ? "1" : "0" );          sql+=    " OR " + string( !public_item_target_user_all( ) ? "1" : "0" );
4849          sql+=       " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC ) + " AND tsess.uid IS NOT NULL";          sql+=       " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC ) + " AND tsess.uid IS NOT NULL";
4850          sql+=    " OR tgulink.uid=" + unsignedIntToString( uid );          sql+=       " AND certify_state=" + unsignedIntToString( index::CERTIFIED );
4851            sql+=    " OR tx.open_level=" + unsignedIntToString( index::OL_GROUP_ONLY );
4852            sql+=      " AND tgulink.uid=" + unsignedIntToString( uid );
4853            sql+=      " AND ( certify_state=" + unsignedIntToString( index::CERTIFIED );
4854            sql+=            string( isModerator( sid, uid ) ? " OR 1" : " OR 0" ); //モデレータならOR 1,それ以外は OR 0
4855            sql+=            " OR tgulink.is_admin=1 )"; //グループ管理者か?
4856          sql+=    " OR tx.open_level=" + unsignedIntToString( index::OL_PRIVATE );          sql+=    " OR tx.open_level=" + unsignedIntToString( index::OL_PRIVATE );
4857          sql+=       " AND tx.uid=" + unsignedIntToString( uid );          sql+=       " AND tx.uid=" + unsignedIntToString( uid );
4858          sql+=    " OR " + string( isModerator( sid, uid ) ? "1" : "0" );          sql+=    " OR " + string( isModerator( sid, uid ) ? "1" : "0" );
4859          sql+=    " OR tx.uid IS NULL ";          sql+=    " OR tx.uid IS NULL ";
4860          sql+=    " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC );          sql+=    " AND tx.open_level=" + unsignedIntToString( index::OL_PUBLIC );
4861            sql+=    " AND ( certify_state=" + unsignedIntToString( index::CERTIFIED );
4862            sql+=            string( isModerator( sid, uid ) ? " OR 1 )" : " OR 0 )" ); //モデレータならOR 1,それ以外は OR 0
4863          sql += string( isModerator( sid, uid ) ? " OR 1" : " OR 0" ); //モデレータならOR 1,それ以外は OR 0          sql += string( isModerator( sid, uid ) ? " OR 1" : " OR 0" ); //モデレータならOR 1,それ以外は OR 0
4864          sql+=    ") AND tlink.item_id=" + unsignedIntToString( iid );          sql+=    ") AND tlink.item_id=" + unsignedIntToString( iid );
4865          syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );          syslog_printf( "\nsql at %d=%s", __LINE__, sql.c_str() );

Legend:
Removed from v.1.80  
changed lines
  Added in v.1.81

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