[Yanel-commits] rev 34764 - public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet

michi at wyona.com michi at wyona.com
Thu Apr 3 16:19:49 CEST 2008


Author: michi
Date: 2008-04-03 16:19:48 +0200 (Thu, 03 Apr 2008)
New Revision: 34764

Modified:
   public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
Log:
use realm specific policy manager config if exists

Modified: public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
===================================================================
--- public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java	2008-04-03 14:16:37 UTC (rev 34763)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java	2008-04-03 14:19:48 UTC (rev 34764)
@@ -2155,38 +2155,26 @@
         String backToRealm = org.wyona.yanel.core.util.PathUtil.backToRealm(resource.getPath());
         StringBuffer sb = new StringBuffer("");
         try {
+            String viewId = request.getParameter(VIEW_ID_PARAM_NAME);
             if (usecase.equals("read")) {
                 Realm realm = map.getRealm(request.getServletPath());
                 String path = map.getPath(realm, request.getServletPath());
 
                 // TODO: Introduce a repository for the Yanel webapp
-                // TODO: Make this overwritable by the realm
-                File pmrcGlobalFile = org.wyona.commons.io.FileUtil.file(servletContextRealPath, "global-resource-configs/policy-manager_yanel-rc.xml");
+                File realmDir = new File(realm.getConfigFile().getParent());
+                File pmrcGlobalFile = org.wyona.commons.io.FileUtil.file(realmDir.getAbsolutePath(), "src" + File.separator + "webapp" + File.separator + "global-resource-configs/policy-manager_yanel-rc.xml");
+		if (!pmrcGlobalFile.isFile()) {
+                    // Fallback to global configuration
+                    pmrcGlobalFile = org.wyona.commons.io.FileUtil.file(servletContextRealPath, "global-resource-configs/policy-manager_yanel-rc.xml");
+                }
+
                 Resource policyManagerResource = yanel.getResourceManager().getResource(getEnvironment(request, response), realm, path, new ResourceConfiguration(new java.io.FileInputStream(pmrcGlobalFile)));
-                View view = ((ViewableV2) policyManagerResource).getView(null);
+                View view = ((ViewableV2) policyManagerResource).getView(viewId);
                 if (view != null) {
                     if (generateResponse(view, policyManagerResource, request, response, getDocument(NAMESPACE, "yanel"), -1, -1) != null) return;
                 }
                 log.error("Something went wrong!");
                 return;
-
-
-/*
-                String orderedByParam = request.getParameter("orderedBy");
-                int orderedBy = 0;
-                if (orderedByParam != null) orderedBy = new java.lang.Integer(orderedByParam).intValue();
-                boolean showParents = false;
-                String showParentsParam = request.getParameter("showParents");
-                if (showParentsParam != null) showParents = new java.lang.Boolean(showParentsParam).booleanValue();
-
-                boolean showTabs = true;
-                String showTabsParam = request.getParameter("showTabs");
-                if (showTabsParam != null) showTabs = new java.lang.Boolean(showTabsParam).booleanValue();
-
-                response.setContentType("text/html; charset=" + DEFAULT_ENCODING);
-                response.setStatus(response.SC_OK);
-                sb.append(org.wyona.security.util.PolicyViewer.getXHTMLView(resource.getRealm().getPolicyManager(), resource.getPath(), null, orderedBy, showParents, showTabs));
-*/
 	    } else if (usecase.equals("update")) {
                 String getXML = request.getParameter("get");
                 String postXML = request.getParameter("post");
@@ -2213,10 +2201,14 @@
                     response.setContentType("text/html; charset=" + DEFAULT_ENCODING);
                     response.setStatus(response.SC_OK);
                     String identitiesURL = "../.." + resource.getPath() + "?yanel.policy=update&get=identities";
+                    String policyURL = "../.." + resource.getPath() + "?yanel.policy=update&get=policy";
                     //String saveURL = "../.." + resource.getPath() + "?yanel.policy=update&post=policy";
-                    String saveURL = "?yanel.policy=update&post=policy";
+                    String saveURL = "?yanel.policy=update&post=policy"; // This doesn't seem to work with all browsers!
                     String cancelURL = org.wyona.commons.io.PathUtil.getName(resource.getPath());
                     if (resource.getPath().endsWith("/")) cancelURL = "./";
+                    if (request.getParameter("cancel-url") != null) {
+                        cancelURL = request.getParameter("cancel-url");
+                    }
 
                     sb.append("<?xml version=\"1.0\"?>");
                     sb.append("<html xmlns=\"http://www.w3.org/1999/xhtml\">");
@@ -2224,7 +2216,7 @@
                     sb.append("<title>Update Access Policy</title>");
                     sb.append("<link rel=\"stylesheet\" href=\"" + backToRealm + reservedPrefix + "/org.wyona.security.gwt.accesspolicyeditor.AccessPolicyEditor/style.css\" type=\"text/css\"/>");
                     sb.append("</head>");
-                    sb.append("<body><h1>Update Access Policy</h1><p><script language=\"javascript\">var getURLs = {\"identities-url\": \"" + identitiesURL + "\", \"policy-url\": \"../.." + resource.getPath() + "?yanel.policy=update&get=policy\", \"cancel-url\": \"" + cancelURL + "\", \"save-url\": \"" + saveURL + "\"};</script><script language=\"javascript\" src=\"" + backToRealm + reservedPrefix + "/org.wyona.security.gwt.accesspolicyeditor.AccessPolicyEditor/org.wyona.security.gwt.accesspolicyeditor.AccessPolicyEditor.nocache.js\"></script></p></body></html>");
+                    sb.append("<body><h1>Update Access Policy</h1><p><script language=\"javascript\">var getURLs = {\"identities-url\": \"" + identitiesURL + "\", \"policy-url\": \"" + policyURL + "\", \"cancel-url\": \"" + cancelURL + "\", \"save-url\": \"" + saveURL + "\"};</script><script language=\"javascript\" src=\"" + backToRealm + reservedPrefix + "/org.wyona.security.gwt.accesspolicyeditor.AccessPolicyEditor/org.wyona.security.gwt.accesspolicyeditor.AccessPolicyEditor.nocache.js\"></script></p></body></html>");
                 }
             } else {
                 response.setContentType("text/html; charset=" + DEFAULT_ENCODING);



More information about the Yanel-commits mailing list