KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > mvnforum > admin > importexport > jive > JiveUserXML


1 /*
2  * $Header: /cvsroot/mvnforum/mvnforum/src/com/mvnforum/admin/importexport/jive/JiveUserXML.java,v 1.9 2006/04/14 17:36:29 minhnn Exp $
3  * $Author: minhnn $
4  * $Revision: 1.9 $
5  * $Date: 2006/04/14 17:36:29 $
6  *
7  * ====================================================================
8  *
9  * Copyright (C) 2002-2006 by MyVietnam.net
10  *
11  * All copyright notices regarding mvnForum MUST remain
12  * intact in the scripts and in the outputted HTML.
13  * The "powered by" text/logo with a link back to
14  * http://www.mvnForum.com and http://www.MyVietnam.net in
15  * the footer of the pages MUST remain visible when the pages
16  * are viewed on the internet or intranet.
17  *
18  * This program is free software; you can redistribute it and/or modify
19  * it under the terms of the GNU General Public License as published by
20  * the Free Software Foundation; either version 2 of the License, or
21  * any later version.
22  *
23  * This program is distributed in the hope that it will be useful,
24  * but WITHOUT ANY WARRANTY; without even the implied warranty of
25  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26  * GNU General Public License for more details.
27  *
28  * You should have received a copy of the GNU General Public License
29  * along with this program; if not, write to the Free Software
30  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
31  *
32  * Support can be obtained from support forums at:
33  * http://www.mvnForum.com/mvnforum/index
34  *
35  * Correspondence and Marketing Questions can be sent to:
36  * info at MyVietnam net
37  *
38  * @author: Igor Manic
39  */

40 package com.mvnforum.admin.importexport.jive;
41
42 import com.mvnforum.MVNForumConstant;
43 import com.mvnforum.admin.MemberXML;
44 import com.mvnforum.admin.importexport.XMLUtil;
45 import com.mvnforum.db.DAOFactory;
46 import net.myvietnam.mvncore.exception.*;
47 import net.myvietnam.mvncore.util.DateUtil;
48
49 /**
50  * @author Igor Manic
51  * @version $Revision: 1.9 $, $Date: 2006/04/14 17:36:29 $
52  * <br/>
53  * <code>JiveUserXML</code> class encapsulates processing of
54  * users' definitions found in the Jive XML file. It implements
55  * methods to be called from XML parsing routine, adds some additional
56  * processing and checking, and calls corresponding methods of
57  * <code>MemberXML</code> and other neccessary classes in order to perform
58  * the actual creation of a member.
59  */

