package org.openedit.users; import java.util.Collection; import java.util.Iterator; import java.util.List; import org.openedit.data.SearcherManager; import org.openedit.event.WebEventHandler; import com.openedit.OpenEditException; import com.openedit.hittracker.HitTracker; import com.openedit.users.Authenticator; import com.openedit.users.Group; import com.openedit.users.User; import com.openedit.users.UserManager; import com.openedit.users.UserManagerException; import com.openedit.users.authenticate.AuthenticationRequest; import com.openedit.users.filesystem.PermissionsManager; import com.openedit.users.filesystem.XmlUserArchive; import com.openedit.util.StringEncryption; public class BaseUserManager implements UserManager { protected String fieldCatalogId; protected SearcherManager fieldSearcherManager; public String getCatalogId() { return fieldCatalogId; } public void setCatalogId(String inCatalogId) { fieldCatalogId = inCatalogId; } public SearcherManager getSearcherManager() { return fieldSearcherManager; } public void setSearcherManager(SearcherManager inSearcherManager) { fieldSearcherManager = inSearcherManager; } public GroupSearcher getGroupSearcher() { return (GroupSearcher)getSearcherManager().getSearcher(getCatalogId(), "group"); } public UserSearcher getUserSearcher() { return (UserSearcher)getSearcherManager().getSearcher(getCatalogId(), "user"); } protected XmlUserArchive getXmlUserArchive() { return getUserSearcher().getXmlUserArchive(); //This might be in another catalogid } @Override public List getSystemPermissionGroups() { return getXmlUserArchive().getSystemPermissionGroups(); } @Override public Group getGroup(String inGroupId) throws UserManagerException { return getGroupSearcher().getGroup(inGroupId); } @Override public HitTracker getGroups() { return getXmlUserArchive().getGroups(); } @Override public User getUser(String inUserName) throws UserManagerException { return getUserSearcher().getUser(inUserName); } @Override public HitTracker getUsers() { return getUserSearcher().getAllHits(); } @Override public boolean authenticate(AuthenticationRequest inReq) { return getXmlUserArchive().authenticate(inReq); } @Override public boolean authenticate(User inUser, String inPassword) { return getXmlUserArchive().authenticate(inUser, inPassword); } @Override public Group createGroup() throws UserManagerException { return getXmlUserArchive().createGroup(); } @Override public Group createGroup(String inGroupId) throws UserManagerException { return getXmlUserArchive().createGroup(inGroupId); } @Override public Group createGroup(String inGroupId, String inGroupName) throws UserManagerException { return getXmlUserArchive().createGroup(inGroupId, inGroupName); } @Override public User createUser(String inUserName, String inPassword) throws UserManagerException { return getXmlUserArchive().createUser(inUserName, inPassword); } @Override public void deleteGroup(Group inGroup) throws UserManagerException { getGroupSearcher().delete(inGroup,null); } @Override public void deleteUser(User inUser) throws UserManagerException { getUserSearcher().delete(inUser, null); } public void deleteGroups(List inGroups) throws UserManagerException { if (inGroups != null) { for (Iterator iter = inGroups.iterator(); iter.hasNext();) { Group group = (Group) iter.next(); deleteGroup(group); } } } public void deleteUsers(List inUsers) throws UserManagerException { if (inUsers != null) { for (Iterator iter = inUsers.iterator(); iter.hasNext();) { User user = (User) iter.next(); deleteUser(user); } } } @Override public User getUserByEmail(String inEmailaddress) throws UserManagerException { return getUserSearcher().getUserByEmail(inEmailaddress); } @Override public void saveUser(User inUser) { getUserSearcher().saveData(inUser,null); } @Override public void saveGroup(Group inGroup) { getGroupSearcher().saveData(inGroup,null); } @Override //TODO: Use the Searcher here public HitTracker getUsersInGroup(Group inGroup) { return getXmlUserArchive().getUsersInGroup(inGroup); } @Override //TODO: Use the Searcher here public HitTracker getUsersInGroup(String inString) { return getXmlUserArchive().getUsersInGroup(inString); } ///TODO: Refactor all the authentication to here @Override public Authenticator getAuthenticator() { return getXmlUserArchive().getAuthenticator(); } @Override public StringEncryption getStringEncryption() { return getXmlUserArchive().getStringEncryption(); } @Override public String encryptPassword(User inUser) throws OpenEditException { return getXmlUserArchive().encryptPassword(inUser); } @Override public String decryptPassword(User inUser) throws OpenEditException { return getXmlUserArchive().decryptPassword(inUser); } @Override public void setWebEventHandler(WebEventHandler inHandler) { getXmlUserArchive().setWebEventHandler(inHandler); } @Override public void logout(User inUser) { getXmlUserArchive().logout(inUser); } @Override public PermissionsManager getPermissionsManager() { return getXmlUserArchive().getPermissionsManager(); } @Override public User createGuestUser(String inAccount, String inPassword, String inGroupname) { return getXmlUserArchive().createGuestUser(inAccount, inPassword, inGroupname); } @Override public String getScreenName(String inUserName) { return getXmlUserArchive().getScreenName(inUserName); } @Override public void flush() { getXmlUserArchive().flush(); } @Override public Collection listGroupIds() { return getXmlUserArchive().listGroupIds(); } @Override public String nextId() { return getXmlUserArchive().nextId(); } @Override @Deprecated /** */ public User loadUser(String inId) { return getXmlUserArchive().loadUser(inId); } @Override public Collection listUserNames() { return getXmlUserArchive().listUserNames(); } }