taylor 2004/11/18 19:07:43 Modified: portal/src/webapp/WEB-INF/templates/navigation/html/tabs LeftToRight.vm portal/src/webapp/WEB-INF/pages pages.ds top-pages.ds folder.metadata non-java.ds default-page.psml testsuite.psml portal/src/webapp/WEB-INF/templates/navigation/html/linksWithIcon1 TopToBottom.vm LeftToRight.vm portal/src/webapp/WEB-INF/decorations/layout/html/tigris decorator-top.vm portal/src/webapp/WEB-INF/pages/Administrative user-admin.ds folder.metadata portal/src/webapp/WEB-INF/pages/_role/user/top-links folder.metadata portal/src/webapp/WEB-INF/pages/_user/user folder.metadata nested-layout.psml top-pages.ds portal/src/java/org/apache/jetspeed/security/impl SecurityValveImpl.java portal/src/webapp/WEB-INF/templates/navigation/html/folders TopToBottom.vm LeftToRight.vm portal/src/webapp/WEB-INF/decorations/layout/html/jetspeed decorator-top.vm portal/src/java/org/apache/jetspeed/velocity JetspeedPowerTool.java portal/src/webapp/WEB-INF/decorations/layout/html/ja/tigris decorator-top.vm portal/src/webapp/WEB-INF/assembly page-manager.xml portal/src/webapp/WEB-INF/pages/_role/manager folder.metadata portal/src/java/org/apache/jetspeed/profiler/impl ProfilerValveImpl.java portal/src/java/org/apache/jetspeed/aggregator/impl PageAggregatorImpl.java Added: portal/src/webapp/WEB-INF/pages page.security Log: ** File and Folder Security Permission Checking ** patch by contrinbuted by Randy Watler - Both permissions, (JAAS), and constraints, (J1 style), are enabled, (in assembly/page-manager.xml on the CastorXmlPageManager init) - Both are configured to secure the same entities, except the testsuite page access is specified only in the constraints. - The permissions are configured in the 4 populate-userinfo sql scripts. - The constraints are set up in WEB-INF/pages: /page.security /folder.metadata /Administrative/folder.metadata /default-page.psml /testsuite.psml /_user/user/folder.metadata - We'll need to add a CVS text wrapper for *.security. To test: 1. When you start the portal, you should see only the default page and additional links, (no customizer buttons) 2. Login as user: you should see everything as before except the testsuite page and the Administrative sub directory, (customizer buttons only visible on user pages) 3. Login as manager: everything should be be visible except the testsuite page, (no customizer buttons) 4. Login as jetspeed: everything should be visible, (no customizer buttons) 5. Login as admin: everything should be visible, (full customizer buttons) Revision Changes Path 1.4 +4 -3 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/templates/navigation/html/tabs/LeftToRight.vm Index: LeftToRight.vm =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/templates/navigation/html/tabs/LeftToRight.vm,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- LeftToRight.vm 29 Sep 2004 18:36:11 -0000 1.3 +++ LeftToRight.vm 19 Nov 2004 03:07:42 -0000 1.4 @@ -2,14 +2,15 @@ <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> #foreach($childPage in $_nodeSet.iterator()) - #set($tabName = $childPage.getTitle($preferedLocale)) + #set($tabTitle = $childPage.getTitle($preferedLocale)) + #set($tabName = $childPage.getShortTitle($preferedLocale)) #if($jetspeed.page.id == $childPage.id) <td class="LTabLeft" nowrap="true"> </td> - <td class="LTab" align="center" valign="middle" nowrap="true">${tabName}</td> + <td class="LTab" align="center" valign="middle" nowrap="true" title="$tabTitle">${tabName}</td> <td class="LTabRight" nowrap="true"> </td> #else <td class="LTabLeftLow" nowrap="true"> </td> - <td class="LTabLow" align="center" valign="middle" nowrap="true"><a href="$jetspeed.getAbsoluteUrl($childPage.url)">${tabName}</a></td> + <td class="LTabLow" align="center" valign="middle" nowrap="true" title="$tabTitle"><a href="$jetspeed.getAbsoluteUrl($childPage.url)">${tabName}</a></td> <td class="LTabRightLow" nowrap="true"> </td> #end #end 1.4 +4 -4 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/pages/pages.ds Index: pages.ds =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/pages/pages.ds,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- pages.ds 8 Nov 2004 21:11:13 -0000 1.3 +++ pages.ds 19 Nov 2004 03:07:42 -0000 1.4 @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> -<documentSet> +<document-set> <title>Profiled Pages</title> - <profileLocator>page</profileLocator> - <documentPath regexp="true">/p[0-9][0-9][0-9].psml</documentPath> -</documentSet> + <profile-locator>page</profile-locator> + <document-path regexp="true">/p[0-9][0-9][0-9].psml</document-path> +</document-set> 1.4 +4 -4 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/pages/top-pages.ds Index: top-pages.ds =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/pages/top-pages.ds,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- top-pages.ds 8 Nov 2004 21:11:13 -0000 1.3 +++ top-pages.ds 19 Nov 2004 03:07:42 -0000 1.4 @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> -<documentSet> +<document-set> <title>Top Pages</title> <metadata name="title" xml:lang="fr">Page haut</metadata> - <profileLocator>docset</profileLocator> - <documentPath>/Administrative</documentPath> -</documentSet> + <profile-locator>docset</profile-locator> + <document-path>/Administrative</document-path> +</document-set> 1.6 +16 -6 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/pages/folder.metadata Index: folder.metadata =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/pages/folder.metadata,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- folder.metadata 21 Sep 2004 22:56:52 -0000 1.5 +++ folder.metadata 19 Nov 2004 03:07:42 -0000 1.6 @@ -1,10 +1,20 @@ <?xml version="1.0" encoding="UTF-8"?> <folder> - <title >Root Folder</title> + <title>Root Folder</title> <metadata name="title" xml:lang="fr">Répertoire racine</metadata> <metadata name="title" xml:lang="ja">ルートフォルダ</metadata> - <documentOrder>Jetspeed2.link</documentOrder> - <documentOrder>Jetspeed2Wiki.link</documentOrder> - <documentOrder>apache_portals.link</documentOrder> - <documentOrder>apache.link</documentOrder> -</folder> \ No newline at end of file + + <document-order>Jetspeed2.link</document-order> + <document-order>Jetspeed2Wiki.link</document-order> + <document-order>apache_portals.link</document-order> + <document-order>apache.link</document-order> + + <!-- allow user role to view and allow manager role by default --> + <security-constraints> + <security-constraint> + <roles>user</roles> + <permissions>view</permissions> + </security-constraint> + <security-constraints-ref>manager</security-constraints-ref> + </security-constraints> +</folder> 1.4 +2 -2 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/pages/non-java.ds Index: non-java.ds =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/pages/non-java.ds,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- non-java.ds 8 Nov 2004 21:11:13 -0000 1.3 +++ non-java.ds 19 Nov 2004 03:07:42 -0000 1.4 @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="UTF-8"?> -<documentSet> +<document-set> <title>Non Java Pages</title> -</documentSet> +</document-set> 1.29 +16 -8 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/pages/default-page.psml Index: default-page.psml =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/pages/default-page.psml,v retrieving revision 1.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- default-page.psml 15 Nov 2004 06:02:20 -0000 1.28 +++ default-page.psml 19 Nov 2004 03:07:42 -0000 1.29 @@ -20,6 +20,13 @@ portlet-decorator="tigris" /> <title>Welcome to Jetspeed 2</title> + <metadata name="title" xml:lang="fr"> + Ma Premiere Page de PSML + </metadata> + <metadata name="title" xml:lang="ja"> + Jetspeed 2 へようこそ + </metadata> + <fragment id="dp-1" type="layout" name="jetspeed::VelocityTwoColumns"> <fragment id="dp-3" type="portlet" name="localeselector::LocaleSelector"> <property layout="TwoColumns" name="row" value="0" /> @@ -44,13 +51,14 @@ <fragment id="dp-17" type="portlet" name="demo::UserInfoTest"> <property layout="TwoColumns" name="row" value="2" /> <property layout="TwoColumns" name="column" value="1" /> - </fragment> - + </fragment> </fragment> - <metadata name="title" xml:lang="fr"> - Ma Premiere Page de PSML - </metadata> - <metadata name="title" xml:lang="ja"> - Jetspeed 2 へようこそ - </metadata> + + <!-- allow all users to view --> + <security-constraints> + <security-constraint> + <users>*</users> + <permissions>view</permissions> + </security-constraint> + </security-constraints> </page> 1.12 +11 -0 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/pages/testsuite.psml Index: testsuite.psml =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/pages/testsuite.psml,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- testsuite.psml 9 Nov 2004 01:28:30 -0000 1.11 +++ testsuite.psml 19 Nov 2004 03:07:42 -0000 1.12 @@ -34,4 +34,15 @@ <metadata name="title" xml:lang="ja"> テストスイートページ </metadata> + + <!-- allow engineering to view, but disable all access for accounting and marketing groups --> + <security-constraints> + <security-constraint> + <groups>accounting, marketing</groups> + </security-constraint> + <security-constraint> + <groups>engineering</groups> + <permissions>view</permissions> + </security-constraint> + </security-constraints> </page> 1.1 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/pages/page.security Index: page.security =================================================================== <?xml version="1.0" encoding="UTF-8"?> <page-security> <!-- define global admin constraints --> <security-constraints-def name="admin"> <security-constraint> <roles>admin</roles> <permissions>view, edit</permissions> </security-constraint> </security-constraints-def> <global-security-constraints-ref>admin</global-security-constraints-ref> <!-- define manager constraints --> <security-constraints-def name="manager"> <security-constraint> <roles>manager</roles> <permissions>view</permissions> </security-constraint> </security-constraints-def> </page-security> 1.4 +4 -4 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/templates/navigation/html/linksWithIcon1/TopToBottom.vm Index: TopToBottom.vm =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/templates/navigation/html/linksWithIcon1/TopToBottom.vm,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- TopToBottom.vm 31 Oct 2004 22:10:35 -0000 1.3 +++ TopToBottom.vm 19 Nov 2004 03:07:42 -0000 1.4 @@ -2,13 +2,13 @@ #foreach($node in $_nodeSet.iterator()) <div> #if($node.type == ".psml") - <a href="$jetspeed.getAbsoluteUrl($node.url)" class="LinkPage">$node.getTitle($preferedLocale)</a> + <a href="$jetspeed.getAbsoluteUrl($node.url)" class="LinkPage" title="$node.getTitle($preferedLocale)">$node.getShortTitle($preferedLocale)</a> #elseif($node.type == ".link") - <a href="$node.url" target="$node.target" class="Link">$node.getTitle($preferedLocale)</a> + <a href="$node.url" target="$node.target" class="Link" title="$node.getTitle($preferedLocale)">$node.getShortTitle($preferedLocale)</a> #elseif($node.type == "folder") - <a href="$jetspeed.getAbsoluteUrl($node.url)" class="LinkFolder">$node.metaData.getTitle($preferedLocale)</a> + <a href="$jetspeed.getAbsoluteUrl($node.url)" class="LinkFolder" title="$node.getTitle($preferedLocale)">$node.getShortTitle($preferedLocale)</a> #else - <a href="$node.url">$node.title</a> + <a href="$node.url" title="$node.getTitle()">$node.getShortTitle()</a> #end </div> #end 1.3 +4 -4 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/templates/navigation/html/linksWithIcon1/LeftToRight.vm Index: LeftToRight.vm =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/templates/navigation/html/linksWithIcon1/LeftToRight.vm,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- LeftToRight.vm 15 Oct 2004 07:00:49 -0000 1.2 +++ LeftToRight.vm 19 Nov 2004 03:07:42 -0000 1.3 @@ -1,13 +1,13 @@ <div > #foreach($node in $_nodeSet.iterator()) #if($node.type == ".psml") - <a href="$jetspeed.getAbsoluteUrl($node.url)" class="LinkPage">$node.getTitle($preferedLocale)</a> + <a href="$jetspeed.getAbsoluteUrl($node.url)" class="LinkPage" title="$node.getTitle($preferedLocale)">$node.getShortTitle($preferedLocale)</a> #elseif($node.type == ".link") - <a href="$node.url" target="$node.target" class="Link">$node.getTitle($preferedLocale)</a> + <a href="$node.url" target="$node.target" class="Link" title="$node.getTitle($preferedLocale)">$node.getShortTitle($preferedLocale)</a> #elseif($node.type == "folder") - <a href="$jetspeed.getAbsoluteUrl($node.url)" class="LinkFolder">$node.metaData.getTitle($preferedLocale)</a> + <a href="$jetspeed.getAbsoluteUrl($node.url)" class="LinkFolder" title="$node.getTitle($preferedLocale)">$node.getShortTitle($preferedLocale)</a> #else - <a href="$node.url">$node.title</a> + <a href="$node.url" title="$node.getTitle()">$node.getShortTitle()</a> #end #end </div> 1.2 +4 -4 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/decorations/layout/html/tigris/decorator-top.vm Index: decorator-top.vm =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/decorations/layout/html/tigris/decorator-top.vm,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- decorator-top.vm 31 Oct 2004 22:06:10 -0000 1.1 +++ decorator-top.vm 19 Nov 2004 03:07:42 -0000 1.2 @@ -63,7 +63,7 @@ </div> <div id="breadcrumbs"> #if($parentFolder) - <a href="$jetspeed.getAbsoluteUrl($parentFolder.url)">Back to $parentFolder.metaData.getTitle($preferedLocale)</a> + <a href="$jetspeed.getAbsoluteUrl($parentFolder.url)" title="$parentFolder.getTitle($preferedLocale)">Back to $parentFolder.getShortTitle($preferedLocale)</a> #end </div> @@ -86,8 +86,8 @@ #foreach($docSetName in $profiledPageContext.documentSetNames) #set($docSet = $profiledPageContext.getDocumentSet($docSetName)) #set($docSetNodes = $profiledPageContext.getDocumentSetNodes($docSetName)) - <div class="pagetitle"> - ${docSet.getTitle($preferedLocale)} + <div class="pagetitle" title="$docSet.getTitle($preferedLocale)"> + ${docSet.getShortTitle($preferedLocale)} </div> #includeNavigation("linksWithIcon1" $docSetNodes $TOP_TO_BOTTOM) #end 1.5 +4 -4 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/pages/Administrative/user-admin.ds Index: user-admin.ds =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/pages/Administrative/user-admin.ds,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- user-admin.ds 21 Oct 2004 02:29:19 -0000 1.4 +++ user-admin.ds 19 Nov 2004 03:07:42 -0000 1.5 @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> -<documentSet> +<document-set> <title>Users Admin Pages</title> - <documentPath>/Administrative/user-mgt.psml</documentPath> - <documentPath>/Administrative/users-jsf.psml</documentPath> -</documentSet> + <document-path>/Administrative/user-mgt.psml</document-path> + <document-path>/Administrative/users-jsf.psml</document-path> +</document-set> 1.5 +6 -1 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/pages/Administrative/folder.metadata Index: folder.metadata =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/pages/Administrative/folder.metadata,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- folder.metadata 21 Sep 2004 22:56:53 -0000 1.4 +++ folder.metadata 19 Nov 2004 03:07:42 -0000 1.5 @@ -3,4 +3,9 @@ <title >Jetspeed Administrative Portlets</title> <metadata name="title" xml:lang="fr">Jetspeed Portlets Administratif</metadata> <metadata name="title" xml:lang="ja">Jetspeed 管理ポートレット</metadata> -</folder> \ No newline at end of file + + <!-- allow only manager role --> + <security-constraints> + <security-constraints-ref>manager</security-constraints-ref> + </security-constraints> +</folder> 1.3 +5 -5 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/pages/_role/user/top-links/folder.metadata Index: folder.metadata =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/pages/_role/user/top-links/folder.metadata,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- folder.metadata 8 Nov 2004 21:08:46 -0000 1.2 +++ folder.metadata 19 Nov 2004 03:07:42 -0000 1.3 @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> <folder> - <documentOrder>apache_portals.link</documentOrder> - <documentOrder>apache_jakarta.link</documentOrder> - <documentOrder>apache_tomcat.link</documentOrder> - <documentOrder>apache_velocity.link</documentOrder> - <documentOrder>apache_commons.link</documentOrder> + <document-order>apache_portals.link</document-order> + <document-order>apache_jakarta.link</document-order> + <document-order>apache_tomcat.link</document-order> + <document-order>apache_velocity.link</document-order> + <document-order>apache_commons.link</document-order> </folder> 1.3 +23 -16 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/pages/_user/user/folder.metadata Index: folder.metadata =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/pages/_user/user/folder.metadata,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- folder.metadata 15 Oct 2004 07:00:18 -0000 1.2 +++ folder.metadata 19 Nov 2004 03:07:42 -0000 1.3 @@ -1,25 +1,32 @@ <?xml version="1.0" encoding="UTF-8"?> <folder> <title>[USER] Root Folder</title> + <short-title>[USER] Root</short-title> <metadata name="title" xml:lang="fr">[USER] Répertoire racine</metadata> + <metadata name="short-title" xml:lang="fr">[USER] Racine</metadata> - <documentOrder>Google.link</documentOrder> - <documentOrder>Jetspeed2.link</documentOrder> + <document-order>Google.link</document-order> + <document-order>Jetspeed2.link</document-order> - <documentOrder>default-page.psml</documentOrder> - <documentOrder>p001.psml</documentOrder> - <documentOrder>p002.psml</documentOrder> - <documentOrder>p003.psml</documentOrder> - <documentOrder>p004.psml</documentOrder> - <documentOrder>localeselector.psml</documentOrder> - <documentOrder>jsf-demo.psml</documentOrder> - <documentOrder>struts-demo.psml</documentOrder> + <document-order>default-page.psml</document-order> + <document-order>p001.psml</document-order> + <document-order>p002.psml</document-order> + <document-order>p003.psml</document-order> + <document-order>p004.psml</document-order> + <document-order>localeselector.psml</document-order> + <document-order>jsf-demo.psml</document-order> + <document-order>struts-demo.psml</document-order> - <documentOrder>third-party</documentOrder> - <documentOrder>non-java</documentOrder> - <documentOrder>Administrative</documentOrder> + <document-order>third-party</document-order> + <document-order>non-java</document-order> + <document-order>Administrative</document-order> - <documentOrder>top-pages.ds</documentOrder> - <documentOrder>pages.ds</documentOrder> - <documentOrder>non-java.ds</documentOrder> + <document-order>top-pages.ds</document-order> + <document-order>pages.ds</document-order> + <document-order>non-java.ds</document-order> + + <!-- define user as owner --> + <security-constraints> + <owner>user</owner> + </security-constraints> </folder> 1.4 +1 -0 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/pages/_user/user/nested-layout.psml Index: nested-layout.psml =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/pages/_user/user/nested-layout.psml,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- nested-layout.psml 15 Nov 2004 06:02:20 -0000 1.3 +++ nested-layout.psml 19 Nov 2004 03:07:42 -0000 1.4 @@ -2,6 +2,7 @@ <page> <defaults layout-decorator="tigris" portlet-decorator="tigris"/> <title>Nested Layout Test</title> + <short-title>Nested Layout</short-title> <fragment id="100393" type="layout" name="jetspeed::VelocityOneColumn"> <fragment id="100939" type="portlet" name="localeselector::LocaleSelector"> <property layout="OneColumn" name="row" value="0"/> 1.3 +4 -4 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/pages/_user/user/top-pages.ds Index: top-pages.ds =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/pages/_user/user/top-pages.ds,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- top-pages.ds 21 Oct 2004 02:29:19 -0000 1.2 +++ top-pages.ds 19 Nov 2004 03:07:42 -0000 1.3 @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?>
-<documentSet> +<document-set> <title>[USER] Top Pages</title> <metadata name="title" xml:lang="fr">[USER] Page haut</metadata> - <profileLocator>docset</profileLocator> - <documentPath regexp="true">/top-links/*.*</documentPath> -</documentSet> + <profile-locator>docset</profile-locator> + <document-path regexp="true">/top-links/*.*</document-path> +</document-set> 1.9 +44 -27 jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/security/impl/SecurityValveImpl.java Index: SecurityValveImpl.java =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/security/impl/SecurityValveImpl.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- SecurityValveImpl.java 11 Nov 2004 07:51:52 -0000 1.8 +++ SecurityValveImpl.java 19 Nov 2004 03:07:43 -0000 1.9 @@ -21,6 +21,7 @@ import java.util.Set; import javax.security.auth.Subject; +import javax.servlet.http.HttpSession; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -57,43 +58,59 @@ */ public void invoke(RequestContext request, ValveContext context) throws PipelineException { - Subject subject = null; try - { - Principal principal = request.getRequest().getUserPrincipal(); - subject = (Subject) - request.getRequest().getSession().getAttribute(PortalReservedParameters.SESSION_KEY_SUBJECT); - if (null == principal) + { + // initialize/validate security subject + + // access request user principal if defined or default + // to profiler anonymous user + Principal userPrincipal = request.getRequest().getUserPrincipal(); + if (userPrincipal == null) { - principal = new UserPrincipalImpl(profiler.getAnonymousUser()); + userPrincipal = new UserPrincipalImpl(profiler.getAnonymousUser()); } - if (null == subject) + + // check for previously established session subject and + // invalidate if subject and current user principals do + // not match + HttpSession session = request.getRequest().getSession(); + Subject subject = (Subject) session.getAttribute(PortalReservedParameters.SESSION_KEY_SUBJECT); + if (subject != null) { - Set principals = new HashSet(); - principals.add(principal); - subject = new Subject(true, principals, new HashSet(), new HashSet()); - request.getRequest().getSession().setAttribute( - PortalReservedParameters.SESSION_KEY_SUBJECT, - subject); + Principal subjectUserPrincipal = SecurityHelper.getPrincipal(subject, UserPrincipal.class); + if ((subjectUserPrincipal == null) || !subjectUserPrincipal.getName().equals(userPrincipal.getName())) + { + subject = null; + } } - else + + // create new session subject for user principal if required + if (subject == null) { - Principal userPrincipal = SecurityHelper.getPrincipal(subject, UserPrincipal.class); - if ((userPrincipal.getName()).equals(profiler.getAnonymousUser()) - && (!(principal.getName()).equals(profiler.getAnonymousUser()))) + // attempt to get complete subject for user principal + // from user manager + subject = userMgr.getUser(userPrincipal.getName()).getSubject(); + + // if subject not available, generate default subject using + // request or default profiler anonymous user principal + if (subject == null) { - subject = userMgr.getUser(principal.getName()).getSubject(); - request.getRequest().getSession().setAttribute( - PortalReservedParameters.SESSION_KEY_SUBJECT, subject); + Set principals = new HashSet(); + principals.add(userPrincipal); + subject = new Subject(true, principals, new HashSet(), new HashSet()); } + + // establish session subject + session.setAttribute(PortalReservedParameters.SESSION_KEY_SUBJECT, subject); } + + // set request context subject request.setSubject(subject); - final ValveContext vc = context; - final RequestContext rc = request; - // Pass control to the next Valve in the Pipeline and execute under the current subject - Subject.doAs(subject, new PrivilegedAction() + final ValveContext vc = context; + final RequestContext rc = request; + Subject.doAsPrivileged(subject, new PrivilegedAction() { public Object run() { @@ -106,7 +123,7 @@ } return null; } - }); + }, null); } catch (Throwable t) 1.2 +1 -1 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/templates/navigation/html/folders/TopToBottom.vm Index: TopToBottom.vm =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/templates/navigation/html/folders/TopToBottom.vm,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- TopToBottom.vm 31 Oct 2004 22:04:14 -0000 1.1 +++ TopToBottom.vm 19 Nov 2004 03:07:43 -0000 1.2 @@ -1,5 +1,5 @@ <div class="FolderList"> #foreach($childFolder in $_nodeSet.iterator()) - <div><a href="$jetspeed.getAbsoluteUrl($childFolder.url)" class="FolderLink">$childFolder.metaData.getTitle($preferedLocale)</a></div> + <div><a href="$jetspeed.getAbsoluteUrl($childFolder.url)" class="FolderLink" title="$childFolder.getTitle($preferedLocale)">$childFolder.getShortTitle($preferedLocale)</a></div> #end </div> 1.2 +5 -5 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/templates/navigation/html/folders/LeftToRight.vm Index: LeftToRight.vm =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/templates/navigation/html/folders/LeftToRight.vm,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- LeftToRight.vm 17 Sep 2004 18:05:24 -0000 1.1 +++ LeftToRight.vm 19 Nov 2004 03:07:43 -0000 1.2 @@ -1,5 +1,5 @@ -<div class="FolderList"> - #foreach($childFolder in $_nodeSet.iterator()) - <span><a href="$jetspeed.getAbsoluteUrl($childFolder.url)" class="FolderLink">$childFolder.metaData.getTitle($preferedLocale)</a></span> - #end -</div> +<div class="FolderList"> + #foreach($childFolder in $_nodeSet.iterator()) + <span><a href="$jetspeed.getAbsoluteUrl($childFolder.url)" class="FolderLink" title="$childFolder.getTitle($preferedLocale)">$childFolder.getShortTitle($preferedLocale)</a></span> + #end +</div> 1.21 +2 -2 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/decorations/layout/html/jetspeed/decorator-top.vm Index: decorator-top.vm =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/decorations/layout/html/jetspeed/decorator-top.vm,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- decorator-top.vm 15 Oct 2004 07:02:10 -0000 1.20 +++ decorator-top.vm 19 Nov 2004 03:07:43 -0000 1.21 @@ -45,7 +45,7 @@ #if($parentFolder) <p style="font-style:italic"> - <a href="$jetspeed.getAbsoluteUrl($parentFolder.url)">Back to $parentFolder.metaData.getTitle($preferedLocale)</a> + <a href="$jetspeed.getAbsoluteUrl($parentFolder.url)" title="$parentFolder.getTitle($preferedLocale)">Back to $parentFolder.getShortTitle($preferedLocale)</a> </p> #end @@ -73,7 +73,7 @@ #set($docSetNodes = $profiledPageContext.getDocumentSetNodes($docSetName)) <tr> <td nowrap> - <br>${docSet.getTitle($preferedLocale)}: + <br><span title="$docSet.getTitle($preferedLocale)">${docSet.getShortTitle($preferedLocale)}</span>: #includeNavigation("linksWithIcon1" $docSetNodes $TOP_TO_BOTTOM) </td> </tr> 1.36 +28 -6 jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/velocity/JetspeedPowerTool.java Index: JetspeedPowerTool.java =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/velocity/JetspeedPowerTool.java,v retrieving revision 1.35 retrieving revision 1.36 diff -u -r1.35 -r1.36 --- JetspeedPowerTool.java 7 Nov 2004 16:29:57 -0000 1.35 +++ JetspeedPowerTool.java 19 Nov 2004 03:07:43 -0000 1.36 @@ -995,8 +995,23 @@ */ public List getPageDecoratorActions() throws Exception { + // check page access + boolean readOnlyPageAccess = true; + try + { + getPage().checkAccess(Page.EDIT_ACTION); + readOnlyPageAccess = false; + } + catch (SecurityException se) + { + } + + // determine cached actions state key + String key = "PAGE " + getPage().getId() + ":" + this.getCurrentFragment().getId() + + ":" + (readOnlyPageAccess ? Page.VIEW_ACTION : Page.EDIT_ACTION ); + + // get cached actions state RequestContext context = Jetspeed.getCurrentRequestContext(); - String key = "PAGE" + getPage().getId() + ":" + this.getCurrentFragment().getId() ; Map sessionActions = (Map)context.getSessionAttribute(POWER_TOOL_SESSION_ACTIONS); if (null == sessionActions) { @@ -1024,19 +1039,26 @@ actionState.setPortletMode(mode); } - List actions = actionState.getActions(); actions.clear(); + // if there is no root fragment, return no actions PortletDefinitionComposite portlet = (PortletDefinitionComposite) getCurrentPortletEntity().getPortletDefinition(); if (null == portlet) { - return actions; // allow nothing + return actions; } - + + // if the page is being read only accessed, return no actions + if (readOnlyPageAccess) + { + return actions; + } + + // generate standard page actions depending on + // portlet capabilities ContentTypeSet content = portlet.getContentTypeSet(); - if (mode.equals(PortletMode.VIEW.toString())) { if (content.supportsPortletMode(PortletMode.EDIT)) 1.2 +4 -4 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/decorations/layout/html/ja/tigris/decorator-top.vm Index: decorator-top.vm =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/decorations/layout/html/ja/tigris/decorator-top.vm,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- decorator-top.vm 6 Nov 2004 22:27:24 -0000 1.1 +++ decorator-top.vm 19 Nov 2004 03:07:43 -0000 1.2 @@ -63,7 +63,7 @@ </div> <div id="breadcrumbs"> #if($parentFolder) - <a href="$jetspeed.getAbsoluteUrl($parentFolder.url)">$parentFolder.metaData.getTitle($preferedLocale)へ戻る</a> + <a href="$jetspeed.getAbsoluteUrl($parentFolder.url)" title="$parentFolder.getTitle($preferedLocale)">$parentFolder.getShortTitle($preferedLocale)へ戻る</a> #end </div> @@ -86,8 +86,8 @@ #foreach($docSetName in $profiledPageContext.documentSetNames) #set($docSet = $profiledPageContext.getDocumentSet($docSetName)) #set($docSetNodes = $profiledPageContext.getDocumentSetNodes($docSetName)) - <div class="pagetitle"> - ${docSet.getTitle($preferedLocale)} + <div class="pagetitle" title="$docSet.getTitle($preferedLocale)"> + ${docSet.getShortTitle($preferedLocale)} </div> #includeNavigation("linksWithIcon1" $docSetNodes $TOP_TO_BOTTOM) #end 1.5 +18 -0 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/assembly/page-manager.xml Index: page-manager.xml =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/assembly/page-manager.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- page-manager.xml 19 Oct 2004 04:42:55 -0000 1.4 +++ page-manager.xml 19 Nov 2004 03:07:43 -0000 1.5 @@ -53,6 +53,15 @@ <constructor-arg index="4" ><ref bean="PageFileCache"/></constructor-arg> </bean> + <bean id="PageSecurityDocumentHandler" + class="org.apache.jetspeed.page.document.CastorFileSystemDocumentHandler" > + <constructor-arg index="0"><value>/META-INF/page-mapping.xml</value></constructor-arg> + <constructor-arg index="1"><value>page.security</value></constructor-arg> + <constructor-arg index="2" ><value>org.apache.jetspeed.om.page.PageSecurity</value></constructor-arg> + <constructor-arg index="3" ><value>${applicationRoot}/WEB-INF/pages</value></constructor-arg> + <constructor-arg index="4" ><ref bean="PageFileCache"/></constructor-arg> + </bean> + <bean id="DocumentHandlerFactory" class="org.apache.jetspeed.page.document.DocumentHandlerFactoryImpl" > <constructor-arg> @@ -69,6 +78,9 @@ <entry key="folder.metadata"> <ref bean="FolderMetaDataDocumentHandler" /> </entry> + <entry key="page.security"> + <ref bean="PageSecurityDocumentHandler" /> + </entry> </map> </constructor-arg> </bean> @@ -89,8 +101,14 @@ <constructor-arg index="1"><ref bean="DocumentHandlerFactory"/></constructor-arg> <constructor-arg index="2"><ref bean="FolderHandler"/></constructor-arg> <constructor-arg index="3"><ref bean="PageFileCache"/></constructor-arg> + <!-- size of profiled page context LRU cache, default=100 --> <constructor-arg index="4"><value>100</value></constructor-arg> + <!-- profiling enabled flag, default=true --> <constructor-arg index="5"><value>true</value></constructor-arg> + <!-- permissions security enabled flag, default=true --> + <constructor-arg index="6"><value>false</value></constructor-arg> + <!-- constraints security enabled flag, default=true --> + <constructor-arg index="7"><value>true</value></constructor-arg> </bean> </beans> 1.2 +13 -13 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/pages/_role/manager/folder.metadata Index: folder.metadata =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/pages/_role/manager/folder.metadata,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- folder.metadata 23 Sep 2004 19:56:13 -0000 1.1 +++ folder.metadata 19 Nov 2004 03:07:43 -0000 1.2 @@ -3,19 +3,19 @@ <title>[USER] Root Folder</title> <metadata name="title" xml:lang="fr">[USER] Répertoire racine</metadata> - <documentOrder>Google.link</documentOrder> - <documentOrder>Jetspeed2.link</documentOrder> + <document-order>Google.link</document-order> + <document-order>Jetspeed2.link</document-order> - <documentOrder>default-page.psml</documentOrder> - <documentOrder>p001.psml</documentOrder> - <documentOrder>p002.psml</documentOrder> - <documentOrder>p003.psml</documentOrder> - <documentOrder>p004.psml</documentOrder> - <documentOrder>localeselector.psml</documentOrder> - <documentOrder>jsf-demo.psml</documentOrder> - <documentOrder>struts-demo.psml</documentOrder> + <document-order>default-page.psml</document-order> + <document-order>p001.psml</document-order> + <document-order>p002.psml</document-order> + <document-order>p003.psml</document-order> + <document-order>p004.psml</document-order> + <document-order>localeselector.psml</document-order> + <document-order>jsf-demo.psml</document-order> + <document-order>struts-demo.psml</document-order> - <documentOrder>third-party</documentOrder> - <documentOrder>non-java</documentOrder> - <documentOrder>Administrative</documentOrder> + <document-order>third-party</document-order> + <document-order>non-java</document-order> + <document-order>Administrative</document-order> </folder> 1.20 +19 -6 jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/profiler/impl/ProfilerValveImpl.java Index: ProfilerValveImpl.java =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/profiler/impl/ProfilerValveImpl.java,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- ProfilerValveImpl.java 3 Nov 2004 16:01:50 -0000 1.19 +++ ProfilerValveImpl.java 19 Nov 2004 03:07:43 -0000 1.20 @@ -21,6 +21,7 @@ import javax.security.auth.Subject; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -115,16 +116,28 @@ // continue context.invokeNext(request); } - catch (NodeNotFoundException e) + catch (SecurityException se) { - log.error(e.getMessage(), e); + log.error(se.getMessage(), se); try { - request.getResponse().sendError(404, e.getMessage()); + request.getResponse().sendError(HttpServletResponse.SC_FORBIDDEN, se.getMessage()); } - catch (IOException e1) + catch (IOException ioe) { - log.error("Failed to invoke HttpServletReponse.sendError: " + e1.getMessage(), e1); + log.error("Failed to invoke HttpServletReponse.sendError: " + ioe.getMessage(), ioe); + } + } + catch (NodeNotFoundException nnfe) + { + log.error(nnfe.getMessage(), nnfe); + try + { + request.getResponse().sendError(HttpServletResponse.SC_NOT_FOUND, nnfe.getMessage()); + } + catch (IOException ioe) + { + log.error("Failed to invoke HttpServletReponse.sendError: " + ioe.getMessage(), ioe); } } catch (Exception e) 1.16 +83 -113 jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/impl/PageAggregatorImpl.java Index: PageAggregatorImpl.java =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/impl/PageAggregatorImpl.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- PageAggregatorImpl.java 15 Oct 2004 21:44:32 -0000 1.15 +++ PageAggregatorImpl.java 19 Nov 2004 03:07:43 -0000 1.16 @@ -81,13 +81,6 @@ throw new JetspeedException("Failed to find PSML Pin PageAggregator.build"); } - //Set default acl - String acl = page.getAcl(); - if (acl == null) - { - //TBD get system default acl; - } - // Initialize fragment Stack stack = new Stack(); Fragment currentFragment = page.getRootFragment(); @@ -149,138 +142,115 @@ /////////////////////////////////////////////////////////////////////////////////////////////// - if (checkAccess(context, (currentFragment.getAcl() != null) ? currentFragment.getAcl() : acl, "render")) + // handle maximized state + NavigationalState nav = context.getPortalURL().getNavigationalState(); + PortletWindow window = nav.getMaximizedWindow(); + if (null != window) + { + Fragment fragment = page.getFragmentById(window.getId().toString()); + if (fragment != null) + { + context.getRequest().setAttribute("org.apache.jetspeed.maximized.Fragment", fragment); + context.getRequest().setAttribute("org.apache.jetspeed.maximized.Layout", page.getRootFragment()); + + if(fragment.getDecorator() != null) + { + log.debug("decorator=" + currentFragment.getDecorator()); + addStyle(context, fragment.getDecorator(), Fragment.PORTLET); + } + else + { + log.debug("no decorator for defined for portlet fragement," + currentFragment.getId()+". So using page default, "+defaultPortletDecorator); + addStyle(context, defaultPortletDecorator, Fragment.PORTLET); + } + renderer.renderNow(page.getRootFragment(), context); + + context.getRequest().removeAttribute("org.apache.jetspeed.maximized.Fragment"); + context.getRequest().removeAttribute("org.apache.jetspeed.maximized.Layout"); + } + return; + } + + // initializes the rendering stack with root children + // root fragement is always treated synchronously + for (Iterator i = currentFragment.getFragments().iterator(); i.hasNext();) + { + Fragment f = (Fragment) i.next(); + + if (!"hidden".equals(f.getState())) + { + stack.push(f); + } + } + + // Walk through the Fragment tree, and start rendering "portlet" type + // fragment + while (!stack.isEmpty()) { - // handle maximized state - NavigationalState nav = context.getPortalURL().getNavigationalState(); - PortletWindow window = nav.getMaximizedWindow(); - if (null != window) + currentFragment = (Fragment) stack.pop(); + + if (currentFragment.getType().equals("portlet")) { - Fragment fragment = page.getFragmentById(window.getId().toString()); - if (fragment != null && checkAccess(context, (fragment.getAcl() != null) ? fragment.getAcl() : acl, "render")) + // make the page aggreator less fragile + // by preventing failed rendering from screwing up the + // whole process + try { - context.getRequest().setAttribute("org.apache.jetspeed.maximized.Fragment", fragment); - context.getRequest().setAttribute("org.apache.jetspeed.maximized.Layout", page.getRootFragment()); + if (log.isDebugEnabled()) + { + log.debug( + "Rendering portlet fragment: [[name, " + + currentFragment.getName() + + "], [id, " + + currentFragment.getId() + + "]]"); + } + renderer.render(currentFragment, context); + if (strategy == STRATEGY_SEQUENTIAL) + { + ContentDispatcher dispatcher = renderer.getDispatcher(context, false); + dispatcher.sync(currentFragment); + } - if(fragment.getDecorator() != null) + if(currentFragment.getDecorator() != null) { log.debug("decorator=" + currentFragment.getDecorator()); - addStyle(context, fragment.getDecorator(), Fragment.PORTLET); + addStyle(context, currentFragment.getDecorator(), Fragment.PORTLET); } else { log.debug("no decorator for defined for portlet fragement," + currentFragment.getId()+". So using page default, "+defaultPortletDecorator); addStyle(context, defaultPortletDecorator, Fragment.PORTLET); } - renderer.renderNow(page.getRootFragment(), context); - context.getRequest().removeAttribute("org.apache.jetspeed.maximized.Fragment"); - context.getRequest().removeAttribute("org.apache.jetspeed.maximized.Layout"); } - return; + catch (Exception e) + { + log.error("Failed to render portlet \"" + currentFragment + "\": " + e.toString()); + } } - // initializes the rendering stack with root children - // root fragement is always treated synchronously + // push the children frgaments on the rendering stack for (Iterator i = currentFragment.getFragments().iterator(); i.hasNext();) { Fragment f = (Fragment) i.next(); - + if (!"hidden".equals(f.getState())) { stack.push(f); } } - - // Walk through the Fragment tree, and start rendering "portlet" type - // fragment - while (!stack.isEmpty()) - { - currentFragment = (Fragment) stack.pop(); - - if (checkAccess(context, ((currentFragment.getAcl() != null) ? currentFragment.getAcl() : acl), "render")) - { - if (currentFragment.getType().equals("portlet")) - { - // make the page aggreator less fragile - // by preventing failed rendering from screwing up the - // whole process - try - { - if (log.isDebugEnabled()) - { - log.debug( - "Rendering portlet fragment: [[name, " - + currentFragment.getName() - + "], [id, " - + currentFragment.getId() - + "]]"); - } - renderer.render(currentFragment, context); - if (strategy == STRATEGY_SEQUENTIAL) - { - ContentDispatcher dispatcher = renderer.getDispatcher(context, false); - dispatcher.sync(currentFragment); - } - - if(currentFragment.getDecorator() != null) - { - log.debug("decorator=" + currentFragment.getDecorator()); - addStyle(context, currentFragment.getDecorator(), Fragment.PORTLET); - } - else - { - log.debug("no decorator for defined for portlet fragement," + currentFragment.getId()+". So using page default, "+defaultPortletDecorator); - addStyle(context, defaultPortletDecorator, Fragment.PORTLET); - } - - } - catch (Exception e) - { - log.error("Failed to render portlet \"" + currentFragment + "\": " + e.toString()); - } - } - - // push the children frgaments on the rendering stack - for (Iterator i = currentFragment.getFragments().iterator(); i.hasNext();) - { - Fragment f = (Fragment) i.next(); - - if (!"hidden".equals(f.getState())) - { - stack.push(f); - } - } - } - else - { - log.warn("Access denied RENDER fragment " + currentFragment); - } - } - - // Retrieves the content dispatcher appropriate for sequential - // or parallel rendering - - ContentDispatcher dispatcher = renderer.getDispatcher(context, (strategy == STRATEGY_PARALLEL)); - - // Now synchronously trigger the rendering of the whole page - renderer.renderNow(page.getRootFragment(), context); } - else - { - log.warn("Access denied RENDER page " + page); - } - + + // Retrieves the content dispatcher appropriate for sequential + // or parallel rendering + + ContentDispatcher dispatcher = renderer.getDispatcher(context, (strategy == STRATEGY_PARALLEL)); + + // Now synchronously trigger the rendering of the whole page + renderer.renderNow(page.getRootFragment(), context); } - public boolean checkAccess(RequestContext context, String acl, String action) - { - // This methid needs to be moved a secuity module. - // Does nothing right now - return true; - } - - private void addStyle(RequestContext context, String decoratorName, String decoratorType) { Set cssUrls = (Set) context.getAttribute("cssUrls"); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]