[jboss-cvs] jboss-seam/examples/wiki/src/etc/WEB-INF ...
Christian Bauer
christian at hibernate.org
Sun Mar 18 11:44:39 EDT 2007
User: cbauer
Date: 07/03/18 11:44:39
Modified: examples/wiki/src/etc/WEB-INF pages.xml web.xml
components.xml
Log:
Basic access level/role security, automatic home page for activated users
Revision Changes Path
1.5 +35 -18 jboss-seam/examples/wiki/src/etc/WEB-INF/pages.xml
(In the diff below, changes in quantity of whitespace are not shown.)
Index: pages.xml
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/etc/WEB-INF/pages.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- pages.xml 9 Mar 2007 08:02:09 -0000 1.4
+++ pages.xml 18 Mar 2007 15:44:39 -0000 1.5
@@ -56,10 +56,8 @@
</page>
- <page view-id="/docEdit.xhtml" login-required="true" >
- <description>Edit Document '#{documentHome.instance.name}'</description>
-
- <restrict/>
+ <page view-id="/docEdit.xhtml">
+ <description>Edit Document</description>
<navigation from-action="#{documentHome.remove}">
<end-conversation/>
@@ -80,7 +78,7 @@
</page>
- <page view-id="/docHistory.xhtml" login-required="false">
+ <page view-id="/docHistory.xhtml">
<description>Document History '#{currentNode.name}'</description>
<navigation>
@@ -138,9 +136,8 @@
</page>
- <page view-id="/dirEdit.xhtml" login-required="true">
- <description>Edit Directory '#{directoryHome.instance.name}'</description>
- <restrict/>
+ <page view-id="/dirEdit.xhtml">
+ <description>Edit Directory</description>
<navigation from-action="#{directoryHome.remove}">
<rule>
@@ -153,9 +150,8 @@
</page>
- <page view-id="/fileEdit.xhtml" login-required="true">
- <description>Edit File '#{fileHome.instance.name}'</description>
- <restrict/>
+ <page view-id="/fileEdit.xhtml">
+ <description>Edit File</description>
<!-- TODO: If this is a nested conversation we really want to exit to the parent view after persist(),
e.g. editDoc -> uploadFile -> editDoc instead of currently editDoc -> uploadFile -> dirDisplay
@@ -187,7 +183,18 @@
<!-- Global actions -->
<page view-id="/*">
+
<navigation>
+
+ <!-- Not perfect, but we need to force some re-rendering of the view when users log in or out -->
+ <rule if-outcome="loggedIn">
+ <redirect view-id="/display.xhtml"/>
+ </rule>
+ <rule if-outcome="loggedOut">
+ <end-conversation/>
+ <redirect view-id="/display.xhtml"/>
+ </rule>
+
<rule if-outcome="register">
<!-- TODO: I don't want to join, I want a new parallel root conversation: http://jira.jboss.com/jira/browse/JBSEAM-944 -->
<begin-conversation join="true" flush-mode="MANUAL"/>
@@ -197,25 +204,25 @@
<!-- TODO: I don't want to join, I want a new parallel root conversation: http://jira.jboss.com/jira/browse/JBSEAM-944 -->
<begin-conversation join="true" flush-mode="MANUAL"/>
<redirect view-id="/userProfile.xhtml">
- <param name="userId" value="#{authenticatedUser.id}"/>
+ <param name="userId" value="#{currentUser.id}"/>
</redirect>
</rule>
<rule if-outcome="editAccount">
<begin-conversation join="true" flush-mode="MANUAL"/>
<redirect view-id="/userAccount.xhtml">
- <param name="userId" value="#{authenticatedUser.id}"/>
+ <param name="userId" value="#{currentUser.id}"/>
</redirect>
</rule>
<rule if-outcome="editProfile">
<begin-conversation join="true" flush-mode="MANUAL"/>
<redirect view-id="/userProfile.xhtml">
- <param name="userId" value="#{authenticatedUser.id}"/>
+ <param name="userId" value="#{currentUser.id}"/>
</redirect>
</rule>
<rule if-outcome="editPreferences">
<begin-conversation join="true" flush-mode="MANUAL"/>
<redirect view-id="/userPrefs.xhtml">
- <param name="userId" value="#{authenticatedUser.id}"/>
+ <param name="userId" value="#{currentUser.id}"/>
</redirect>
</rule>
<rule if-outcome="listUsers">
@@ -238,8 +245,9 @@
<page view-id="/confirmRegistration.xhtml" action="#{authenticator.activate}">
<navigation>
<rule if-outcome="activated">
- <redirect view-id="/message.xhtml">
- <message severity="INFO">Your account has been activated, please log in.</message>
+ <redirect view-id="/display.xhtml">
+ <param name="nodeId" value="#{activatedUser.memberHome.id}"/>
+ <message severity="INFO">Your account has been activated, this is your new home page. Login to edit this page.</message>
</redirect>
</rule>
<rule if-outcome="notFound">
@@ -259,9 +267,18 @@
<exception class="org.jboss.seam.security.AuthorizationException">
<end-conversation/>
<redirect view-id="/permissionError.xhtml">
- <message severity="WARN">You do not have permission for this operation</message>
+ <message severity="WARN">Access Denied: #{org.jboss.seam.handledException.message}</message>
+ </redirect>
+ </exception>
+
+ <!-- Catch all
+ <exception>
+ <end-conversation/>
+ <redirect view-id="/message.xhtml">
+ <message severity="ERROR">#{org.jboss.seam.handledException.message}</message>
</redirect>
</exception>
+ -->
</pages>
1.3 +29 -23 jboss-seam/examples/wiki/src/etc/WEB-INF/web.xml
(In the diff below, changes in quantity of whitespace are not shown.)
Index: web.xml
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/etc/WEB-INF/web.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- web.xml 16 Mar 2007 05:47:19 -0000 1.2
+++ web.xml 18 Mar 2007 15:44:39 -0000 1.3
@@ -22,6 +22,11 @@
<param-value>org.jboss.seam.ui.facelet.SeamFaceletViewHandler</param-value>
</context-param>
+ <context-param>
+ <param-name>org.ajax4jsf.SKIN</param-name>
+ <param-value>wiki</param-value>
+ </context-param>
+
<!-- Seam -->
<listener>
@@ -77,7 +82,7 @@
<context-param>
<param-name>facelets.DEVELOPMENT</param-name>
- <param-value>true</param-value>
+ <param-value>false</param-value>
</context-param>
<!-- JSF -->
@@ -129,4 +134,5 @@
<session-timeout>10</session-timeout>
</session-config>
+
</web-app>
1.3 +64 -31 jboss-seam/examples/wiki/src/etc/WEB-INF/components.xml
(In the diff below, changes in quantity of whitespace are not shown.)
Index: components.xml
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/etc/WEB-INF/components.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- components.xml 16 Mar 2007 05:42:58 -0000 1.2
+++ components.xml 18 Mar 2007 15:44:39 -0000 1.3
@@ -20,8 +20,10 @@
scope="application" auto-create="true">
<property name="baseURL">http://www.seamframework.org/wiki</property>
- <property name="defaultURLRendering">PERMLINK</property>
+ <property name="defaultURLRendering">WIKILINK</property>
<property name="permlinkSuffix">.html</property>
+ <property name="defaultDocumentId">5</property>
+ <property name="memberAreaId">12</property>
<property name="themeName">default</property>
<property name="newUserInRole">member</property>
<property name="passwordRegex">^[0-9A-Za-z]{6,15}</property>
@@ -40,34 +42,65 @@
<core:init debug="false" jndi-pattern="@jndiPattern@"/>
- <core:manager concurrent-request-timeout="60000"
+ <core:manager concurrent-request-timeout="500"
conversation-timeout="120000"
conversation-id-parameter="cid"
conversation-is-long-running-parameter="clr"/>
+ <core:filter name="accessLevelFilter">
+ <core:name>accessLevelFilter</core:name>
+ <core:parameters>
+ <key>currentAccessLevel</key>
+ <value>#{currentAccessLevel}</value>
+ </core:parameters>
+ </core:filter>
+
+ <core:managed-persistence-context name="restrictedEntityManager"
+ auto-create="true"
+ entity-manager-factory="#{wikiEntityManagerFactory}">
+ <core:filters><value>#{accessLevelFilter}</value></core:filters>
+ </core:managed-persistence-context>
+
<core:managed-persistence-context name="entityManager"
auto-create="true"
- entity-manager-factory="#{wikiEntityManagerFactory}"/>
+ entity-manager-factory="#{wikiEntityManagerFactory}">
+ </core:managed-persistence-context>
- <core:entity-manager-factory name="wikiEntityManagerFactory"
- persistence-unit-name="wiki"/>
+ <core:entity-manager-factory name="wikiEntityManagerFactory" persistence-unit-name="wiki"/>
<core:ejb installed="@embeddedEjb@"/>
+ <component name="restrictedEntityConverter" scope="CONVERSATION" precedence="20"
+ class="org.jboss.seam.ui.EntityConverter">
+ <property name="entityManager">#{restrictedEntityManager}</property>
+ </component>
+
+ <component name="entityConverter" scope="CONVERSATION" precedence="20"
+ class="org.jboss.seam.ui.EntityConverter">
+ <property name="entityManager">#{entityManager}</property>
+ </component>
+
<!-- Login and security -->
+ <!-- Rules is too broken
<drools:rule-base name="securityRules">
- <drools:rule-files><value>/security.drl</value></drools:rule-files>
+ <drools:rule-files>
+ <value>/security.drl</value>
+ </drools:rule-files>
</drools:rule-base>
<security:identity authenticate-method="#{authenticator.authenticate}"
security-rules="#{securityRules}"
remember-me="false"/>
+ -->
+ <security:identity authenticate-method="#{authenticator.authenticate}"
+ remember-me="false"/>
<!-- Misc Settings -->
<web:context-filter url-pattern="/files/*"/>
- <factory name="themePath" value="#{facesContext.externalContext.request.contextPath}/themes/#{globalPrefs.themeName}"/>
+ <factory name="themePath"
+ value="#{facesContext.externalContext.request.contextPath}/themes/#{globalPrefs.themeName}"/>
</components>
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list