60 public class JiveUserXML {
61
62     private MemberXML memberXML=null;
63     private boolean memberCreated=false;
64
65     public JiveUserXML() {
66         super();
67         memberXML=new MemberXML();
68         memberCreated=false;
69     }
70
71     public void setUserID(String JavaDoc id) {
72         memberXML.setMemberID(id);
73     }
74
75     /**
76      * This method simply calls <code>setUserID()</code>.
77      * It's defined only to avoid property-setter problems with digester
78      * (since it doesn't seem to recognize <code>setUserID()</code> as a setter
79      * method for <code>userID</code> property).
80      */

81     public void setUserId(String JavaDoc id) {
82         setUserID(id);
83     }
84
85     public void addJiveUser(String JavaDoc username, String JavaDoc password, String JavaDoc email,
86                             String JavaDoc emailVisible, String JavaDoc name, String JavaDoc nameVisible,
87                             String JavaDoc creationDate, String JavaDoc modifiedDate, String JavaDoc expireDate,
88                             String JavaDoc rewardPoints)
89     throws CreateException, DuplicateKeyException, ObjectNotFoundException,
90     DatabaseException, ForeignKeyNotFoundException {
91         /* First check if the digester already called this method.
92          * It will happen even under normal circumstances, if this user has
93          * subelements that need it already be defined, so they first call
94          * this method to create user before creating data that refer him.
95          */

96         if (memberCreated) return;
97         if ((username==null) || (username.equals("")) ||
98             (password==null) || (password.equals("")) ||
99             (email==null) || (email.equals("")) ) {
100             throw new CreateException("Not enough data to create a member.");
101         } else {
102             String JavaDoc mvnPassword = JiveXML.convertPassword(password);
103
104             String JavaDoc memberFirstName="";
105             String JavaDoc memberLastName="";
106             int i=name.indexOf(' ');
107             if (i<0) {
108                 memberFirstName=name;
109                 memberLastName="";
110             } else {
111                 memberFirstName=name.substring(0, i);
112                 memberLastName=name.substring(i+1, name.length());
113             }
114
115             if (emailVisible==null) emailVisible="true";
116             if (nameVisible==null) nameVisible="true";
117
118             if (username.equalsIgnoreCase(JiveXML.adminName)) {
119                 /* This user will become an admin.
120                  * NO MATTER WHETHER HE HAD SYSTEM_ADMIN PERMISSIONS IN JIVE OR NOT,
121                  * AFTER IMPORT HE WILL HAVE SYSTEM_ADMIN PERMISSION IN MVN FORUM.
122                  */

123                 updateAdmin(username, mvnPassword, email, emailVisible, name, nameVisible,
124                             creationDate, modifiedDate, rewardPoints,
125                             memberFirstName, memberLastName);
126             } else {
127                 ImportJive.addMessage("Adding Jive user \""+username+"\".");
128                 memberXML.addMember(username/*memberName*/, mvnPassword/*memberPassword*/,
129                       email/*memberFirstEmail*/, email/*memberEmail*/,
130                       emailVisible/*memberEmailVisible*/, nameVisible/*memberNameVisible*/,
131                       null/*memberFirstIP*/, null/*memberLastIP*/,
132                       null/*memberViewCount*/, null/*memberPostCount*/,
133                       creationDate/*memberCreationDate*/, modifiedDate/*memberModifiedDate*/,
134                       expireDate/*memberExpireDate*/ ,null/*memberLastLogon*/,
135                       null/*memberOption*/, null/*memberStatus*/,
136                       null/*memberActivateCode*/, null/*memberTempPassword*/,
137                       null/*memberMessageCount*/, null/*memberMessageOption*/,
138                       null/*memberPostsPerPage*/, null/*memberWarnCount*/,
139                       null/*memberVoteCount*/, null/*memberVoteTotalStars*/,
140                       rewardPoints/*memberRewardPoints*/, null/*memberTitle*/,
141                       null/*memberTimeZone*/, null/*memberSignature*/,
142                       null/*memberAvatar*/, null/*memberSkin*/,
143                       null/*memberLanguage*/,
144                       memberFirstName/*memberFirstname*/, memberLastName/*memberLastname*/,
145                       null/*memberGender*/, null/*memberBirthday*/, null/*memberAddress*/,
146                       null/*memberCity*/, null/*memberState*/, null/*memberCountry*/,
147                       null/*memberPhone*/, null/*memberMobile*/, null/*memberFax*/,
148                       null/*memberCareer*/, null/*memberHomepage*/, null/*memberYahoo*/,
149                       null/*memberAol*/, null/*memberIcq*/, null/*memberMsn*/,
150                       null/*memberCoolLink1*/, null/*memberCoolLink2*/);
151                 //ImportWebHelper.addMessage("Adding message folders \""+...+"\".");
152
memberXML.addMessageFolder(MVNForumConstant.MESSAGE_FOLDER_INBOX,
153                           null/*folderOrder*/,
154                           null/*folderCreationDate*/, null/*folderModifiedDate*/);
155                 memberXML.addMessageFolder(MVNForumConstant.MESSAGE_FOLDER_SENT,
156                           null/*folderOrder*/,
157                           null/*folderCreationDate*/, null/*folderModifiedDate*/);
158                 memberXML.addMessageFolder(MVNForumConstant.MESSAGE_FOLDER_DRAFT,
159                           null/*folderOrder*/,
160                           null/*folderCreationDate*/, null/*folderModifiedDate*/);
161                 memberXML.addMessageFolder(MVNForumConstant.MESSAGE_FOLDER_TRASH,
162                           null/*folderOrder*/,
163                           null/*folderCreationDate*/, null/*folderModifiedDate*/);
164             }
165
166             memberCreated=true;
167         }
168     }
169
170     private void updateAdmin(String JavaDoc username, String JavaDoc mvnPassword, String JavaDoc email,
171                              String JavaDoc emailVisible, String JavaDoc name, String JavaDoc nameVisible,
172                              String JavaDoc creationDate, String JavaDoc modifiedDate,
173                              String JavaDoc rewardPoints,
174                              String JavaDoc memberFirstName, String JavaDoc memberLastName)
175     throws CreateException, DuplicateKeyException, ObjectNotFoundException,
176     DatabaseException, ForeignKeyNotFoundException {
177         int memberID=MVNForumConstant.MEMBER_ID_OF_ADMIN;
178         memberXML.setMemberID(Integer.toString(memberID));
179         //for later use (to call memberXML.addMessageFolder)
180

181         int emailVisible1;
182         int nameVisible1;
183         java.sql.Timestamp JavaDoc modifiedDate1;
184         java.sql.Date JavaDoc memberBirthday1;
185         try {
186             emailVisible1 = (XMLUtil.stringToBooleanDef(emailVisible, false)?1:0);
187             nameVisible1 = (XMLUtil.stringToBooleanDef(nameVisible, false)?1:0);
188             modifiedDate1= XMLUtil.stringToSqlTimestampDefNull(modifiedDate);
189             memberBirthday1= new java.sql.Date JavaDoc(DateUtil.getCurrentGMTTimestamp().getTime());
190         } catch (NumberFormatException JavaDoc e) {
191             throw new CreateException("Invalid data for a member. Expected a number.");
192         }
193         ImportJive.addImportantMessage("Replacing default admin data with Jive admin user \""+username+"\".");
194         JiveXML.foundAdminUser=true;
195         DAOFactory.getMemberDAO().update(memberID,
196                      emailVisible1/*memberEmailVisible*/, nameVisible1/*memberNameVisible*/,
197                      modifiedDate1/*memberModifiedDate*/,
198                      0/*memberOption*/, 0/*memberStatus*/,
199                      0/*memberMessageOption*/, 0/*memberPostsPerPage*/,
200                      0/*memberTimeZone*/, ""/*memberSkin*/,
201                      ""/*memberLanguage*/,
202                      memberFirstName/*memberFirstname*/, memberLastName/*memberLastname*/,
203                      1/*memberGender,1=male*/, memberBirthday1/*memberBirthday*/,
204                      ""/*memberAddress*/, ""/*memberCity*/, ""/*memberState*/,
205                      ""/*memberCountry*/, ""/*memberPhone*/,
206                      ""/*memberMobile*/, ""/*memberFax*/,
207                      ""/*memberCareer*/, ""/*memberHomepage*/, ""/*memberYahoo*/,
208                      ""/*memberAol*/, ""/*memberIcq*/, ""/*memberMsn*/,
209                      ""/*memberCoolLink1*/, ""/*memberCoolLink2*/);
210         //todo Igor: not available: DAOFactory.getMemberDAO().updateMemberName(memberID, username);
211
DAOFactory.getMemberDAO().updatePassword(memberID, mvnPassword);
212         DAOFactory.getMemberDAO().updateEmail(memberID, email);
213         //todo Igor: not available: DAOFactory.getMemberDAO().updateCreationDate(memberID, creationDate);
214
//todo Igor: not available: DAOFactory.getMemberDAO().updateRewardPoints(memberID, rewardPoints);
215
}
216
217
218 }
219
220
221
Popular Tags