Author: chanaka
Date: Fri Jan 18 04:27:33 2008
New Revision: 12479

Log:

User password editing(AJAX) functionality introduced in the user page.
Some usability issues are fixed in the peoples page.

Added:
   
trunk/registry/modules/webapps/src/main/webapp/admin/ajax/user-password-edit.jsp
Modified:
   
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/ControllerServlet.java
   
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/UIConstants.java
   
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/utils/UserUtil.java
   trunk/registry/modules/webapps/src/main/webapp/admin/js/common.js
   trunk/registry/modules/webapps/src/main/webapp/admin/people.jsp
   trunk/registry/modules/webapps/src/main/webapp/admin/registry-resources.jsp
   trunk/registry/modules/webapps/src/main/webapp/admin/user.jsp

Modified: 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/ControllerServlet.java
==============================================================================
--- 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/ControllerServlet.java
   (original)
+++ 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/ControllerServlet.java
   Fri Jan 18 04:27:33 2008
@@ -250,7 +250,17 @@
                     forwardToResources(request, response, path);
                 }
 
-            } else if (command.equals("/setProperty")) {
+            } else if (command.equals("/saveNewPassword")) {
+
+                try {
+                    UserUtil.updatePassword(request,response);
+                } catch (Exception e) {
+                    // todo: implement a general AJAX error segment
+                    setErrorMessage(request, e.getMessage());
+                    forwardToResources(request, response, path);
+                }
+
+            }else if (command.equals("/setProperty")) {
 
                 PropertiesUtil.setProperty(request, response);
 

Modified: 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/UIConstants.java
==============================================================================
--- 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/UIConstants.java
 (original)
+++ 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/UIConstants.java
 Fri Jan 18 04:27:33 2008
@@ -57,6 +57,7 @@
     public static final String AJAX_DESCRIPTION_JSP = "/admin/ajax_desc.jsp";
     public static final String AJAX_PROPERTIES_JSP = 
"/admin/ajax/resource-properties.jsp";
     public static final String AJAX_USER_FRIENDLY_NAME_JSP = 
"/admin/ajax/user-friendly-name.jsp";
+    public static final String AJAX_USER_PASSWORD_JSP = 
"/admin/ajax/user-password-edit.jsp";
     public static final String AJAX_COMMENTS_JSP = 
"/admin/ajax/comment-list.jsp";
     public static final String RESOURCE_DETAILS_JSP = 
"/admin/resources_details.jsp";
     public static final String ERROR_JSP = "/admin/error.jsp";

Modified: 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/utils/UserUtil.java
==============================================================================
--- 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/utils/UserUtil.java
      (original)
+++ 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/utils/UserUtil.java
      Fri Jan 18 04:27:33 2008
@@ -140,4 +140,31 @@
 
         
request.getRequestDispatcher(UIConstants.AJAX_USER_FRIENDLY_NAME_JSP).forward(request,response);
     }
+    public static void updatePassword(HttpServletRequest request, 
HttpServletResponse response)
+            throws ServletException, IOException {
+        try{
+            String userName = request.getParameter("userName");
+            String newPassword = request.getParameter("newPassword");
+            
+            Registry registry = CommonUtil.getUserRegistry(request);
+
+            SecureRegistry secureRegistry = (SecureRegistry) registry;
+            Realm userRealm = secureRegistry.getUserRealm();
+            userRealm.getUserStoreAdmin().updateUser(userName,newPassword);
+            
+            //Map userProperties = 
userRealm.getUserStoreAdmin().getUserProperties(userName);
+            //userProperties.put("friendlyName", friendlyName);
+            //userRealm.getUserStoreAdmin().setUserProperties(userName, 
userProperties);
+
+            UserDetailsAction userDetailsAction = new UserDetailsAction();
+            userDetailsAction.setUserName(userName);
+            userDetailsAction.execute(request);
+            request.getSession().setAttribute(UIConstants.USER_BEAN, 
userDetailsAction);
+
+        } catch (Exception e) {
+
+        }
+        
request.getRequestDispatcher(UIConstants.AJAX_USER_PASSWORD_JSP).forward(request,response);
+    }
+
 }

Added: 
trunk/registry/modules/webapps/src/main/webapp/admin/ajax/user-password-edit.jsp
==============================================================================
--- (empty file)
+++ 
trunk/registry/modules/webapps/src/main/webapp/admin/ajax/user-password-edit.jsp
    Fri Jan 18 04:27:33 2008
