1 40 package com.mvnforum.admin; 41 42 import java.io.IOException ; 43 import java.util.*; 44 45 import com.mvnforum.MVNForumConstant; 46 import com.mvnforum.admin.importexport.XMLUtil; 47 import com.mvnforum.admin.importexport.XMLWriter; 48 import com.mvnforum.auth.MVNForumPermission; 49 import com.mvnforum.db.*; 50 import net.myvietnam.mvncore.exception.*; 51 import net.myvietnam.mvncore.filter.DisableHtmlTagFilter; 52 import net.myvietnam.mvncore.filter.EnableHtmlTagFilter; 53 54 61 public class MemberXML { 62 63 private int memberID; 64 66 public int getMemberID() { return memberID; } 67 68 public MemberXML() { 69 super(); 70 memberID=-1; 71 } 72 73 public void setMemberID(String id) { 74 memberID=XMLUtil.stringToIntDef(id, -1); 75 } 76 77 139 public void addMember(String memberName, String memberPassword, 140 String memberFirstEmail, String memberEmail, 141 String memberEmailVisible, String memberNameVisible, 142 String memberFirstIP, String memberLastIP, 143 String memberViewCount, String memberPostCount, 144 String memberCreationDate, String memberModifiedDate, String memberExpireDate, 145 String memberLastLogon, 146 String memberOption, String memberStatus, 147 String memberActivateCode, String memberTempPassword, 148 String memberMessageCount, String memberMessageOption, 149 String memberPostsPerPage, 150 String memberWarnCount, 151 String memberVoteCount, String memberVoteTotalStars, 152 String memberRewardPoints, 153 String memberTitle, String memberTimeZone, 154 String memberSignature, String memberAvatar, 155 String memberSkin, String memberLanguage, 156 String memberFirstname, String memberLastname, 157 String memberGender, String memberBirthday, 158 String memberAddress, String memberCity, 159 String memberState, String memberCountry, 160 String memberPhone, String memberMobile, 161 String memberFax, String memberCareer, 162 String memberHomepage, String memberYahoo, 163 String memberAol, String memberIcq, String memberMsn, 164 String memberCoolLink1, String memberCoolLink2) 165 throws CreateException, DuplicateKeyException, ObjectNotFoundException, 166 DatabaseException { 167 String strMemberID=null; 168 if (memberID>=0) strMemberID=Integer.toString(memberID); 169 addMember(strMemberID, memberName, 170 memberPassword, memberFirstEmail, memberEmail, 171 memberEmailVisible, memberNameVisible, 172 memberFirstIP, memberLastIP, 173 memberViewCount, memberPostCount, 174 memberCreationDate, memberModifiedDate, memberExpireDate, memberLastLogon, 175 memberOption, memberStatus, memberActivateCode, memberTempPassword, 176 memberMessageCount, memberMessageOption, memberPostsPerPage, 177 memberWarnCount, memberVoteCount, memberVoteTotalStars, 178 memberRewardPoints, memberTitle, memberTimeZone, 179 memberSignature, memberAvatar, memberSkin, 180 memberLanguage, memberFirstname, memberLastname, 181 memberGender, memberBirthday, memberAddress, 182 memberCity, memberState, memberCountry, 183 memberPhone, memberMobile, memberFax, 184 memberCareer, memberHomepage, memberYahoo, memberAol, memberIcq, 185 memberMsn, memberCoolLink1, memberCoolLink2); 186 } 187 188 252 public void addMember(String strMemberID, 253 String memberName, String memberPassword, 254 String memberFirstEmail, String memberEmail, 255 String memberEmailVisible, String memberNameVisible, 256 String memberFirstIP, String memberLastIP, 257 String memberViewCount, String memberPostCount, 258 String memberCreationDate, String memberModifiedDate, String memberExpireDate, 259 String memberLastLogon, 260 String memberOption, String memberStatus, 261 String memberActivateCode, String memberTempPassword, 262 String memberMessageCount, String memberMessageOption, 263 String memberPostsPerPage, 264 String memberWarnCount, 265 String memberVoteCount, String memberVoteTotalStars, 266 String memberRewardPoints, 267 String memberTitle, String memberTimeZone, 268 String memberSignature, String memberAvatar, 269 String memberSkin, String memberLanguage, 270 String memberFirstname, String memberLastname, 271 String memberGender, String memberBirthday, 272 String memberAddress, String memberCity, 273 String memberState, String memberCountry, 274 String memberPhone, String memberMobile, 275 String memberFax, String memberCareer, 276 String memberHomepage, String memberYahoo, 277 String memberAol, String memberIcq, String memberMsn, 278 String memberCoolLink1, String memberCoolLink2) 279 throws CreateException, DuplicateKeyException, ObjectNotFoundException, DatabaseException { 280 if ((memberName==null) || (memberName.equals("")) || 281 (memberPassword==null) || (memberPassword.equals("")) || 282 (memberFirstEmail==null) || (memberFirstEmail.equals("")) || 283 (memberEmail==null) || (memberEmail.equals("")) || 284 (memberFirstname==null) || (memberLastname==null)) { 286 throw new CreateException("Not enough data to create a member. Check for name, email and password."); 287 } else { 288 int memberEmailVisible1; 289 int memberNameVisible1; 290 int memberViewCount1; 291 int memberPostCount1; 292 java.sql.Timestamp memberCreationDate1; 293 java.sql.Timestamp memberModifiedDate1; 294 java.sql.Timestamp memberExpireDate1; 295 java.sql.Timestamp memberLastLogon1; 296 int memberOption1; 297 int memberStatus1; 298 int memberMessageCount1; 299 int memberMessageOption1; 300 int memberPostsPerPage1; 301 int memberWarnCount1; 302 int memberVoteCount1; 303 int memberVoteTotalStars1; 304 int memberRewardPoints1; 305 int memberTimeZone1; 306 int memberGender1; 307 java.sql.Date memberBirthday1; 308 309 try { 310 memberEmailVisible1= (XMLUtil.stringToBooleanDef(memberEmailVisible, false)?1:0); 311 memberNameVisible1= (XMLUtil.stringToBooleanDef(memberNameVisible, false)?1:0); 312 if (memberFirstIP==null) memberFirstIP="0.0.0.0"; 313 if (memberLastIP==null) memberLastIP="0.0.0.0"; 314 memberViewCount1= XMLUtil.stringToIntDef(memberViewCount, 0); 315 memberPostCount1= XMLUtil.stringToIntDef(memberPostCount, 0); 316 memberCreationDate1= XMLUtil.stringToSqlTimestampDefNow(memberCreationDate); 317 memberModifiedDate1= XMLUtil.stringToSqlTimestampDefNull(memberModifiedDate); 318 memberExpireDate1= XMLUtil.stringToSqlTimestampDefNow(memberExpireDate); 319 memberLastLogon1= XMLUtil.stringToSqlTimestampDefNull(memberLastLogon); 320 memberOption1= XMLUtil.stringToIntDef(memberOption, 0); 321 memberStatus1= XMLUtil.stringToIntDef(memberStatus, 0); 322 if (memberActivateCode==null) memberActivateCode=""; 323 if (memberTempPassword==null) memberTempPassword=""; 324 memberMessageCount1= XMLUtil.stringToIntDef(memberMessageCount, 0); 325 memberMessageOption1= XMLUtil.stringToIntDef(memberMessageOption, 0); 326 memberPostsPerPage1= XMLUtil.stringToIntDef(memberPostsPerPage, 10); 327 memberWarnCount1= XMLUtil.stringToIntDef(memberWarnCount, 0); 328 memberVoteCount1= XMLUtil.stringToIntDef(memberVoteCount, 0); 329 memberVoteTotalStars1= XMLUtil.stringToIntDef(memberVoteTotalStars, 0); 330 memberRewardPoints1= XMLUtil.stringToIntDef(memberRewardPoints, 0); 331 if (memberTitle==null) memberTitle=""; 332 memberTimeZone1= XMLUtil.stringToIntDef(memberTimeZone, 0); 333 if (memberSignature==null) memberSignature=""; 334 if (memberAvatar==null) memberAvatar=""; 335 if (memberSkin==null) memberSkin=""; 336 if (memberLanguage==null) memberLanguage=""; 337 memberGender1= XMLUtil.stringToGenderDef(memberGender, 1); 338 memberBirthday1= XMLUtil.stringToSqlDateDefNull(memberBirthday); 339 if (memberAddress==null) memberAddress=""; 340 if (memberCity==null) memberCity=""; 341 if (memberState==null) memberState=""; 342 if (memberCountry==null) memberCountry=""; 343 if (memberPhone==null) memberPhone=""; 344 if (memberMobile==null) memberMobile=""; 345 if (memberFax==null) memberFax=""; 346 if (memberCareer==null) memberCareer=""; 347 if (memberHomepage==null) memberHomepage=""; 348 if (memberYahoo==null) memberYahoo=""; 349 if (memberAol==null) memberAol=""; 350 if (memberIcq==null) memberIcq=""; 351 if (memberMsn==null) memberMsn=""; 352 if (memberCoolLink1==null) memberCoolLink1=""; 353 if (memberCoolLink2==null) memberCoolLink2=""; 354 } catch (NumberFormatException e) { 355 throw new CreateException("Invalid data for a member. Expected a number."); 356 } 357 358 if ( (strMemberID!=null) && (!strMemberID.equals("")) ) { 360 try { 361 if (Integer.parseInt(strMemberID)<0) strMemberID=null; 362 } catch (NumberFormatException e) { 363 strMemberID=null; 364 } 365 } else strMemberID=null; 366 367 memberPassword=EnableHtmlTagFilter.filter(memberPassword); 368 memberTempPassword=EnableHtmlTagFilter.filter(memberTempPassword); 369 memberTitle=EnableHtmlTagFilter.filter(memberTitle); 370 memberSignature=EnableHtmlTagFilter.filter(memberSignature); 371 memberAddress=EnableHtmlTagFilter.filter(memberAddress); 373 memberCountry=EnableHtmlTagFilter.filter(memberCountry); 374 memberHomepage=EnableHtmlTagFilter.filter(memberHomepage); 375 memberYahoo=EnableHtmlTagFilter.filter(memberYahoo); 376 memberAol=EnableHtmlTagFilter.filter(memberAol); 377 memberIcq=EnableHtmlTagFilter.filter(memberIcq); 378 memberMsn=EnableHtmlTagFilter.filter(memberMsn); 379 memberCoolLink1=EnableHtmlTagFilter.filter(memberCoolLink1); 380 memberCoolLink2=EnableHtmlTagFilter.filter(memberCoolLink2); 381 382 if (strMemberID==null) { 383 DAOFactory.getMemberDAO().create( 384 memberName, memberPassword, memberFirstEmail, 385 memberEmail, memberEmailVisible1, memberNameVisible1, 386 memberFirstIP, memberLastIP, memberViewCount1, memberPostCount1, 387 memberCreationDate1, memberModifiedDate1, memberExpireDate1, memberLastLogon1, 388 memberOption1, memberStatus1, memberActivateCode, memberTempPassword, 389 memberMessageCount1, memberMessageOption1, memberPostsPerPage1, 390 memberWarnCount1, memberVoteCount1, memberVoteTotalStars1, 391 memberRewardPoints1, memberTitle, memberTimeZone1, memberSignature, 392 memberAvatar, memberSkin, memberLanguage, 393 memberFirstname, memberLastname, memberGender1, 394 memberBirthday1, memberAddress, memberCity, 395 memberState, memberCountry, memberPhone, 396 memberMobile, memberFax, memberCareer, 397 memberHomepage, memberYahoo, memberAol, 398 memberIcq, memberMsn, memberCoolLink1, memberCoolLink2); 399 } else { 400 String memberEmailVisible2 = (XMLUtil.stringToBooleanDef(memberEmailVisible, false)?"1":"0"); 402 String memberNameVisible2 = (XMLUtil.stringToBooleanDef(memberNameVisible, false)?"1":"0"); 403 String memberModifiedDate2= XMLUtil.sqlTimestampToStringDefEmpty(memberModifiedDate1); 404 String memberLastLogon2= XMLUtil.sqlTimestampToStringDefEmpty(memberLastLogon1); 405 String memberBirthday2= XMLUtil.sqlDateToStringDefEmpty(memberBirthday1); 406 407 String query="INSERT INTO "+ MemberDAO.TABLE_NAME + 408 " (MemberID, MemberName, MemberPassword, MemberFirstEmail, MemberEmail," + 409 " MemberEmailVisible, MemberNameVisible, MemberFirstIP, MemberLastIP," + 410 " MemberViewCount, MemberPostCount, MemberCreationDate, MemberModifiedDate, MemberExpireDate," + 411 " MemberLastLogon, MemberOption, MemberStatus, MemberActivateCode," + 412 " MemberTempPassword, MemberMessageCount, MemberMessageOption," + 413 " MemberPostsPerPage, MemberWarnCount, MemberVoteCount," + 414 " MemberVoteTotalStars, MemberRewardPoints, MemberTitle," + 415 " MemberTimeZone, MemberSignature, MemberAvatar, MemberSkin," + 416 " MemberLanguage, MemberFirstname, MemberLastname, MemberGender," + 417 " MemberBirthday, MemberAddress, MemberCity, MemberState, MemberCountry," + 418 " MemberPhone, MemberMobile, MemberFax, MemberCareer, MemberHomepage," + 419 " MemberYahoo, MemberAol, MemberIcq, MemberMsn," + 420 " MemberCoolLink1, MemberCoolLink2)" + 421 " VALUES (" +strMemberID+ ", '"+memberName +"', '" +memberPassword+ "', '" +memberFirstEmail+ 422 "', '" +memberEmail+ "', " +memberEmailVisible2+ ", " +memberNameVisible2+ 423 ", '" +memberFirstIP+ "', '" +memberLastIP+ "', " +memberViewCount1+ 424 ", " +memberPostCount1+ ", '" +memberCreationDate1+ "', '" +memberModifiedDate2+ "', '" + memberExpireDate + 425 "', '" +memberLastLogon2+ "', " +memberOption1+ ", " +memberStatus1+ 426 ", '" +memberActivateCode+ "', '" +memberTempPassword+ "', " +memberMessageCount1+ 427 ", " +memberMessageOption1+ ", " +memberPostsPerPage1+ ", " +memberWarnCount1+ 428 ", " +memberVoteCount1+ ", " +memberVoteTotalStars1+ ", " +memberRewardPoints1+ 429 ", '" +memberTitle+ "', " +memberTimeZone1+ ", '" +memberSignature+ 430 "', '" +memberAvatar+ "', '" +memberSkin+ "', '" +memberLanguage+ 431 "', '" +memberFirstname+ "', '" +memberLastname+ "', " +memberGender1+ 432 ", '" +memberBirthday2+ "', '" +memberAddress+ "', '" +memberCity+ 433 "', '" +memberState+ "', '" +memberCountry+ "', '" +memberPhone+ 434 "', '" +memberMobile+ "', '" +memberFax+ "', '" +memberCareer+ 435 "', '" +memberHomepage+ "', '" +memberYahoo+ "', '" +memberAol+ 436 "', '" +memberIcq+ "', '" +memberMsn+ 437 "', '" +memberCoolLink1+ "', '" +memberCoolLink2+ "')"; 438 if (ImportWebHelper.execUpdateQuery(query) !=1) { 439 throw new CreateException("Error adding member into table '"+ 440 MemberDAO.TABLE_NAME +"'."); 441 } 442 } 443 this.memberID=DAOFactory.getMemberDAO().getMemberIDFromMemberName(memberName); 444 } 445 } 446 447 460 public void addMemberPermission(String permission) 461 throws CreateException, DatabaseException, ForeignKeyNotFoundException { 462 if (memberID<0) { 463 throw new CreateException("Found member permission that is not assigned to any known member."); 464 } 465 int permission1; 466 try { 467 permission1=XMLUtil.stringToIntDef(permission, MVNForumPermission.PERMISSION_NO_PERMISSIONS); 468 } catch (NumberFormatException e) { 469 throw new CreateException("Invalid data for a member permission. Expected a number."); 470 } 471 try { 472 DAOFactory.getMemberPermissionDAO().create(memberID, permission1); 473 } catch (DuplicateKeyException e) { 474 } 476 } 477 478 public static void addGuestMemberPermission(String permission) 479 throws CreateException, DatabaseException, ForeignKeyNotFoundException { 480 int permission1; 481 try { 482 permission1=XMLUtil.stringToIntDef(permission, MVNForumPermission.PERMISSION_NO_PERMISSIONS); 483 } catch (NumberFormatException e) { 484 throw new CreateException("Invalid data for a guest member permission. Expected a number."); 485 } 486 try { 487 DAOFactory.getMemberPermissionDAO().create(MVNForumConstant.MEMBER_ID_OF_GUEST, permission1); 488 } catch (DuplicateKeyException e) { 489 } 491 } 492 493 public static void addAdminMemberPermission(String permission) 494 throws CreateException, DatabaseException, ForeignKeyNotFoundException { 495 int permission1; 496 try { 497 permission1=XMLUtil.stringToIntDef(permission, MVNForumPermission.PERMISSION_NO_PERMISSIONS); 498 } catch (NumberFormatException e) { 499 throw new CreateException("Invalid data for a guest member permission. Expected a number."); 500 } 501 try { 502 DAOFactory.getMemberPermissionDAO().create(MVNForumConstant.MEMBER_ID_OF_ADMIN, permission1); 503 } catch (DuplicateKeyException e) { 504 } 506 } 507 508 public static void addMemberPermission(String memberName, String permission) 509 throws CreateException, DatabaseException, ForeignKeyNotFoundException, 510 ObjectNotFoundException { 511 int permission1; 512 try { 513 permission1=XMLUtil.stringToIntDef(permission, MVNForumPermission.PERMISSION_NO_PERMISSIONS); 514 } catch (NumberFormatException e) { 515 throw new CreateException("Invalid data for a member permission. Expected a number."); 516 } 517 try { 518 DAOFactory.getMemberPermissionDAO().create(DAOFactory.getMemberDAO().getMemberIDFromMemberName(memberName), permission1); 519 } catch (DuplicateKeyException e) { 520 } 522 } 523 524 541 public void addMessageFolder(String folderName, String folderOrder, 542 String folderCreationDate, String folderModifiedDate) 543 throws CreateException, DatabaseException, DuplicateKeyException, ForeignKeyNotFoundException { 544 if (memberID<0) { 545 throw new CreateException("Found message folder that is not assigned to any known member."); 546 } 547 if ( (folderName==null) || (folderName.equals("")) ) { 548 throw new CreateException("Can't create a message folder with empty FolderName."); 549 } 550 551 int folderOrder1; 552 java.sql.Timestamp folderCreationDate1; 553 java.sql.Timestamp folderModifiedDate1; 554 try { 555 folderOrder1= XMLUtil.stringToIntDef(folderOrder, 0); 556 folderCreationDate1= XMLUtil.stringToSqlTimestampDefNow(folderCreationDate); 557 folderModifiedDate1= XMLUtil.stringToSqlTimestampDefNow(folderModifiedDate); 558 } catch (NumberFormatException e) { 559 throw new CreateException("Invalid data for a message folder. Expected a number."); 560 } 561 562 folderName=EnableHtmlTagFilter.filter(folderName); 563 int folderStatus = 0; 564 int folderOption = 0; 565 int folderType = 0; 566 DAOFactory.getMessageFolderDAO().create(folderName, memberID, folderOrder1, 567 folderStatus, folderOption, folderType, 568 folderCreationDate1, folderModifiedDate1); 569 } 570 571 591 public void addGlobalWatch(String watchType, String watchOption, 592 String watchStatus, String watchCreationDate, 593 String watchLastSentDate, String watchEndDate) 594 throws CreateException, DatabaseException, DuplicateKeyException, ForeignKeyNotFoundException { 595 if (memberID<0) { 596 throw new CreateException("Found global watch that is not assigned to any known member."); 597 } 598 599 int watchType1; 600 int watchOption1; 601 int watchStatus1; 602 java.sql.Timestamp watchCreationDate1; 603 java.sql.Timestamp watchLastSentDate1; 604 java.sql.Timestamp watchEndDate1; 605 606 try { 607 watchType1= XMLUtil.stringToIntDef(watchType, 0); 608 watchOption1= XMLUtil.stringToIntDef(watchOption, 0); 609 watchStatus1= XMLUtil.stringToIntDef(watchStatus, 0); 610 watchCreationDate1= XMLUtil.stringToSqlTimestampDefNow(watchCreationDate); 611 watchLastSentDate1= XMLUtil.stringToSqlTimestampDefNull(watchLastSentDate); 612 watchEndDate1= XMLUtil.stringToSqlTimestampDefNull(watchEndDate); 613 } catch (NumberFormatException e) { 614 throw new CreateException("Invalid data for a global watch. Expected a number."); 615 } 616 617 DAOFactory.getWatchDAO().create( 618 memberID, 0, 0, 0, 619 watchType1, watchOption1, watchStatus1, 620 watchCreationDate1, watchLastSentDate1, watchEndDate1); 621 } 622 623 624 628 public static void exportMessageFoldersForMember(XMLWriter xmlWriter, String memberName) 629 throws ForeignKeyNotFoundException, IOException , DatabaseException, ExportException { 630 try { 631 exportMessageFoldersForMember(xmlWriter, 632 DAOFactory.getMemberDAO().getMemberIDFromMemberName(memberName)); 633 } catch (ObjectNotFoundException e) { 634 throw new ForeignKeyNotFoundException("Can't find member with name \""+memberName+"\"."); 635 } 636 } 637 638 public static void exportMessageFoldersForMember(XMLWriter xmlWriter, int memberID) 639 throws IOException , DatabaseException, ExportException { 640 Collection messageFolders=ExportWebHelper.execSqlQuery( 641 "SELECT FolderName, FolderOrder, FolderCreationDate, FolderModifiedDate"+ 642 " FROM "+MessageFolderDAO.TABLE_NAME+ 643 " WHERE MemberID="+Integer.toString(memberID)); 644 Iterator iter=messageFolders.iterator(); 645 String [] messageFolder=null; 646 xmlWriter.startElement("MessageFolderList"); 648 try { 649 while ( (messageFolder=(String [])iter.next()) !=null) { 650 if (messageFolder.length!=4) { 651 throw new ExportException("Error while retrieving data about message folder for memberID=="+memberID); 652 } 653 xmlWriter.startElement("MessageFolder"); 654 xmlWriter.startElement("FolderName"); 655 xmlWriter.writeData(DisableHtmlTagFilter.filter(messageFolder[0])); 656 xmlWriter.endElement("FolderName"); 657 xmlWriter.startElement("FolderOrder"); 658 xmlWriter.writeData(messageFolder[1]); 659 xmlWriter.endElement("FolderOrder"); 660 xmlWriter.startElement("FolderCreationDate"); 661 xmlWriter.writeData(messageFolder[2]); 662 xmlWriter.endElement("FolderCreationDate"); 663 xmlWriter.startElement("FolderModifiedDate"); 664 xmlWriter.writeData(messageFolder[3]); 665 xmlWriter.endElement("FolderModifiedDate"); 666 xmlWriter.endElement("MessageFolder"); 667 } 668 } catch (NoSuchElementException e) { 669 } 671 xmlWriter.endElement("MessageFolderList"); 672 } 674 675 public static void exportGlobalPermissionsForMember(XMLWriter xmlWriter, String memberName) 676 throws ForeignKeyNotFoundException, IOException , DatabaseException, ExportException { 677 try { 678 exportGlobalPermissionsForMember(xmlWriter, 679 DAOFactory.getMemberDAO().getMemberIDFromMemberName(memberName)); 680 } catch (ObjectNotFoundException e) { 681 throw new ForeignKeyNotFoundException("Can't find member with name \""+memberName+"\"."); 682 } 683 } 684 685 public static void exportGlobalPermissionsForMember(XMLWriter xmlWriter, int memberID) 686 throws IOException , DatabaseException, ExportException { 687 Collection globalPermissions=ExportWebHelper.execSqlQuery( 688 "SELECT Permission"+ 689 " FROM "+MemberPermissionDAO.TABLE_NAME+ 690 " WHERE MemberID="+Integer.toString(memberID)); 691 Iterator iter=globalPermissions.iterator(); 692 String [] globalPermission=null; 693 xmlWriter.startElement("GlobalPermissionList"); 695 try { 696 while ( (globalPermission=(String [])iter.next()) !=null) { 697 if (globalPermission.length!=1) { 698 throw new ExportException("Error while retrieving data about global permissions for memberID=="+memberID); 699 } 700 xmlWriter.startElement("GlobalPermission"); 701 xmlWriter.writeData(globalPermission[0]); 702 xmlWriter.endElement("GlobalPermission"); 703 } 704 } catch (NoSuchElementException e) { 705 } 707 xmlWriter.endElement("GlobalPermissionList"); 708 } 710 711 public static void exportGlobalWatchesForMember(XMLWriter xmlWriter, String memberName) 712 throws ForeignKeyNotFoundException, IOException , DatabaseException, ExportException { 713 try { 714 exportGlobalWatchesForMember(xmlWriter, 715 DAOFactory.getMemberDAO().getMemberIDFromMemberName(memberName)); 716 } catch (ObjectNotFoundException e) { 717 throw new ForeignKeyNotFoundException("Can't find member with name \""+memberName+"\"."); 718 } 719 } 720 721 public static void exportGlobalWatchesForMember(XMLWriter xmlWriter, int memberID) 722 throws IOException , DatabaseException, ExportException { 723 Collection globalWatches=ExportWebHelper.execSqlQuery( 724 "SELECT WatchType, WatchOption, WatchStatus, WatchCreationDate, WatchLastSentDate, WatchEndDate"+ 725 " FROM "+WatchDAO.TABLE_NAME+ 726 " WHERE CategoryID=0 AND ForumID=0 AND ThreadID=0"+ 727 " AND MemberID="+Integer.toString(memberID)); 728 Iterator iter=globalWatches.iterator(); 729 String [] globalWatch=null; 730 xmlWriter.startElement("GlobalWatchList"); 732 try { 733 while ( (globalWatch=(String [])iter.next()) !=null) { 734 if (globalWatch.length!=6) { 735 throw new ExportException("Error while retrieving data about global watch for memberID=="+memberID); 736 } 737 xmlWriter.startElement("GlobalWatch"); 738 xmlWriter.startElement("WatchType"); 739 xmlWriter.writeData(globalWatch[0]); 740 xmlWriter.endElement("WatchType"); 741 xmlWriter.startElement("WatchOption"); 742 xmlWriter.writeData(globalWatch[1]); 743 xmlWriter.endElement("WatchOption"); 744 xmlWriter.startElement("WatchStatus"); 745 xmlWriter.writeData(globalWatch[2]); 746 xmlWriter.endElement("WatchStatus"); 747 xmlWriter.startElement("WatchCreationDate"); 748 xmlWriter.writeData(globalWatch[3]); 749 xmlWriter.endElement("WatchCreationDate"); 750 xmlWriter.startElement("WatchLastSentDate"); 751 xmlWriter.writeData(globalWatch[4]); 752 xmlWriter.endElement("WatchLastSentDate"); 753 xmlWriter.startElement("WatchEndDate"); 754 xmlWriter.writeData(globalWatch[5]); 755 xmlWriter.endElement("WatchEndDate"); 756 xmlWriter.endElement("GlobalWatch"); 757 } 758 } catch (NoSuchElementException e) { 759 } 761 xmlWriter.endElement("GlobalWatchList"); 762 } 764 765 public static void exportMember(XMLWriter xmlWriter, String memberName) 766 throws ForeignKeyNotFoundException, IOException , DatabaseException, ExportException { 767 try { 768 exportMember(xmlWriter, 769 DAOFactory.getMemberDAO().getMemberIDFromMemberName(memberName)); 770 } catch (ObjectNotFoundException e) { 771 throw new ForeignKeyNotFoundException("Can't find member with name \""+memberName+"\"."); 772 } 773 } 774 775 public static void exportMember(XMLWriter xmlWriter, int memberID) 776 throws IOException , DatabaseException, ExportException { 777 Collection member1=ExportWebHelper.execSqlQuery( 778 "SELECT MemberName, MemberPassword, MemberFirstEmail, MemberEmail,"+ 779 " MemberEmailVisible, MemberNameVisible, MemberFirstIP, MemberLastIP,"+ 780 " MemberViewCount, MemberPostCount, MemberCreationDate, MemberModifiedDate, MemberExpireDate, "+ 781 " MemberLastLogon, MemberOption, MemberStatus, MemberActivateCode,"+ 782 " MemberTempPassword, MemberMessageCount, MemberMessageOption, MemberPostsPerPage,"+ 783 " MemberWarnCount, MemberVoteCount, MemberVoteTotalStars, MemberRewardPoints,"+ 784 " MemberTitle, MemberTimeZone, MemberSignature, MemberAvatar,"+ 785 " MemberSkin, MemberLanguage, MemberFirstname, MemberLastname,"+ 786 " MemberGender, MemberBirthday, MemberAddress, MemberCity,"+ 787 " MemberState, MemberCountry, MemberPhone, MemberMobile,"+ 788 " MemberFax, MemberCareer, MemberHomepage, MemberYahoo,"+ 789 " MemberAol, MemberIcq, MemberMsn, MemberCoolLink1,"+ 790 " MemberCoolLink2 FROM "+ 791 MemberDAO.TABLE_NAME+ 792 " WHERE MemberID="+Integer.toString(memberID)); 793 Iterator iter=member1.iterator(); 794 String [] member=null; 795 try { 797 if ( (member=(String [])iter.next()) ==null) { 798 throw new ExportException("Can't find data for memberID=="+memberID); 799 } 800 if (member.length!=50) { 801 throw new ExportException("Error while retrieving data about member with memberID=="+memberID); 802 } 803 } catch (NoSuchElementException e) { 804 throw new ExportException("Can't find data for memberID=="+memberID); 805 } 806 807 if (memberID==MVNForumConstant.MEMBER_ID_OF_GUEST) { 809 xmlWriter.startElement("Member", new String []{"class", "Guest"}); 810 } else if (memberID==MVNForumConstant.MEMBER_ID_OF_ADMIN) { 811 xmlWriter.startElement("Member", new String []{"class", "Admin"}); 812 } else { 813 xmlWriter.startElement("Member"); 814 } 815 816 xmlWriter.startElement("MemberName"); 817 xmlWriter.writeData(member[0]); 818 xmlWriter.endElement("MemberName"); 819 xmlWriter.startElement("MemberPassword"); 820 xmlWriter.writeData(DisableHtmlTagFilter.filter(member[1])); 821 xmlWriter.endElement("MemberPassword"); 822 xmlWriter.startElement("MemberFirstEmail"); 823 xmlWriter.writeData(member[2]); 824 xmlWriter.endElement("MemberFirstEmail"); 825 xmlWriter.startElement("MemberEmail"); 826 xmlWriter.writeData(member[3]); 827 xmlWriter.endElement("MemberEmail"); 828 xmlWriter.startElement("MemberEmailVisible"); 829 xmlWriter.writeData(member[4]); 830 xmlWriter.endElement("MemberEmailVisible"); 831 xmlWriter.startElement("MemberNameVisible"); 832 xmlWriter.writeData(member[5]); 833 xmlWriter.endElement("MemberNameVisible"); 834 xmlWriter.startElement("MemberFirstIP"); 835 xmlWriter.writeData(member[6]); 836 xmlWriter.endElement("MemberFirstIP"); 837 xmlWriter.startElement("MemberLastIP"); 838 xmlWriter.writeData(member[7]); 839 xmlWriter.endElement("MemberLastIP"); 840 xmlWriter.startElement("MemberViewCount"); 841 xmlWriter.writeData(member[8]); 842 xmlWriter.endElement("MemberViewCount"); 843 xmlWriter.startElement("MemberPostCount"); 844 xmlWriter.writeData(member[9]); 845 xmlWriter.endElement("MemberPostCount"); 846 847 xmlWriter.startElement("MemberCreationDate"); 848 xmlWriter.writeData(member[10]); 849 xmlWriter.endElement("MemberCreationDate"); 850 xmlWriter.startElement("MemberModifiedDate"); 851 xmlWriter.writeData(member[11]); 852 xmlWriter.endElement("MemberModifiedDate"); 853 xmlWriter.startElement("MemberExpireDate"); 854 xmlWriter.writeData(member[12]); 855 xmlWriter.endElement("MemberExpireDate"); 856 xmlWriter.startElement("MemberLastLogon"); 857 xmlWriter.writeData(member[13]); 858 xmlWriter.endElement("MemberLastLogon"); 859 xmlWriter.startElement("MemberOption"); 860 xmlWriter.writeData(member[14]); 861 xmlWriter.endElement("MemberOption"); 862 xmlWriter.startElement("MemberStatus"); 863 xmlWriter.writeData(member[15]); 864 xmlWriter.endElement("MemberStatus"); 865 xmlWriter.startElement("MemberActivateCode"); 866 xmlWriter.writeData(member[16]); 867 xmlWriter.endElement("MemberActivateCode"); 868 xmlWriter.startElement("MemberTempPassword"); 869 xmlWriter.writeData(DisableHtmlTagFilter.filter(member[17])); 870 xmlWriter.endElement("MemberTempPassword"); 871 xmlWriter.startElement("MemberMessageCount"); 872 xmlWriter.writeData(member[18]); 873 xmlWriter.endElement("MemberMessageCount"); 874 xmlWriter.startElement("MemberMessageOption"); 875 xmlWriter.writeData(member[19]); 876 xmlWriter.endElement("MemberMessageOption"); 877 xmlWriter.startElement("MemberPostsPerPage"); 878 xmlWriter.writeData(member[20]); 879 xmlWriter.endElement("MemberPostsPerPage"); 880 881 xmlWriter.startElement("MemberWarnCount"); 882 xmlWriter.writeData(member[21]); 883 xmlWriter.endElement("MemberWarnCount"); 884 xmlWriter.startElement("MemberVoteCount"); 885 xmlWriter.writeData(member[22]); 886 xmlWriter.endElement("MemberVoteCount"); 887 xmlWriter.startElement("MemberVoteTotalStars"); 888 xmlWriter.writeData(member[23]); 889 xmlWriter.endElement("MemberVoteTotalStars"); 890 xmlWriter.startElement("MemberRewardPoints"); 891 xmlWriter.writeData(member[24]); 892 xmlWriter.endElement("MemberRewardPoints"); 893 xmlWriter.startElement("MemberTitle"); 894 xmlWriter.writeData(DisableHtmlTagFilter.filter(member[25])); 895 xmlWriter.endElement("MemberTitle"); 896 xmlWriter.startElement("MemberTimeZone"); 897 xmlWriter.writeData(member[26]); 898 xmlWriter.endElement("MemberTimeZone"); 899 xmlWriter.startElement("MemberSignature"); 900 xmlWriter.writeData(DisableHtmlTagFilter.filter(member[27])); 901 xmlWriter.endElement("MemberSignature"); 902 xmlWriter.startElement("MemberAvatar"); 904 xmlWriter.writeData(member[28]); 905 xmlWriter.endElement("MemberAvatar"); 906 xmlWriter.startElement("MemberSkin"); 907 xmlWriter.writeData(member[29]); 908 xmlWriter.endElement("MemberSkin"); 909 xmlWriter.startElement("MemberLanguage"); 910 xmlWriter.writeData(member[30]); 911 xmlWriter.endElement("MemberLanguage"); 912 913 xmlWriter.startElement("MemberFirstname"); 914 xmlWriter.writeData(member[31]); 915 xmlWriter.endElement("MemberFirstname"); 916 xmlWriter.startElement("MemberLastname"); 917 xmlWriter.writeData(member[32]); 918 xmlWriter.endElement("MemberLastname"); 919 xmlWriter.startElement("MemberGender"); 920 xmlWriter.writeData(member[33]); 921 xmlWriter.endElement("MemberGender"); 922 xmlWriter.startElement("MemberBirthday"); 923 xmlWriter.writeData(member[34]); 924 xmlWriter.endElement("MemberBirthday"); 925 xmlWriter.startElement("MemberAddress"); 926 xmlWriter.writeData(DisableHtmlTagFilter.filter(member[35])); 927 xmlWriter.endElement("MemberAddress"); 928 xmlWriter.startElement("MemberCity"); 929 xmlWriter.writeData(member[36]); 930 xmlWriter.endElement("MemberCity"); 931 xmlWriter.startElement("MemberState"); 932 xmlWriter.writeData(member[37]); 933 xmlWriter.endElement("MemberState"); 934 xmlWriter.startElement("MemberCountry"); 935 xmlWriter.writeData(DisableHtmlTagFilter.filter(member[38])); 936 xmlWriter.endElement("MemberCountry"); 937 xmlWriter.startElement("MemberPhone"); 938 xmlWriter.writeData(member[39]); 939 xmlWriter.endElement("MemberPhone"); 940 xmlWriter.startElement("MemberMobile"); 941 xmlWriter.writeData(member[40]); 942 xmlWriter.endElement("MemberMobile"); 943 944 xmlWriter.startElement("MemberFax"); 945 xmlWriter.writeData(member[41]); 946 xmlWriter.endElement("MemberFax"); 947 xmlWriter.startElement("MemberCareer"); 948 xmlWriter.writeData(member[42]); 949 xmlWriter.endElement("MemberCareer"); 950 xmlWriter.startElement("MemberHomepage"); 951 xmlWriter.writeData(DisableHtmlTagFilter.filter(member[43])); 952 xmlWriter.endElement("MemberHomepage"); 953 xmlWriter.startElement("MemberYahoo"); 954 xmlWriter.writeData(DisableHtmlTagFilter.filter(member[44])); 955 xmlWriter.endElement("MemberYahoo"); 956 xmlWriter.startElement("MemberAol"); 957 xmlWriter.writeData(DisableHtmlTagFilter.filter(member[45])); 958 xmlWriter.endElement("MemberAol"); 959 xmlWriter.startElement("MemberIcq"); 960 xmlWriter.writeData(DisableHtmlTagFilter.filter(member[46])); 961 xmlWriter.endElement("MemberIcq"); 962 xmlWriter.startElement("MemberMsn"); 963 xmlWriter.writeData(DisableHtmlTagFilter.filter(member[47])); 964 xmlWriter.endElement("MemberMsn"); 965 xmlWriter.startElement("MemberCoolLink1"); 966 xmlWriter.writeData(DisableHtmlTagFilter.filter(member[48])); 967 xmlWriter.endElement("MemberCoolLink1"); 968 xmlWriter.startElement("MemberCoolLink2"); 969 xmlWriter.writeData(DisableHtmlTagFilter.filter(member[49])); 970 xmlWriter.endElement("MemberCoolLink2"); 971 972 exportGlobalPermissionsForMember(xmlWriter, memberID); 973 exportMessageFoldersForMember(xmlWriter, memberID); 974 exportGlobalWatchesForMember(xmlWriter, memberID); 975 xmlWriter.endElement("Member"); 976 } 978 979 public static void exportMemberList(XMLWriter xmlWriter) 980 throws IOException , DatabaseException, ExportException { 981 Collection memberIDs=ExportWebHelper.execSqlQuery( 982 "SELECT MemberID"+ 983 " FROM "+MemberDAO.TABLE_NAME); 984 Iterator iter=memberIDs.iterator(); 985 String [] memberID=null; 986 xmlWriter.startElement("MemberList"); 988 989 if (MVNForumConstant.MEMBER_ID_OF_GUEST < MVNForumConstant.MEMBER_ID_OF_ADMIN) { 990 try { exportMember(xmlWriter, MVNForumConstant.MEMBER_ID_OF_GUEST); } 991 catch (Exception e) { } 992 try { exportMember(xmlWriter, MVNForumConstant.MEMBER_ID_OF_ADMIN); } 993 catch (Exception e) { } 994 } else { 995 try { exportMember(xmlWriter, MVNForumConstant.MEMBER_ID_OF_ADMIN); } 996 catch (Exception e) { } 997 try { exportMember(xmlWriter, MVNForumConstant.MEMBER_ID_OF_GUEST); } 998 catch (Exception e) { } 999 } 1000 try { 1001 while ( (memberID=(String [])iter.next()) !=null) { 1002 if (memberID.length!=1) { 1003 throw new ExportException("Error while retrieving list of members."); 1004 } 1005 try { 1006 int i=Integer.parseInt(memberID[0]); 1007 if ((i!=MVNForumConstant.MEMBER_ID_OF_GUEST) && (i!=MVNForumConstant.MEMBER_ID_OF_ADMIN)) { 1008 exportMember(xmlWriter, i); 1009 } 1010 } catch (NumberFormatException e) { 1011 throw new ExportException("Error while retrieving list of members."); 1012 } 1013 } 1014 } catch (NoSuchElementException e) { 1015 } 1017 xmlWriter.endElement("MemberList"); 1018 } 1020 1021 1022 1023} 1024 | Popular Tags |