Develop and Download Open Source Software

Browse CVS Repository

Diff of /xoonips/AL/xnpal.cc

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.7 by youi, Wed Dec 1 01:02:35 2004 UTC revision 1.8 by aga, Wed Dec 1 01:39:55 2004 UTC
# Line 46  ZEND_FUNCTION(vp_get_group_count   ); Line 46  ZEND_FUNCTION(vp_get_group_count   );
46  ZEND_FUNCTION(vp_get_groups_by_uid );  ZEND_FUNCTION(vp_get_groups_by_uid );
47  ZEND_FUNCTION(vp_is_group_admin    );  ZEND_FUNCTION(vp_is_group_admin    );
48  ZEND_FUNCTION(vp_dump_gids         );  ZEND_FUNCTION(vp_dump_gids         );
 /*  
49  ZEND_FUNCTION(vp_dump_group_admins );  ZEND_FUNCTION(vp_dump_group_admins );
50    /*
51  ZEND_FUNCTION(vp_delete_member     );  ZEND_FUNCTION(vp_delete_member     );
52  ZEND_FUNCTION(vp_insert_member     );  ZEND_FUNCTION(vp_insert_member     );
53  ZEND_FUNCTION(vp_get_members       );  ZEND_FUNCTION(vp_get_members       );
# Line 85  zend_function_entry vpalmod_functions[] Line 85  zend_function_entry vpalmod_functions[]
85      ZEND_FE(vp_get_groups_by_uid ,NULL)      ZEND_FE(vp_get_groups_by_uid ,NULL)
86      ZEND_FE(vp_is_group_admin    ,NULL)      ZEND_FE(vp_is_group_admin    ,NULL)
87      ZEND_FE(vp_dump_gids         ,NULL)      ZEND_FE(vp_dump_gids         ,NULL)
 /*  
88      ZEND_FE(vp_dump_group_admins ,NULL)      ZEND_FE(vp_dump_group_admins ,NULL)
89    /*
90      ZEND_FE(vp_delete_member     ,NULL)      ZEND_FE(vp_delete_member     ,NULL)
91      ZEND_FE(vp_insert_member     ,NULL)      ZEND_FE(vp_insert_member     ,NULL)
92      ZEND_FE(vp_get_members       ,NULL)      ZEND_FE(vp_get_members       ,NULL)
# Line 373  public: Line 373  public:
373          }          }
374  };  };
375    
376  /** uids_t → zval  /**
377    */   *
378     * uids_tの配列をPHPの配列に変換する
379     *
380     * @param pUID 変換もとのuserid_tの配列
381     * @param len pUIDの配列の長さ
382     * @param pz 変換結果を書き込む配列(初期化済みであること)
383     * @return RES_OK
384     *
385     */
386  result_t uidsToZval( userid_t *pUID, int len, zval **ppz )  result_t uidsToZval( userid_t *pUID, int len, zval **ppz )
387  {  {
388          zval *pz;      zend_hash_clean( Z_ARRVAL_PP(ppz) );
           
         // create new array  
         MAKE_STD_ZVAL(pz);  
         array_init(pz);  
389                    
390          // add UIDs          // add UIDs
391          for ( int i = 0; i < len; i++ ){          for ( int i = 0; i < len; i++ ){
392                  add_next_index_long(pz, (long)(pUID[i]) );                  add_next_index_long(*ppz, (long)(pUID[i]) );
393          }          }
394                    
         // return array  
         *ppz = pz;  
395          return RES_OK;          return RES_OK;
396  }  }
397  /** uids_t → zval  /** groupid_t → zval
398    */    */
399  result_t gidsToZval( groupid_t *pGID, int len, zval **ppz )  result_t gidsToZval( groupid_t *pGID, int len, zval **ppz )
400  {  {
401          zval *pz;      zend_hash_clean( Z_ARRVAL_PP(ppz) );
           
         // create new array  
         MAKE_STD_ZVAL(pz);  
         array_init(pz);  
402                    
403          // add GIDs          // add GIDs
404          for ( int i = 0; i < len; i++ ){          for ( int i = 0; i < len; i++ ){
405                  add_next_index_long(pz, (long)(pGID[i]) );                  add_next_index_long(*ppz, (long)(pGID[i]) );
406          }          }
407                    
         // return array  
         *ppz = pz;  
408          return RES_OK;          return RES_OK;
409  }  }
410    
# Line 1204  ZEND_FUNCTION(vp_dump_gids) Line 1200  ZEND_FUNCTION(vp_dump_gids)
1200      RETURN_LONG(result);      RETURN_LONG(result);
1201  }  }
1202    
1203    /** gidで指定したグループの管理者で、かつ条件に一致するグループ管理者のuidの一覧を得る。<br>
1204        int vp_dump_group_admins(int sid, int group_id, array criteria, array uids )
1205        @param sid      セッションID
1206        @param group_id VPグループID
1207        @param criteria 条件
1208        @param uids     uidの一覧を受け取る配列
1209        @return 0 success
1210      */
1211    
1212    ZEND_FUNCTION(vp_dump_group_admins)
1213    {
1214            long sid, gid;
1215            zval *zcriteria;
1216            zval *zuids;
1217            
1218            if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "llaa",
1219                                  &sid, &gid, &zcriteria, &zuids) == FAILURE) {
1220                    return;
1221            }
1222            
1223            zCriteria_t zcri(zcriteria);
1224            result_t result = zcri.getResult();
1225            if ( result == RES_OK ){
1226                    userid_t *uids;
1227                    int uidsLen;
1228                    result = dumpGroupAdmins( sid, gid, &zcri, &uids, &uidsLen );
1229                    if ( result == RES_OK ){
1230                            uidsToZval( uids, uidsLen, &zuids );
1231                            freeResult( uids );
1232                    }
1233            }
1234            RETURN_LONG( result );
1235    }
1236    
1237    
1238  /** グループ情報を変更する。<br>  /** グループ情報を変更する。<br>
1239      int vp_update_group(int sid, array group )      int vp_update_group(int sid, array group )
1240      @param sid      セッションID      @param sid      セッションID

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.8

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