You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2004/12/22 09:57:35 UTC

svn commit: r123066 - /lenya/trunk/src/webapp/lenya/usecases/addUser.jx /lenya/trunk/src/webapp/lenya/usecases/usecase.xmap /lenya/trunk/src/webapp/lenya/usecases/usecases.js /lenya/trunk/src/webapp/lenya/usecases/userProfile.jx

Author: andreas
Date: Wed Dec 22 00:57:32 2004
New Revision: 123066

URL: http://svn.apache.org/viewcvs?view=rev&rev=123066
Log:
initial checkin of java-based access control usecasees
Added:
   lenya/trunk/src/webapp/lenya/usecases/addUser.jx
   lenya/trunk/src/webapp/lenya/usecases/usecase.xmap
   lenya/trunk/src/webapp/lenya/usecases/usecases.js
   lenya/trunk/src/webapp/lenya/usecases/userProfile.jx

Added: lenya/trunk/src/webapp/lenya/usecases/addUser.jx
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/usecases/addUser.jx?view=auto&rev=123066
==============================================================================
--- (empty file)
+++ lenya/trunk/src/webapp/lenya/usecases/addUser.jx	Wed Dec 22 00:57:32 2004
@@ -0,0 +1,82 @@
+<page:page
+  xmlns:jx="http://apache.org/cocoon/templates/jx/1.0"
+  xmlns:page="http://apache.org/cocoon/lenya/cms-page/1.0"
+  xmlns="http://www.w3.org/1999/xhtml"
+  xmlns:i18n="http://apache.org/cocoon/i18n/2.1"    
+  >
+  
+  <page:title><i18n:text>Add <jx:out value="${request.getParameter('userType')}"/></i18n:text></page:title>
+  <page:body>
+    
+    <form>
+      <input type="hidden" name="lenya.continuation" value="${continuation.id}"/>
+      <input type="hidden" name="lenya.usecase" value="${request.getParameter('lenya.usecase')}"/>
+
+      <table class="lenya-table-noborder">
+        <tr>
+          <td colspan="2">
+            <ul>
+            <jx:forEach var="message" items="${usecase.getErrorMessages()}">
+              <li>
+                <i18n:text><jx:out value="${message}"/></i18n:text>
+              </li>
+            </jx:forEach>
+            <jx:forEach var="message" items="${usecase.getInfoMessages()}">
+              <li>
+                <i18n:text><jx:out value="${message}"/></i18n:text>
+              </li>
+            </jx:forEach>
+            </ul>
+          </td>
+        </tr>
+        <tr>
+          <td class="lenya-entry-caption"><i18n:text>User ID</i18n:text> *</td>
+          <td><input type="text" name="userId" class="lenya-form-entry" value="${request.getParameter('userId')}"/></td>
+        </tr>
+        
+        <jx:if test="${request.getParameter('className') == 'org.apache.lenya.ac.ldap.LDAPUser'}">
+          <tr>
+            <td class="lenya-entry-caption"><i18n:text>LDAP ID</i18n:text> *</td>
+            <td><input type="text" name="ldapId" class="lenya-form-entry" value="${request.getParameter('ldapId')}"/></td>
+          </tr>
+        </jx:if>
+        
+        <tr>
+          <td class="lenya-entry-caption"><i18n:text>Name</i18n:text> *</td>
+          <td><input type="text" name="fullName" class="lenya-form-entry" value="${request.getParameter('fullName')}"/></td>
+        </tr>
+        <tr>
+          <td valign="top" class="lenya-entry-caption"><i18n:text>Description</i18n:text></td>
+          <td>
+            <textarea name="description" class="lenya-form-entry">
+              <jx:out value="${request.getParameter('description')}"/>
+            </textarea>
+          </td>
+        </tr>
+        <tr>
+          <td class="lenya-entry-caption"><i18n:text>E-Mail</i18n:text> *</td>
+          <td><input type="text" name="email" class="lenya-form-entry" value="${request.getParameter('email')}"/></td>
+        </tr>
+        
+        <jx:if test="${request.getParameter('className') != 'org.apache.lenya.ac.ldap.LDAPUser'}">
+        <tr>
+          <td class="lenya-entry-caption"><i18n:text>Password</i18n:text> *</td>
+          <td><input type="password" name="password" class="lenya-form-entry" value="${request.getParameter('password')}"/></td>
+        </tr>
+        <tr>
+          <td class="lenya-entry-caption"><i18n:text>Confirm pasword</i18n:text> *</td>
+          <td><input type="password" name="confirmPassword" class="lenya-form-entry" value="${request.getParameter('confirmPassword')}"/></td>
+        </tr>
+        </jx:if>
+        
+        <tr>
+          <td/>
+          <td>
+            <input i18n:attr="value" type="submit" name="submit" value="Add"/>
+            <input i18n:attr="value" type="submit" name="cancel" value="Cancel"/>
+          </td>
+        </tr>
+      </table>
+    </form>
+  </page:body>
+</page:page>
\ No newline at end of file

