1 16 package org.outerj.daisy.httpconnector.handlers; 17 18 import org.mortbay.http.HttpRequest; 19 import org.mortbay.http.HttpResponse; 20 import org.outerj.daisy.repository.Repository; 21 import org.outerj.daisy.repository.user.UserManager; 22 import org.outerj.daisy.repository.user.Roles; 23 import org.outerj.daisy.repository.user.Role; 24 import org.outerj.daisy.httpconnector.RequestHandler; 25 import org.outerj.daisy.xmlutil.LocalSAXParserFactory; 26 import org.outerx.daisy.x10.RoleDocument; 27 import org.apache.xmlbeans.XmlOptions; 28 29 import java.util.Map ; 30 31 public class RolesHandler implements RequestHandler { 32 public String getPathPattern() { 33 return "/role"; 34 } 35 36 public void handleRequest(Map matchMap, HttpRequest request, HttpResponse response, Repository repository) throws Exception { 37 UserManager userMan = repository.getUserManager(); 38 39 if (request.getMethod().equals(HttpRequest.__GET)) { 40 Roles roles = userMan.getRoles(); 41 roles.getXml().save(response.getOutputStream()); 42 response.commit(); 43 } else if (request.getMethod().equals(HttpRequest.__POST)) { 44 XmlOptions xmlOptions = new XmlOptions().setLoadUseXMLReader(LocalSAXParserFactory.newXmlReader()); 47 RoleDocument roleDoc = RoleDocument.Factory.parse(request.getInputStream(), xmlOptions); 48 RoleDocument.Role roleDocXml = roleDoc.getRole(); 49 String roleName = roleDocXml.getName(); 50 Role role = userMan.createRole(roleName); 51 String description = roleDocXml.getDescription(); 52 role.setDescription(description); 53 role.save(); 54 55 role.getXml().save(response.getOutputStream()); 56 response.commit(); 57 return; 58 } else { 59 response.sendError(HttpResponse.__405_Method_Not_Allowed); 60 return; 61 } 62 } 63 } 64 | Popular Tags |