@@ -0,0 +1,41 @@
+<%@ page import="org.wso2.registry.web.UIConstants" %>
+<%@ page import="org.wso2.registry.web.actions.UserDetailsAction" %>
+<%--
+  Created by IntelliJ IDEA.
+  User: chanaka jayasena
+  Date: Jan 18, 2008
+  Time: 12:26:37 PM
+  To change this template use File | Settings | File Templates.
+--%>
+<%
+    UserDetailsAction userDetailsAction = (UserDetailsAction) 
request.getSession().getAttribute(UIConstants.USER_BEAN);
+%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+ <table cellpadding="0" cellspacing="0" border="0" class="simple-data-table" 
style="width:400px;margin-bottom:10px;">
+        <tr id="passwordView">
+            <th style="width:140px">Password:</th>
+            <td style="text-align:right;width:20px;" align="right">
+                <a 
onclick="showHideCommon('passwordView');showHideCommon('passwordEdit1');showHideCommon('passwordEdit2');showHideCommon('passwordEdit3');"
 title="Edit Password" href="#">
+                    <img border="0" align="bottom" 
src="/wso2registry/admin/images/icon-edit.gif"/>
+                </a>
+            </td>
+            <td>
+                &nbsp;&nbsp;&nbsp;- - - - - - -
+            </td>
+        </tr>
+        <tr id="passwordEdit1" style="display:none;">
+            <td style="width:140px"><h3 style="margin-bottom:0px;">Editing 
Password:</h3></td>
+            <td style="text-align:right;width:20px;" align="right">
+                <a 
onclick="saveNewPassword('<%=userDetailsAction.getUserName()%>')" title="Save 
Password" href="#">
+                    <img border="0" align="bottom" 
src="/wso2registry/admin/images/save-button.gif"/>
+                </a>
+            </td>
+            <td></td>
+        </tr>
+        <tr id="passwordEdit2" style="display:none;">
+            <td style="width:140px">New Password</td><td></td><td><input 
type="password" id="newPassword" /></td>
+        </tr>
+        <tr id="passwordEdit3" style="display:none;">
+            <td style="width:140px">Confirm Password</td><td></td><td><input 
type="password" id="newPasswordConfirm" /></td>
+        </tr>
+    </table>
\ No newline at end of file

Modified: trunk/registry/modules/webapps/src/main/webapp/admin/js/common.js
==============================================================================
--- trunk/registry/modules/webapps/src/main/webapp/admin/js/common.js   
(original)
+++ trunk/registry/modules/webapps/src/main/webapp/admin/js/common.js   Fri Jan 
18 04:27:33 2008
@@ -330,6 +330,25 @@
     var friendlyName = document.getElementById('friendlyName').value;
     new Ajax.Updater('friendlyNameDiv', 
'/wso2registry/system/saveFriendlyName', { method: 'post', parameters: 
{userName: userName, friendlyName: friendlyName} });
 }
+function saveNewPassword(userName) {
+    var newPassword = document.getElementById('newPassword').value;
+    var newPasswordConfirm = 
document.getElementById('newPasswordConfirm').value;
+    var passwordErrorMessage = document.getElementById('passwordErrorMessage');
+    if(newPassword!=newPasswordConfirm){
+        passwordErrorMessage.style.display = "block";
+        passwordErrorMessage.innerHTML="Please verify your password again.";
+    }
+    else
+    {
+        passwordErrorMessage.style.display = "none";
+        showHideCommon('passwordView');
+        showHideCommon('passwordEdit1');
+        showHideCommon('passwordEdit2');
+        showHideCommon('passwordEdit3');
+
+        new Ajax.Updater('passwordDiv', 
'/wso2registry/system/saveNewPassword', { method: 'post', parameters: 
{userName: userName, newPassword: newPassword} });
+     }
+}
 
 // media type map to store file_extension -> media type pairs.
 // these media type data will be retrieved upon the first request and stored 
in memory.
@@ -501,5 +520,5 @@
        showHideCommon(name+'Expanded');
        showHideCommon(name+'Minimized');
     }
-   
+
 }
\ No newline at end of file

Modified: trunk/registry/modules/webapps/src/main/webapp/admin/people.jsp
==============================================================================
--- trunk/registry/modules/webapps/src/main/webapp/admin/people.jsp     
(original)
+++ trunk/registry/modules/webapps/src/main/webapp/admin/people.jsp     Fri Jan 
18 04:27:33 2008
@@ -48,7 +48,7 @@
                                        <td align="right" valign="top">
                         <table width="100%"  border="0" cellspacing="0" 
cellpadding="0" class="toolBarTable">
                                                                <tr>
-                                                               <td><% if 
(userManagementAction.isAddAllowed()) { %><a href="#" 
onclick="showHideCommon('userAddBox');" title="Add New User"><img 
src="/wso2registry/admin/images/universal-add.gif" border="0" align="top" 
style="margin-top:-5px;" /></a><% } %></td>
+                                                               <td><% if 
(userManagementAction.isAddAllowed()) { %><a href="#" 
onclick="showHideCommon('userAddBox');expandIfNot('user');" title="Add New 
User"><img src="/wso2registry/admin/images/universal-add.gif" border="0" 
align="top" style="margin-top:-5px;" /></a><% } %></td>
                                                                <td>
                                                                        <a 