Added: lenya/trunk/src/webapp/lenya/usecases/usecase.xmap
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/usecases/usecase.xmap?view=auto&rev=123066
==============================================================================
--- (empty file)
+++ lenya/trunk/src/webapp/lenya/usecases/usecase.xmap	Wed Dec 22 00:57:32 2004
@@ -0,0 +1,69 @@
+<?xml version="1.0"?>
+
+<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
+  
+  <!-- =========================== Components ================================ -->
+
+  <map:components>
+    <map:generators default="file">
+      <map:generator name="jx" src="org.apache.cocoon.generation.JXTemplateGenerator" label="content" logger="sitemap.generator.jx"/>
+    </map:generators>
+    <map:transformers default="xslt">
+      <map:transformer name="forms" logger="forms" src="org.apache.cocoon.forms.transformation.FormsTemplateTransformer"/>
+    </map:transformers>
+    <map:serializers default="html">
+      <map:serializer logger="sitemap.serializer.xml" mime-type="text/xml" name="xml" src="org.apache.cocoon.serialization.XMLSerializer"/>
+      <map:serializer logger="sitemap.serializer.html" mime-type="text/html" name="html" pool-grow="4" pool-max="32" pool-min="4" src="org.apache.cocoon.serialization.HTMLSerializer">
+        <doctype-public>-//W3C//DTD HTML 4.01 Transitional//EN</doctype-public>
+        <doctype-system>http://www.w3.org/TR/html4/loose.dtd</doctype-system>
+      </map:serializer>
+    </map:serializers>
+  </map:components>
+
+  <!-- ========== -->
+  <!-- FlowScript -->
+  <!-- ========== -->
+
+  <map:flow language="javascript">
+    <map:script src="usecases.js"/>
+  </map:flow>
+  
+  <!-- =========================== Pipelines ================================ -->
+
+  <map:views>
+    <map:view name="xml" from-label="xml">
+    <map:serialize type="xml"/>
+    </map:view>
+  </map:views>
+	
+  <map:pipelines>
+    
+    <map:pipeline type="noncaching">
+      <map:match pattern="redirect">
+        <map:generate src="../content/admin/common/redirect.xsp" type="serverpages"/>
+        <map:transform src="../xslt/admin/common/redirect.xsl"/>
+        <map:serialize/>
+      </map:match>
+      
+      <map:match pattern="view/*">
+        <map:generate type="jx" src="{1}.jx"/>
+        <map:transform type="i18n">
+          <map:parameter name="locale" value="{request:locale}"/>
+        </map:transform>
+        <map:transform src="cocoon://lenya-screen.xsl"/>
+        <map:serialize type="html"/>
+      </map:match>
+    </map:pipeline>
+      
+    <map:pipeline>
+      <map:match type="request-parameter" pattern="lenya.continuation">
+        <map:call continuation="{1}"/>
+      </map:match>
+      <map:match type="usecase" pattern="*">
+        <map:call function="executeUsecase"/>
+      </map:match>
+    </map:pipeline>
+    
+  </map:pipelines>
+	
+</map:sitemap>

