1 16 package org.outerj.daisy.frontend.admin; 17 18 import org.apache.avalon.framework.thread.ThreadSafe; 19 import org.apache.avalon.framework.parameters.Parameters; 20 import org.apache.avalon.framework.service.Serviceable; 21 import org.apache.avalon.framework.service.ServiceManager; 22 import org.apache.avalon.framework.service.ServiceException; 23 import org.apache.cocoon.acting.Action; 24 import org.apache.cocoon.environment.Redirector; 25 import org.apache.cocoon.environment.SourceResolver; 26 import org.apache.cocoon.environment.ObjectModelHelper; 27 import org.apache.cocoon.environment.Request; 28 import org.outerj.daisy.repository.Repository; 29 import org.outerj.daisy.repository.user.Role; 30 import org.outerj.daisy.frontend.WikiHelper; 31 32 import java.util.Map ; 33 34 public class ProtectAdminPagesAction implements Action, ThreadSafe, Serviceable { 35 private ServiceManager serviceManager; 36 37 public void service(ServiceManager serviceManager) throws ServiceException { 38 this.serviceManager = serviceManager; 39 } 40 41 public Map act(Redirector redirector, SourceResolver sourceResolver, Map objectModel, String s, Parameters parameters) throws Exception { 42 Request request = ObjectModelHelper.getRequest(objectModel); 43 Repository repository = WikiHelper.getRepository(request, serviceManager); 44 if (!repository.isInRole(Role.ADMINISTRATOR)) 45 throw new Exception ("Admin pages are only accessible for users acting in the Administrator role."); 46 return null; 47 } 48 } 49 | Popular Tags |