href="#" 
onclick="showHideCommon('userIconExpanded');showHideCommon('userIconMinimized');showHideCommon('userExpanded');showHideCommon('userMinimized');">
                                                                        <img 
src="/wso2registry/admin/images/icon-expanded.gif" border="0" align="top" 
id="userIconExpanded" style="margin-top:-3px;" />
@@ -180,7 +180,7 @@
                                        <td align="right" valign="top">
                                                <table width="100%"  border="0" 
cellspacing="0" cellpadding="0" class="toolBarTable">
                                                                <tr>
-                                                               <td 
valign="top"><% if (userManagementAction.isAddAllowed()) { %><a href="#" 
onclick="showHideCommon('addRoleBox');" title="Add New Role"><img 
src="/wso2registry/admin/images/universal-add.gif" style="margin-top:-5px;" 
border="0" align="top" /></a><% } %></td>
+                                                               <td 
valign="top"><% if (userManagementAction.isAddAllowed()) { %><a href="#" 
onclick="showHideCommon('addRoleBox');expandIfNot('role');" title="Add New 
Role"><img src="/wso2registry/admin/images/universal-add.gif" 
style="margin-top:-5px;" border="0" align="top" /></a><% } %></td>
                                                                <td>
                                                                <a href="#" 
onclick="showHideCommon('roleIconExpanded');showHideCommon('roleIconMinimized');showHideCommon('roleExpanded');showHideCommon('roleMinimized');">
                                                                <img 
src="/wso2registry/admin/images/icon-expanded.gif" border="0" align="top" 
id="roleIconExpanded" style="margin-top:-3px;" />

Modified: 
trunk/registry/modules/webapps/src/main/webapp/admin/registry-resources.jsp
==============================================================================
--- trunk/registry/modules/webapps/src/main/webapp/admin/registry-resources.jsp 
(original)
+++ trunk/registry/modules/webapps/src/main/webapp/admin/registry-resources.jsp 
Fri Jan 18 04:27:33 2008
@@ -362,7 +362,7 @@
 
 
 <% if(collection.getResourceDataList().isEmpty())  { %>
-<div class="helpText">Empty  entries. </div>
+<div class="helpText">No Entries are defined yet. </div>
 <%  } %>
 
 <% if (details.isCollection() && !details.isPutAllowed()) { %>

Modified: trunk/registry/modules/webapps/src/main/webapp/admin/user.jsp
==============================================================================
--- trunk/registry/modules/webapps/src/main/webapp/admin/user.jsp       
(original)
+++ trunk/registry/modules/webapps/src/main/webapp/admin/user.jsp       Fri Jan 
18 04:27:33 2008
@@ -82,6 +82,8 @@
             </tr>
         </table>
     </div>
+    <div id="passwordErrorMessage" style="display:none;"></div>
+    <div id="passwordDiv">
     <table cellpadding="0" cellspacing="0" border="0" 
class="simple-data-table" style="width:400px;margin-bottom:10px;">
         <tr id="passwordView">
             <th style="width:140px">Password:</th>
@@ -97,20 +99,21 @@
         <tr id="passwordEdit1" style="display:none;">
             <td style="width:140px"><h3 style="margin-bottom:0px;">Editing 
Password:</h3></td>
             <td style="text-align:right;width:20px;" align="right">
-                <a 
onclick="showHideCommon('passwordView');showHideCommon('passwordEdit1');showHideCommon('passwordEdit2');showHideCommon('passwordEdit3');"
 title="Save Password" href="#">
+                <a 
onclick="saveNewPassword('<%=userDetailsAction.getUserName()%>')" title="Save 
Password" href="#">
                     <img border="0" align="bottom" 
src="/wso2registry/admin/images/save-button.gif"/>
                 </a>
             </td>
             <td></td>
         </tr>
         <tr id="passwordEdit2" style="display:none;">
-            <td style="width:140px">New Password</td><td></td><td><input 
type="password" /></td>
+            <td style="width:140px">New Password</td><td></td><td><input 
type="password" id="newPassword" /></td>
         </tr>
         <tr id="passwordEdit3" style="display:none;">
-            <td style="width:140px">Confirm Password</td><td></td><td><input 
type="password" /></td>
+            <td style="width:140px">Confirm Password</td><td></td><td><input 
type="password" id="newPasswordConfirm" /></td>
         </tr>
     </table>
-
+    </div>
+    
     <h3>Add roles to <%=userDetailsAction.getUserName()%></h3>
 
     <form action="/wso2registry/system/addUserToRole" method="post">

_______________________________________________
Registry-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/registry-dev

Reply via email to