You are on page 1of 4

// Decompiled by DJ v3.10.10.93 Copyright 2007 Atanas Neshkov Date: 30/03/2012 14:27:05 // Home Page: http://members.fortunecity.com/neshkov/dj.html http://www.neshkov .com/dj.

html - Check often for new version! // Decompiler options: packimports(3) // Source File Name: UserServicePlugin.java package org.jivesoftware.openfire.plugin; import import import import import import import import import import java.io.File; java.util.*; org.jivesoftware.openfire.XMPPServer; org.jivesoftware.openfire.container.Plugin; org.jivesoftware.openfire.container.PluginManager; org.jivesoftware.openfire.group.*; org.jivesoftware.openfire.lockout.LockOutManager; org.jivesoftware.openfire.user.*; org.jivesoftware.util.*; org.xmpp.packet.JID;

public class UserServicePlugin implements Plugin, PropertyEventListener { public UserServicePlugin() { } public void initializePlugin(PluginManager manager, File pluginDirectory) { server = XMPPServer.getInstance(); userManager = server.getUserManager(); secret = JiveGlobals.getProperty("plugin.userservice.secret", ""); if(secret.equals("")) { secret = StringUtils.randomString(8); setSecret(secret); } enabled = JiveGlobals.getBooleanProperty("plugin.userservice.enabled", f alse); allowedIPs = StringUtils.stringToCollection(JiveGlobals.getProperty("plu gin.userservice.allowedIPs", "")); PropertyEventDispatcher.addListener(this); } public void destroyPlugin() { userManager = null; PropertyEventDispatcher.removeListener(this); } public void createUser(String username, String password, String name, String email, String groupNames) throws UserAlreadyExistsException { userManager.createUser(username, password, name, email); if(groupNames != null) { Collection groups = new ArrayList(); for(StringTokenizer tkn = new StringTokenizer(groupNames, ","); tkn.

hasMoreTokens();) try { groups.add(GroupManager.getInstance().getGroup(tkn.nextToken ())); } catch(GroupNotFoundException e) { } Group group; for(Iterator i$ = groups.iterator(); i$.hasNext(); group.getMembers( ).add(server.createJID(username, null))) group = (Group)i$.next(); } } public void deleteUser(String username) throws UserNotFoundException { User user = getUser(username); userManager.deleteUser(user); } public void disableUser(String username) throws UserNotFoundException { User user = getUser(username); LockOutManager.getInstance().disableAccount(username, null, null); } public void enableUser(String username) throws UserNotFoundException { User user = getUser(username); LockOutManager.getInstance().enableAccount(username); } public void updateUser(String username, String password, String name, String email, String groupNames) throws UserNotFoundException { User user = getUser(username); if(password != null) user.setPassword(password); if(name != null) user.setName(name); if(email != null) user.setEmail(email); if(groupNames != null) { Collection newGroups = new ArrayList(); for(StringTokenizer tkn = new StringTokenizer(groupNames, ","); tkn. hasMoreTokens();) try { newGroups.add(GroupManager.getInstance().getGroup(tkn.nextTo ken())); } catch(GroupNotFoundException e) { }

Collection existingGroups = GroupManager.getInstance().getGroups(use r); Collection groupsToAdd = new ArrayList(newGroups); groupsToAdd.removeAll(existingGroups); Collection groupsToDelete = new ArrayList(existingGroups); groupsToDelete.removeAll(newGroups); Group group; for(Iterator i$ = groupsToAdd.iterator(); i$.hasNext(); group.getMem bers().add(server.createJID(username, null))) group = (Group)i$.next(); Group group; for(Iterator i$ = groupsToDelete.iterator(); i$.hasNext(); group.get Members().remove(server.createJID(username, null))) group = (Group)i$.next(); } } private User getUser(String username) throws UserNotFoundException { JID targetJID = server.createJID(username, null); if(targetJID.getNode() == null) throw new UserNotFoundException("Username is null"); else return userManager.getUser(targetJID.getNode()); } public String getSecret() { return secret; } public void setSecret(String secret) { JiveGlobals.setProperty("plugin.userservice.secret", secret); this.secret = secret; } public Collection getAllowedIPs() { return allowedIPs; } public void setAllowedIPs(Collection allowedIPs) { JiveGlobals.setProperty("plugin.userservice.allowedIPs", StringUtils.col lectionToString(allowedIPs)); this.allowedIPs = allowedIPs; } public boolean isEnabled() { return enabled; } public void setEnabled(boolean enabled) { this.enabled = enabled;

JiveGlobals.setProperty("plugin.userservice.enabled", enabled ? "true" : "false"); } public void propertySet(String property, Map params) { if(property.equals("plugin.userservice.secret")) secret = (String)params.get("value"); else if(property.equals("plugin.userservice.enabled")) enabled = Boolean.parseBoolean((String)params.get("value")); else if(property.equals("plugin.userservice.allowedIPs")) allowedIPs = StringUtils.stringToCollection((String)params.get("valu e")); } public void propertyDeleted(String property, Map params) { if(property.equals("plugin.userservice.secret")) secret = ""; else if(property.equals("plugin.userservice.enabled")) enabled = false; else if(property.equals("plugin.userservice.allowedIPs")) allowedIPs = Collections.emptyList(); } public void xmlPropertySet(String s, Map map) { } public void xmlPropertyDeleted(String s, Map map) { } private private private private private } UserManager userManager; XMPPServer server; String secret; boolean enabled; Collection allowedIPs;

You might also like