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
   
  
  
  

Reply via email to