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">&nbsp;</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">&nbsp;</td>
           #else
           <td class="LTabLeftLow"  nowrap="true">&nbsp;</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">&nbsp;</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
           &nbsp;
         </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> &nbsp;
  +             <a href="$jetspeed.getAbsoluteUrl($parentFolder.url)" 
title="$parentFolder.getTitle($preferedLocale)">Back to 
$parentFolder.getShortTitle($preferedLocale)</a> &nbsp;
         </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
           &nbsp;
         </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]

Reply via email to