/* Copyright (c) 2001 - 2007 TOPP - www.openplans.org. All rights reserved. * This code is licensed under the GPL 2.0 license, availible at the root * application directory. */ package org.geoserver.usermanagement; import net.sf.json.JSONArray; import net.sf.json.JSONNull; import net.sf.json.JSONObject; import net.sf.json.util.JSONUtils; import org.acegisecurity.GrantedAuthority; import org.acegisecurity.userdetails.UserDetails; import org.acegisecurity.userdetails.UsernameNotFoundException; import org.acegisecurity.userdetails.memory.UserAttribute; import org.acegisecurity.userdetails.memory.UserAttributeEditor; import org.geoserver.rest.FreemarkerFormat; import org.geoserver.rest.JSONFormat; import org.geoserver.rest.MapResource; import org.geoserver.rest.AutoXMLFormat; import org.geoserver.security.EditableUserDAO; import org.restlet.Context; import org.restlet.data.MediaType; import org.restlet.data.Request; import org.restlet.data.Response; import org.restlet.data.Status; import org.restlet.resource.OutputRepresentation; import org.restlet.resource.Representation; import org.restlet.resource.Resource; import org.restlet.resource.StringRepresentation; import org.springframework.dao.DataAccessException; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.Writer; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; /** * Resource for the user list. * * @author David Winslow <dwinslow@openplans.org> */ public class UserListResource extends MapResource { private EditableUserDAO myUserService; public void setUserDAO(EditableUserDAO dao){ myUserService = dao; } public EditableUserDAO getUserDAO(){ return myUserService; } public Map getSupportedFormats() { Map theMap = new HashMap(); theMap.put("json", new JSONFormat()); theMap.put("html", new FreemarkerFormat("HTMLTemplates/users.ftl", getClass(), MediaType.TEXT_HTML)); theMap.put("xml", new AutoXMLFormat()); theMap.put(null, theMap.get("html")); return theMap; } public boolean allowGet() { return true; } public Map getMap() { Map theMap = new HashMap(); theMap.put("users", getAllUserInfo()); Iterator it = theMap.entrySet().iterator(); while (it.hasNext()) { Map.Entry entry = (Map.Entry) it.next(); } return theMap; } public boolean allowPut() { return false; } public boolean allowDelete() { return false; } /** * Build a list of the names of all users. * * @author David Winslow */ private List getAllUserInfo() { List users = new ArrayList(); Iterator it = myUserService.getNameSet().iterator(); while (it.hasNext()) { users.add((it.next().toString())); } return users; } }