コード例 #1
0
ファイル: rsUserAdmin.cpp プロジェクト: pradal/irods
int
rsUserAdmin( rsComm_t *rsComm, userAdminInp_t *userAdminInp ) {
    rodsServerHost_t *rodsServerHost;
    int status;

    rodsLog( LOG_DEBUG, "userAdmin" );

    status = getAndConnRcatHost( rsComm, MASTER_RCAT, (const char*)NULL, &rodsServerHost );
    if ( status < 0 ) {
        return status;
    }

    if ( rodsServerHost->localFlag == LOCAL_HOST ) {
#ifdef RODS_CAT
        status = _rsUserAdmin( rsComm, userAdminInp );
#else
        status = SYS_NO_RCAT_SERVER_ERR;
#endif
    }
    else {
        status = rcUserAdmin( rodsServerHost->conn,
                              userAdminInp );
    }

    if ( status < 0 ) {
        rodsLog( LOG_NOTICE,
                 "rsUserAdmin: rcUserAdmin failed" );
    }
    return status;
}
コード例 #2
0
ファイル: rsUserAdmin.cpp プロジェクト: QuarkDoe/irods
int
rsUserAdmin( rsComm_t *rsComm, userAdminInp_t *userAdminInp ) {
    rodsServerHost_t *rodsServerHost;
    int status;

    rodsLog( LOG_DEBUG, "userAdmin" );

    status = getAndConnRcatHost( rsComm, MASTER_RCAT, ( const char* )NULL, &rodsServerHost );
    if ( status < 0 ) {
        return status;
    }

    if ( rodsServerHost->localFlag == LOCAL_HOST ) {
        std::string svc_role;
        irods::error ret = get_catalog_service_role(svc_role);
        if(!ret.ok()) {
            irods::log(PASS(ret));
            return ret.code();
        }

        if( irods::CFG_SERVICE_ROLE_PROVIDER == svc_role ) {
            status = _rsUserAdmin( rsComm, userAdminInp );
        } else if( irods::CFG_SERVICE_ROLE_CONSUMER == svc_role ) {
            status = SYS_NO_RCAT_SERVER_ERR;
        } else {
            rodsLog(
                LOG_ERROR,
                "role not supported [%s]",
                svc_role.c_str() );
            status = SYS_SERVICE_ROLE_NOT_SUPPORTED;
        }

    }
    else {
        status = rcUserAdmin( rodsServerHost->conn,
                              userAdminInp );
    }

    if ( status < 0 ) {
        rodsLog( LOG_NOTICE,
                 "rsUserAdmin: rcUserAdmin failed" );
    }
    return status;
}
コード例 #3
0
ファイル: igroupadmin.c プロジェクト: DICE-UNC/iRODS-FUSE-Mod
/*
 Perform an rcUserAdmin call
 */
int
userAdmin(char *arg0, char *arg1, char *arg2, char *arg3, 
	  char *arg4, char *arg5, char *arg6, char *arg7) {
   userAdminInp_t userAdminInp;
   int status;
   char *mySubName;
   char *myName;
   char *funcName;

   userAdminInp.arg0 = arg0;
   userAdminInp.arg1 = arg1;
   userAdminInp.arg2 = arg2;
   userAdminInp.arg3 = arg3;
   userAdminInp.arg4 = arg4;
   userAdminInp.arg5 = arg5;
   userAdminInp.arg6 = arg6;
   userAdminInp.arg7 = arg7;
   userAdminInp.arg8 = "";
   userAdminInp.arg9 = "";
   status = rcUserAdmin(Conn, &userAdminInp);
   funcName = "rcUserAdmin";

   if (Conn->rError) {
      rError_t *Err;
      rErrMsg_t *ErrMsg;
      int i, len;
      Err = Conn->rError;
      len = Err->len;
      for (i=0;i<len;i++) {
	 ErrMsg = Err->errMsg[i];
	 printf("Level %d message: %s\n",i, ErrMsg->msg);
      }
   }
   if (status < 0 ) {
      myName = rodsErrorName(status, &mySubName);
      rodsLog (LOG_ERROR, "%s failed with error %d %s %s",funcName,
	       status, myName, mySubName);
      if (status == CAT_INVALID_USER_TYPE) {
	 printf("See 'lt user_type' for a list of valid user types.\n");
      }
   }
   return(status);
}