unico 2004/03/17 14:44:43
Modified: src/blocks/slide/java/org/apache/cocoon/samples/slide
AdminHelper.java
src/blocks/slide/samples/styles users2html.xsl
src/blocks/slide/samples flow.js
Log:
add ability to change a user's password
Revision Changes Path
1.8 +35 -0
cocoon-2.1/src/blocks/slide/java/org/apache/cocoon/samples/slide/AdminHelper.java
Index: AdminHelper.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/blocks/slide/java/org/apache/cocoon/samples/slide/AdminHelper.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- AdminHelper.java 17 Mar 2004 17:27:59 -0000 1.7
+++ AdminHelper.java 17 Mar 2004 22:44:43 -0000 1.8
@@ -338,6 +338,41 @@
throw e;
}
}
+
+ public static void changePassword(NamespaceAccessToken nat,
+ String caller,
+ String username,
+ String password) throws Exception {
+
+ String usersPath = nat.getNamespaceConfig().getUsersPath();
+ String userUri = usersPath + "/" + username;
+
+ SlideToken slideToken = new SlideTokenImpl(new
CredentialsToken(caller));
+ Structure structure = nat.getStructureHelper();
+ Content content = nat.getContentHelper();
+
+ try {
+
+ nat.begin();
+
+ NodeRevisionDescriptors revisions =
content.retrieve(slideToken,userUri);
+ NodeRevisionDescriptor revision =
content.retrieve(slideToken,revisions);
+ revision.setLastModified(new Date());
+ revision.setProperty(new NodeProperty("password", password,
NodeProperty.SLIDE_NAMESPACE));
+ content.store(slideToken, userUri, revision, null);
+
+ nat.commit();
+ }
+ catch (Exception e) {
+ try {
+ nat.rollback();
+ }
+ catch (Exception f) {
+ f.printStackTrace();
+ }
+ throw e;
+ }
+ }
public static List listPermissions(NamespaceAccessToken nat,
String caller,
1.4 +23 -9 cocoon-2.1/src/blocks/slide/samples/styles/users2html.xsl
Index: users2html.xsl
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/blocks/slide/samples/styles/users2html.xsl,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- users2html.xsl 6 Mar 2004 02:25:51 -0000 1.3
+++ users2html.xsl 17 Mar 2004 22:44:43 -0000 1.4
@@ -43,7 +43,11 @@
<td align="left">
<b>User</b>
</td>
- <td align="left"/>
+ <td/>
+ <td align="left">
+ <b>Password</b>
+ </td>
+ <td/>
<td align="left">
<b>Roles</b>
</td>
@@ -53,13 +57,22 @@
<xsl:variable name="useruri" select="uri/text()" />
<xsl:variable name="username"
select="substring-after($useruri,concat($userspath,'/'))" />
<tr>
- <form action="{$base}/removeobject" method="post">
- <input type="hidden" name="objecturi" value="{$useruri}"/>
+ <td align="left">
+ <xsl:value-of select="$username"/><br/>
+ </td>
+ <td align="left">
+ <form action="{$base}/removeobject">
+ <input type="hidden" name="objecturi" value="{$useruri}"/>
+ <input type="submit" name="doRemoveUser" value="Delete"/>
+ </form>
+ </td>
+ <form action="{$base}/changepwd" method="post">
+ <input type="hidden" name="username" value="{$username}"/>
<td align="left">
- <xsl:value-of select="$username"/>
+ <input type="password" name="password" size="10"
maxlength="40"/>
</td>
- <td align="left">
- <input type="submit" name="doRemoveUser" value="Delete
user"/>
+ <td>
+ <input type="submit" name="doSetPassword" value="Change"/>
</td>
</form>
<form action="{$base}/removemember" method="post">
@@ -81,8 +94,7 @@
</form>
</tr>
<tr>
- <td align="left"/>
- <td align="left"/>
+ <td colspan="4"/>
<form action="{$base}/addmember" method="post">
<input type="hidden" name="subjecturi" value="{$useruri}"/>
<td align="left">
@@ -99,6 +111,7 @@
<td align="left">
<input type="submit" name="doAddRoleMember" value="Add
role"/>
</td>
+ <td align="left"/>
</form>
</tr>
</xsl:for-each>
@@ -107,10 +120,11 @@
<td align="left">
<input name="username" type="text" size="10" maxlength="40"/>
</td>
+ <td align="left"/>
<td align="left">
<input name="password" type="password" size="10"
maxlength="40"/>
</td>
- <td align="left"/>
+ <td colspan="2"/>
<td align="right">
<input type="submit" name="doAddUser" value="Add user"/>
</td>
1.15 +6 -0 cocoon-2.1/src/blocks/slide/samples/flow.js
Index: flow.js
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/slide/samples/flow.js,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- flow.js 17 Mar 2004 17:27:59 -0000 1.14
+++ flow.js 17 Mar 2004 22:44:43 -0000 1.15
@@ -244,6 +244,12 @@
cocoon.redirectTo("users");
}
+function protected_changepwd() {
+ var username = cocoon.request.getParameter("username");
+ var password = cocoon.request.getParameter("password");
+
+ AdminHelper.changePassword(nat, principal, username, password);
+}
// ---------------------------------------------- screens