1 40 package com.mvnforum.admin.importexport.jive; 41 42 import org.apache.commons.codec.binary.Base64; 43 import org.apache.commons.codec.binary.Hex; 44 import com.mvnforum.MVNForumConfig; 45 import com.mvnforum.admin.*; 46 import com.mvnforum.auth.MVNForumPermission; 47 import net.myvietnam.mvncore.exception.*; 48 49 59 public class JiveXML { 60 61 public static String allForumsPassword = ""; 62 public static String rootCategoryName = "General"; 63 public static String rootCategoryDesc = "Forums imported from Jive"; 64 public static String adminName = "Admin"; 65 public static String guestName = MVNForumConfig.getDefaultGuestName(); 66 67 71 public static boolean foundAdminUser = false; 72 public static int rootCategoryID = -1; 73 74 public JiveXML() throws DatabaseException, CreateException, 75 DuplicateKeyException, ObjectNotFoundException, ForeignKeyNotFoundException { 76 super(); 77 foundAdminUser=false; 78 79 83 ImportJive.createDefaultAdminMember(); 84 ImportJive.createDefaultGuestMember(); 85 ImportJive.createDefaultRegisteredMembersGroup(); 86 ImportJive.createDefaultRanks(); 87 88 94 ImportJive.createRootCategory(); 95 } 96 97 public static void addedForum(ForumXML forumXML) { 98 } 100 101 public static void addedThread(ThreadXML threadXML) { 102 } 104 105 public static void addedPost(PostXML postXML) { 106 } 108 109 110 125 public static String convertPassword(String jiveEncodedPassword) { 126 String mvnEncodedPassword=null; 127 try { 128 byte[] decodedByteArray = Hex.decodeHex(jiveEncodedPassword.toCharArray()); 129 mvnEncodedPassword=new String (Base64.encodeBase64(decodedByteArray)); 130 } catch (Exception e) { 131 mvnEncodedPassword=null; 132 } 133 return mvnEncodedPassword; 134 } 135 136 public static int[] convertMemberPermission(String jivePermission) { 137 return convertPermission(jivePermission); 138 } 139 public static int[] convertGroupPermission(String jivePermission) { 140 return convertPermission(jivePermission); 141 } 142 public static int[] convertMemberForumPermission(String jivePermission) { 143 return convertPermission(jivePermission); 144 } 145 public static int[] convertGroupForumPermission(String jivePermission) { 146 return convertPermission(jivePermission); 147 } 148 protected static int[] convertPermission(String jivePermission) { 149 if ( (jivePermission==null) || (jivePermission.equalsIgnoreCase("NONE")) ) { 151 return new int[]{MVNForumPermission.PERMISSION_NO_PERMISSIONS}; 152 } else if (jivePermission.equalsIgnoreCase("SYSTEM_ADMIN")) { 153 return new int[] {MVNForumPermission.PERMISSION_SYSTEM_ADMIN}; 154 } else if (jivePermission.equalsIgnoreCase("CATEGORY_ADMIN")) { 155 return new int[] {MVNForumPermission.PERMISSION_CATEGORY_ADMIN, 156 MVNForumPermission.PERMISSION_CATEGORY_MODERATOR, 157 MVNForumPermission.PERMISSION_ADD_CATEGORY, 158 MVNForumPermission.PERMISSION_EDIT_CATEGORY, 159 MVNForumPermission.PERMISSION_DELETE_CATEGORY}; 160 } else if (jivePermission.equalsIgnoreCase("FORUM_ADMIN")) { 161 return new int[] {MVNForumPermission.PERMISSION_FORUM_ADMIN, 162 MVNForumPermission.PERMISSION_FORUM_MODERATOR, 163 MVNForumPermission.PERMISSION_ADD_FORUM, 164 MVNForumPermission.PERMISSION_EDIT_FORUM, 165 MVNForumPermission.PERMISSION_DELETE_FORUM}; 166 } else if (jivePermission.equalsIgnoreCase("GROUP_ADMIN")) { 167 return new int[] {MVNForumPermission.PERMISSION_GROUP_ADMIN, 168 MVNForumPermission.PERMISSION_GROUP_MODERATOR}; 169 } else if (jivePermission.equalsIgnoreCase("USER_ADMIN")) { 170 return new int[] {MVNForumPermission.PERMISSION_USER_ADMIN, 171 MVNForumPermission.PERMISSION_USER_MODERATOR}; 172 } else if (jivePermission.equalsIgnoreCase("MODERATOR")) { 173 return new int[] {MVNForumPermission.PERMISSION_CATEGORY_MODERATOR, 174 MVNForumPermission.PERMISSION_FORUM_MODERATOR, 175 MVNForumPermission.PERMISSION_GROUP_MODERATOR, 176 MVNForumPermission.PERMISSION_USER_MODERATOR}; 177 } else if (jivePermission.equalsIgnoreCase("MODERATE_THREADS")) { 178 return new int[] {MVNForumPermission.PERMISSION_READ_POST, 179 MVNForumPermission.PERMISSION_ADD_POST, 180 MVNForumPermission.PERMISSION_EDIT_POST, 181 MVNForumPermission.PERMISSION_DELETE_POST, 182 MVNForumPermission.PERMISSION_ADD_THREAD}; 183 } else if (jivePermission.equalsIgnoreCase("CREATE_THREAD")) { 184 return new int[] {MVNForumPermission.PERMISSION_ADD_THREAD}; 185 } else if (jivePermission.equalsIgnoreCase("MODERATE_MESSAGES")) { 186 return new int[] {MVNForumPermission.PERMISSION_READ_POST, 187 MVNForumPermission.PERMISSION_ADD_POST, 188 MVNForumPermission.PERMISSION_EDIT_POST, 189 MVNForumPermission.PERMISSION_DELETE_POST}; 190 } else if (jivePermission.equalsIgnoreCase("CREATE_MESSAGE")) { 191 return new int[] {MVNForumPermission.PERMISSION_ADD_POST}; 192 } else if (jivePermission.equalsIgnoreCase("CREATE_ATTACHMENT")) { 193 return new int[] {MVNForumPermission.PERMISSION_ADD_ATTACHMENT}; 194 } else if (jivePermission.equalsIgnoreCase("READ_FORUM")) { 195 return new int[] {MVNForumPermission.PERMISSION_READ_POST}; 196 } else if (jivePermission.equalsIgnoreCase("READ")) { 197 return new int[] {MVNForumPermission.PERMISSION_READ_POST}; 198 } else { 199 return new int[] {MVNForumPermission.PERMISSION_NO_PERMISSIONS}; 200 } 201 } 202 203 204 public void setJiveXmlVersion(String value) { 208 ImportJive.addMessage("Jive XML version = \""+value+"\""); 209 } 210 211 public void setJiveExportDate(String value) { 212 ImportJive.addMessage("Jive XML export date = \""+value+"\""); 213 } 214 215 public void addJiveUserPermission(String usertype, String username, String jivePermission) 216 throws CreateException, DatabaseException, ObjectNotFoundException, 217 ForeignKeyNotFoundException { 218 if (usertype==null) { 219 throw new CreateException("Not enough data to create a member global permission."); 220 221 } else if (usertype.equalsIgnoreCase("ANONYMOUS")) { 222 int[] perms = JiveXML.convertMemberPermission(jivePermission); 223 for (int j=0; j<perms.length; j++) { 224 try { 225 JiveXML.addGuestMemberPermission(Integer.toString(perms[j])); 226 } catch (DuplicateKeyException e) { 227 232 } 233 } 234 235 } else if (usertype.equalsIgnoreCase("REGISTERED_USERS")) { 236 int[] perms = JiveXML.convertGroupPermission(jivePermission); 237 for (int j=0; j<perms.length; j++) { 238 try { 239 JiveXML.addRegisteredMembersGroupPermission(Integer.toString(perms[j])); 240 } catch (DuplicateKeyException e) { 241 246 } 247 } 248 249 } else if (usertype.equalsIgnoreCase("USER")) { 250 int[] perms = JiveXML.convertMemberPermission(jivePermission); 251 for (int j=0; j<perms.length; j++) { 252 try { 253 JiveXML.addMemberPermission(username, Integer.toString(perms[j])); 254 } catch (DuplicateKeyException e) { 255 260 } 261 } 262 263 } else { 264 throw new CreateException("Invalid usertype. This Jive user global permission is ignored."); 265 } 266 } 267 268 public void addJiveGroupPermission(String groupname, String jivePermission) 269 throws CreateException, DatabaseException, ObjectNotFoundException, 270 ForeignKeyNotFoundException { 271 if ( (groupname==null) || (groupname.equals("")) ) { 272 throw new CreateException("Not enough data to create a group global permission."); 273 } else { 274 int[] perms = JiveXML.convertGroupPermission(jivePermission); 275 for (int j=0; j<perms.length; j++) { 276 try { 277 JiveXML.addGroupPermission(groupname, Integer.toString(perms[j])); 278 } catch (DuplicateKeyException e) { 279 284 } 285 } 286 } 287 } 288 289 290 public static int[] addDefaultPermissionsToGuests = new int[]{ 294 }; 302 public static int[] addDefaultPermissionsToMembers = new int[]{ 303 MVNForumPermission.PERMISSION_USE_MESSAGE, 305 MVNForumPermission.PERMISSION_USE_AVATAR, 306 MVNForumPermission.PERMISSION_GET_ATTACHMENT 310 }; 311 312 318 public static void addMemberPermission(String username, String permission) 319 throws ObjectNotFoundException, CreateException, DatabaseException, 320 ForeignKeyNotFoundException, DuplicateKeyException { 321 MemberXML.addMemberPermission(username, permission); 322 } 323 324 329 public static void addRegisteredMembersGroupPermission(String permission) 330 throws CreateException, DatabaseException, DuplicateKeyException, 331 ForeignKeyNotFoundException { 332 GroupXML.addRegisteredMembersGroupPermission(permission); 333 } 334 335 340 public static void addGuestMemberPermission(String permission) 341 throws CreateException, DatabaseException, DuplicateKeyException, 342 ForeignKeyNotFoundException { 343 MemberXML.addGuestMemberPermission(permission); 344 } 345 346 352 public static void addGroupPermission(String groupname, String permission) 353 throws CreateException, DatabaseException, DuplicateKeyException, 354 ForeignKeyNotFoundException, ObjectNotFoundException { 355 GroupXML.addGroupPermission(groupname, permission); 356 } 357 358 359 } 360 361 | Popular Tags |