1 16 package org.outerj.daisy.frontend; 17 18 import org.outerj.daisy.frontend.util.AbstractDaisyApple; 19 import org.outerj.daisy.frontend.util.XmlObjectXMLizable; 20 import org.outerj.daisy.repository.Repository; 21 import org.outerj.daisy.repository.user.UserManager; 22 import org.apache.avalon.framework.service.Serviceable; 23 import org.apache.avalon.framework.service.ServiceManager; 24 import org.apache.avalon.framework.service.ServiceException; 25 import org.apache.cocoon.components.flow.apples.StatelessAppleController; 26 import org.apache.cocoon.components.flow.apples.AppleRequest; 27 import org.apache.cocoon.components.flow.apples.AppleResponse; 28 import org.apache.xmlbeans.XmlObject; 29 30 import java.util.Map ; 31 import java.util.HashMap ; 32 33 public class SelectRoleOrUserApple extends AbstractDaisyApple implements Serviceable, StatelessAppleController { 34 private ServiceManager serviceManager; 35 36 public void service(ServiceManager serviceManager) throws ServiceException { 37 this.serviceManager = serviceManager; 38 } 39 40 protected void processInternal(AppleRequest appleRequest, AppleResponse appleResponse) throws Exception { 41 Repository repository = WikiHelper.getRepository(appleRequest.getCocoonRequest(), serviceManager); 42 if (repository.isInRole("guest") && repository.getActiveRoleIds().length == 1) { 43 throw new Exception ("User or role listings not available for users acting in guest role."); 44 } 45 UserManager userManager = repository.getUserManager(); 46 String type = appleRequest.getSitemapParameter("type"); 47 XmlObject data; 48 if (type.equals("role")) { 49 data = userManager.getRoles().getXml(); 50 } else if (type.equals("user")) { 51 data = userManager.getPublicUserInfos(); 52 } else { 53 throw new Exception ("Invalid value for type parameter: " + type); 54 } 55 56 Map viewData = new HashMap (); 57 viewData.put("mountPoint", getMountPoint()); 58 viewData.put("pageXml", new XmlObjectXMLizable(data)); 59 viewData.put("repository", repository); 60 61 appleResponse.sendPage("Select-" + type + "-Pipe", viewData); 62 } 63 } 64 | Popular Tags |