Added: lenya/trunk/src/webapp/lenya/usecases/usecases.js
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/usecases/usecases.js?view=auto&rev=123066
==============================================================================
--- (empty file)
+++ lenya/trunk/src/webapp/lenya/usecases/usecases.js	Wed Dec 22 00:57:32 2004
@@ -0,0 +1,71 @@
+
+function passRequestParameters(flowHelper, usecase) {
+	var names = cocoon.request.getParameterNames();
+	while (names.hasMoreElements()) {
+	    var name = names.nextElement();
+		if (!name.equals("lenya.usecase")
+			&& !name.equals("lenya.continuation")
+			&& !name.equals("submit")) {
+			
+			var value = flowHelper.getRequest(cocoon).get(name);
+			Packages.java.lang.System.out.println("name: " + name + "  value: " + value.getClass());
+			
+			var string = new Packages.java.lang.String();
+			if (string.getClass().isInstance(value)) {
+				usecase.setParameter(name, value);
+			}
+			else {
+				usecase.setPart(name, value);
+			}
+			
+		}
+	}
+}
+
+function executeUsecase() {
+	var usecaseName = cocoon.request.getParameter("lenya.usecase");
+	var usecaseResolver = cocoon.getComponent("org.apache.lenya.cms.usecase.UsecaseResolver");
+	var usecase = usecaseResolver.resolve(usecaseName);
+	
+	var flowHelper = new Packages.org.apache.lenya.cms.cocoon.flow.FlowHelper();
+	var situation = flowHelper.getSituation(cocoon);
+	var envelope = flowHelper.getPageEnvelope(cocoon);
+	var document = envelope.getDocument();
+	
+	passRequestParameters(flowHelper, usecase);
+	
+	var ready = false;
+	var success = false;
+	
+	while (!ready) {
+	
+		cocoon.sendPageAndWait("view/" + usecaseName, {
+		    "usecase" : usecase
+		});
+		
+		if (cocoon.request.getParameter("submit")) {
+		
+		    passRequestParameters(flowHelper, usecase);
+			
+			usecase.checkExecutionConditions();
+			if (usecase.getErrorMessages().isEmpty()) {
+				usecase.execute();
+				if (usecase.getErrorMessages().isEmpty()) {
+					usecase.checkPostconditions();
+					if (usecase.getErrorMessages().isEmpty()) {
+						ready = true;
+						success = true;
+					}
+				}
+			}
+		}
+		else if (cocoon.request.getParameter("cancel")) {
+			ready = true;
+		}
+	
+	}
+	
+	var url = envelope.getContext() + usecase.getTargetURL(success);
+	cocoon.redirectTo(url);
+	
+}

Added: lenya/trunk/src/webapp/lenya/usecases/userProfile.jx
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/usecases/userProfile.jx?view=auto&rev=123066
==============================================================================
--- (empty file)
+++ lenya/trunk/src/webapp/lenya/usecases/userProfile.jx	Wed Dec 22 00:57:32 2004
@@ -0,0 +1,59 @@
+<page:page
+  xmlns:jx="http://apache.org/cocoon/templates/jx/1.0"
+  xmlns:page="http://apache.org/cocoon/lenya/cms-page/1.0"
+  xmlns="http://www.w3.org/1999/xhtml"
+  xmlns:i18n="http://apache.org/cocoon/i18n/2.1"    
+  >
+  
+  <page:title><i18n:text>Edit User Profile</i18n:text></page:title>
+  <page:body>
+    
+    <form>
+      <input type="hidden" name="lenya.continuation" value="${continuation.id}"/>
+      <input type="hidden" name="lenya.usecase" value="${request.getParameter('lenya.usecase')}"/>
+
+      <table class="lenya-table-noborder">
+        <tr>
+          <td colspan="2">
+            <ul>
+            <jx:forEach var="message" items="${usecase.getErrorMessages()}">
+              <li>
+                <i18n:text><jx:out value="${message}"/></i18n:text>
+              </li>
+            </jx:forEach>
+            <jx:forEach var="message" items="${usecase.getInfoMessages()}">
+              <li>
+                <i18n:text><jx:out value="${message}"/></i18n:text>
+              </li>
+            </jx:forEach>
+            </ul>
+          </td>
+        </tr>
+        <tr>
+          <td class="lenya-entry-caption"><i18n:text>Name</i18n:text> *</td>
+          <td><input type="text" name="fullName" class="lenya-form-entry" value="${usecase.getParameter('fullName')}"/></td>
+        </tr>
+        <tr>
+          <td valign="top" class="lenya-entry-caption"><i18n:text>Description</i18n:text></td>
+          <td>
+            <textarea name="description" class="lenya-form-entry">
+              <jx:out value="${usecase.getParameter('description')}"/>
+            </textarea>
+          </td>
+        </tr>
+        <tr>
+          <td class="lenya-entry-caption"><i18n:text>E-Mail</i18n:text> *</td>
+          <td><input type="text" name="email" class="lenya-form-entry" value="${usecase.getParameter('email')}"/></td>
+        </tr>
+        
+        <tr>
+          <td/>
+          <td>
+            <input i18n:attr="value" type="submit" name="submit" value="Save"/>
+            <input i18n:attr="value" type="submit" name="cancel" value="Cancel"/>
+          </td>
+        </tr>
+      </table>
+    </form>
+  </page:body>
+</page:page>
\ No newline at end of file

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org